1.KNN算法(K Nearest Neighbors)从训练集中找到和新数据最接近的K条记录,然后根据他们的主要分类来决定新数据的类别。
通俗说法:在距离空间里,如果一个样本的最接近的k个邻居里,绝大多数属于某个类别,则该样本也属于这个类别。
算法思路:
1,确定数据集(训练数据集及训练数据的目标数据集)
2,随机重排(numpy.random.permutation)
3,建立模型(sklearn.neighbors.KNneighborsClassifier(n_neighbors= ))
4,训练模型(knnModel.fit(训练数据集,目标数据))
5,评估模型(knnModel.score(训练数据集,目标数据 ) 或者 cross_validation.cross_val_score(knnModel,tData,target))
6,用模型预测 (knnModel.predict(数据属性集))
import numpy
from sklearn import datasets
# 引入数据集
iris=datasets.load_iris()
#查看数据规模
iris.data.shape
# 随机重排序
permutation=numpy.random.permutation(iris.data.size)
iris.data=iris.data[permutation]
iris.target=iris.target[permutation]
#搭建模型
from sklearn import neighbors
KModel=neighbors.KNneighborsClassifier(n_neighbors=4)
#训练模型
KModel.fit(iris.data[:100],iris.target[:100])
#整体评估模型
KModel.score(iris.data[100:],iris.target[100:])
#用模型进行预测
Model.predict([[0.2,0.5.0.6,0.6]])