KNN

KNN


K近邻(k-Nearest Neighbor,KNN)分类算法的核心思想是如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法可用于多分类,KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,作为预测值。


KNeighborsClassifier在scikit-learn 在sklearn.neighbors包之中。KNeighborsClassifier使用很简单,三步:
1)创建KNeighborsClassifier对象
2)调用fit函数
3)调用predict函数进行预测。


数据并不一定是一维和二维的, 更高维的也是可以的,计算距离会自动选择对应的计算方法。
在实际使用时,一般将训练数据分为特征X和标签y,使用fit函数训练,再使用predict来进行预测。K的取值也是很重要的,过大虽然可以减小估计的误差,但是也会让较远的样本对预测产生影响。过小会导致过拟合。一般倾向于使用较小的K值,并使用交叉验证法选择最优的K值。
示例程序:KNN01 | KNN02(模式保存,修正joblib问题) | KNN04(决策树、KNN,调参) | KNN+DicisionTree | 


参考资料:

sklearn包中K近邻分类器 KNeighborsClassifier的使用
k-近邻算法(史诗级干货长文)
《机器学习实战》学习笔记(二):k-近邻算法
KNeighborsClassifier()函数解析(最清晰的解释)
鸢尾花种类预测






BypInformation