import numpy as np from sklearn import datasets from sklearn.model_selection import train_test_split#切割训练集与测试集 from sklearn.neighbors import KNeighborsClassifier#K临近学习 iris=datasets.load_iris()#官方库中花的data iris_X=iris.data#储存花的所有属性 iris_y=iris.target#花的分类 print(iris_X[:3,:9]) [[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]] print(iris_y) [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]#有三种类的花
我们需要做的就是预测不同种类的花,根据他所给的属性。所以第一件事就是划分训练集与测试集。
X_train,X_test,y_train,y_test=train_test_split(iris_X,iris_y,test_size=0.3)#测试集占百分之三十 #效果如下 print(y_train) [2 2 2 2 0 1 1 0 1 2 0 0 0 2 1 2 2 2 1 0 0 1 1 0 0 0 1 2 0 0 1 0 2 2 2 1 0 0 1 1 0 2 1 2 2 1 2 0 2 1 0 2 0 0 0 1 2 0 0 2 1 2 1 1 2 0 1 0 0 1 1 0 2 1 1 2 1 1 2 0 1 1 0 1 1 1 1 0 2 1 1 2 2 1 1 0 2 0 2 0 1 1 1 0 2]
然后就开始K邻近学习了
knn=KNeighborsClassifier() knn.fit(X_train,y_train) print(knn.predict(X_test)) print(y_test) [1 1 2 0 0 0 2 2 2 1 2 0 2 0 2 0 0 2 2 1 1 2 2 2 1 0 2 1 1 0 2 2 1 0 2 1 0 2 2 1 1 0 2 1 1] [1 1 2 0 0 0 2 2 2 1 2 0 1 0 2 0 0 2 2 1 1 1 1 2 1 0 2 1 1 0 2 2 1 0 2 1 0 2 2 1 1 0 2 1 1]



