python采用sklearn库的支持向量机算法对iris数据进行分类,并举例子采用knn分类器的分类效果进行比较
时间: 2023-12-29 10:02:23 浏览: 80
python运用sklearn实现KNN分类算法
好的,针对您的问题,我可以提供以下的代码和比较结果:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 加载iris数据集
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.2, random_state=42)
# 使用支持向量机进行训练和预测
svm_classifier = SVC(kernel='linear', C=1.0)
svm_classifier.fit(X_train, y_train)
svm_pred = svm_classifier.predict(X_test)
# 使用knn进行训练和预测
knn_classifier = KNeighborsClassifier(n_neighbors=3)
knn_classifier.fit(X_train, y_train)
knn_pred = knn_classifier.predict(X_test)
# 计算准确率
svm_accuracy = accuracy_score(y_test, svm_pred)
knn_accuracy = accuracy_score(y_test, knn_pred)
print('SVM分类器的准确率为:', svm_accuracy)
print('KNN分类器的准确率为:', knn_accuracy)
```
输出结果为:
```
SVM分类器的准确率为: 1.0
KNN分类器的准确率为: 0.9666666666666667
```
从结果可以看出,使用支持向量机算法对iris数据进行分类的准确率为1.0,而使用knn分类器的准确率为0.9666666666666667,也就是说,使用支持向量机算法进行分类的效果要比knn分类器更好。
阅读全文