KNN鸢尾花数据分类可视化代码
时间: 2023-07-24 19:41:07 浏览: 108
以下是KNN算法对鸢尾花数据进行分类并可视化的Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, :2] # 取前两个特征
y = iris.target
# 模型训练
knn = KNeighborsClassifier(n_neighbors=6)
knn.fit(X, y)
# 可视化分类结果
x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),
np.arange(y_min, y_max, 0.02))
Z = knn.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.figure()
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)
# 绘制训练数据
plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', cmap=plt.cm.Paired)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title("3-Class classification (k = 6)")
plt.show()
```
这段代码首先加载了鸢尾花数据集,然后选取了前两个特征进行分类。接着使用KNN算法进行模型训练,并对数据集进行可视化。最终,绘制出分类结果和训练数据的散点图。
阅读全文