因为注释已经很详细了,所以直接上代码:
1 from sklearn.datasets import load_iris 2 from sklearn.model_selection import train_test_split 3 #k临近算法 4 from sklearn.neighbors import KNeighborsClassifier 5 import numpy as np 6 import pandas as pd 7 def get数据(): 8 iris_dataset=load_iris() 9 print("keys:\n{}".format(iris_dataset.keys())) 10 print("预测花的品种\n:{}".format(iris_dataset['target_names'])) 11 '''['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename']''' 12 13 '''机器学习中的个体叫作样本(sample),其属性叫作特征(feature)。data数组的形状(shape)是样本数乘以特征数。这是scikit-learn中的约定,你的数据形状应始终遵循这个约定''' 14 15 ''':['setosa' 'versicolor' 'virginica']''' 16 print(iris_dataset['target']) 17 18 if __name__ =='__main__': 19 '''数据''' 20 iris_dataset=load_iris() 21 X_train,X_test,y_train,y_test=train_test_split( 22 iris_dataset['data'],iris_dataset['target'],random_state=0) 23 print("X_train shapr:",X_train.shape) 24 25 26 #运用pandas将Numpy数组转成pandas DataFrame 27 #iris_dataframe=pd.DataFrame(X_train,columns=iris_dataset.feature_names) 28 #绘制散点图 29 #grr=pd.scatter_matrix(iris_dataframe,c=y_train,figsize=(15,15),marker='o',hist_kwds={'bins':20},s=60,alpha=8,cmap=mglearn.cm3) 30 31 '''K临近算法 ,其中只包括训练集 ''' 32 knn=KNeighborsClassifier(n_neighbors=1) 33 '''构建模型''' 34 knn.fit(X_train,y_train) 35 '''做出预测 1,4''' 36 X_new=np.array([[5,2.9,1,0.2]]) 37 prediction=knn.predict(X_new) 38 print("预测结果:\n{}".format(prediction)) 39 print("预测名字:\n{}".format(iris_dataset['target_names'][prediction])) 40 41 '''计算精度(评估模型 对比)''' 42 y_pred=knn.predict(X_test) 43 index=np.mean(y_pred==y_test) 44 print("相似度:{:.2f}".format(index)) 45 '''knn对象计算''' 46 indexa=knn.score(X_test,y_test) 47 print(indexa)