? ? ? ? 學(xué)習(xí)機器學(xué)習(xí)的盆友建議首先使用這個算法來練習(xí),因為KNN算法,即K-Nearest Neighbour,K近鄰算法,可能是最簡單的機器學(xué)習(xí)算法了。而用到的數(shù)據(jù)集就是機器學(xué)習(xí)中最著名的“鳶尾花”數(shù)據(jù)集,集成在sklearn.datasets中。上碼:
#-*- coding:utf-8 -*-
from sklearn.datasets import load_iris
iris=load_iris()
print(iris.data.shape)
print(iris.DESCR)
先導(dǎo)入數(shù)據(jù),看看數(shù)據(jù)量的大小和數(shù)據(jù)集介紹。輸出如下:
有150株花的數(shù)據(jù),有四個不同的特征量。繼續(xù)上碼:
#-------數(shù)據(jù)集分割
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.25,random_state=33)
from sklearn.preprocessing import StandardScaler
ss=StandardScaler()
X_train=ss.fit_transform(X_train)
X_test=ss.transform(X_test)
from sklearn.neighbors import KNeighborsClassifier
KNN=KNeighborsClassifier()
KNN.fit(X_train,y_train)
y_predict=KNN.predict(X_test)
print('KNN算法的精確率為:',KNN.score(X_test,y_test))
from sklearn.metrics import classification_report
xnfx=classification_report(y_test,y_predict,target_names=iris.target_names)
print(xnfx)
性能分析如下: