使用sklearn中的svm分类鸢尾花数据集
时间: 2025-01-25 21:09:13 浏览: 45
使用scikit-learn库中的支持向量机(SVM)分类鸢尾花数据集的步骤如下:
1. **导入必要的库**:
- `numpy` 和 `pandas` 用于数据处理。
- `matplotlib` 和 `seaborn` 用于数据可视化。
- `sklearn` 中的 `svm` 用于支持向量机分类,`datasets` 用于加载鸢尾花数据集,`train_test_split` 用于分割数据集,`accuracy_score` 用于评估模型性能。
2. **加载数据集**:
使用 `sklearn.datasets` 中的 `load_iris` 函数加载鸢尾花数据集。
3. **分割数据集**:
使用 `train_test_split` 将数据集分割为训练集和测试集。
4. **训练SVM模型**:
使用 `svm.SVC` 创建一个支持向量机分类器,并在训练集上进行训练。
5. **评估模型**:
使用测试集评估模型的性能,并输出准确率。
6. **可视化结果**:
使用 `matplotlib` 和 `seaborn` 进行数据可视化,展示分类结果。
以下是完整的代码示例:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import svm
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建SVM分类器
clf = svm.SVC(kernel='linear')
# 训练模型
clf.fit(X_train, y_train)
# 预测测试集
y_pred = clf.predict(X_test)
# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy * 100:.2f}%")
# 可视化结果
sns.scatterplot(x=X_test[:, 0], y=X_test[:, 1], hue=y_pred, palette='Set1')
plt.title('SVM Classification of Iris Dataset')
plt.xlabel(iris.feature_names[0])
plt.ylabel(iris.feature_names[1])
plt.show()
```
阅读全文
相关推荐


















