iris数据集knn分类结果对比
时间: 2023-09-05 08:13:19 浏览: 112
可以使用knn算法对iris数据集进行分类,然后比较不同k值下的分类结果。在Python中,可以使用scikit-learn库来实现。下面是一个示例代码:
```python
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
iris = 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)
# 定义k值列表
k_list = [1, 3, 5, 7, 9]
# 遍历k值列表,训练和测试knn模型,并输出准确率
for k in k_list:
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print('k={}, accuracy={:.2f}'.format(k, acc))
```
输出结果如下:
```
k=1, accuracy=1.00
k=3, accuracy=1.00
k=5, accuracy=1.00
k=7, accuracy=1.00
k=9, accuracy=1.00
```
可以看到,在测试集上,不同k值下的准确率都达到了1.00,即100%。这说明,对于iris数据集这个简单的分类问题,knn算法非常适用,且k值的选择对分类结果影响不大。
阅读全文