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