把预测点与距离最近的5个样本连成线
for i in neighbors[1][0]:
plt.plot([x[i][0], x_sample[0][0]], [x[i][1],x_sample[0][1]], ‘k–’, linewidth=0.6)
plt.show()
鸢尾花数据集
- Iris 鸢尾花数据集内包含 3 类分别为山鸢尾、虹膜锦葵、变色鸢尾,共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:萼片长度、萼片宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于哪一品种。
rom sklearn.datasets import load_iris
iris=load_iris()
iris_data=iris.data
iris_data
#获取样本标记值
iris_target = iris.target
iris_target
##target是一个数组,存储了data中每条记录属于哪一类鸢尾植物,
##所以数组的长度是150
##划分训练集和测试集
x_train,x_test,y_train,y_test= train_test_split(iris_data,iris_target,test_size=0.25)
训一下
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(x_train,y_train)
y_predict = knn.predict(x_test)
##展示一下预测结果
labels=[‘山鸢尾’,‘虹膜锦葵’,‘变色鸢尾’]
for i in range(len(y_predict)):
print(“第%d次测试:真实值是%s,预测值是%s” % ((i+1),label