K近邻

假设我们有一些携带分类标记的训练样本,分布于特征空间中,对于一个待分类的测试样本点,未知其类别,按照‘近朱者赤近墨者黑’,我们需要寻找与这个待分类的样本在特征空间中距离最近的k个已标记样本作为参考,帮助我们最初分类决策。

 #从sklearn.datasets导入iris数据加载器

from sklearn.datasets import load_iris

iris=load_iris()

print(iris.data.shape)#(150, 4)

#查看数据说明

print(iris.DESCR)

#对iris数据集进行分割

from sklearn.cross_validation import train_test_split

#随机采样25%的数据用于测试,剩下的75%用于构建训练集合

X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.25,random_state=33)

#使用k近邻分类器对iris数据进行类别预测

#从sklearn.preprocessing里导入StandardScaler数据标准化模块

from sklearn.preprocessing import StandardScaler

from sklearn.neighbors import KNeighborsClassifier

ss=StandardScaler()

X_train=ss.fit_transform(X_train)

X_test=ss.fit_transform(X_test)

knc=KNeighborsClassifier()

knc.fit(X_train,y_train)

y_predict=knc.predict(X_test)

print('The Accuracy of K-Nearest Neighbor Classifier is',knc.score(X_test,y_test))

#从sklearn.metrics里导入classification_report模块

from sklearn.metrics import classification_report

print(classification_report(y_test,y_predict,target_names=iris.target_names))

04-18 18:39