一.KNN介绍
KNN (K-Nearest Neighbor)算法,意思是K个最近的邻居,从这个名字我们就能看出一些KNN算法的蛛丝马迹了。K个最近邻居,毫无疑问,K的取值肯定是至关重要的。那么最近的邻居又是怎么回事呢?其实啊,KNN的原理就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。
图中绿色的点就是我们要预测的那个点,假设K=3,那么KNN算法就会找到与它距离最近的三个点(这里用圆圈把它圈起来了),看看哪种类别多-些,比如这个例子中是蓝色三角形多一些,新来的绿色点就归类到蓝三角了。
但是,当K=5的时候, 判定就变成不一样了。这次变成红圆多一些,所以新来的绿点被归类成红圆。从这个例子中,我们就能看得出K的取值是很重要的。
二.KNN实现步骤
1.计算距离(欧几里得距离或者马氏距离)
欧几里得距离(二维):
马氏距离(多维):
2.升序排列
3.取前K个
K的取值:
K太大:导致分类模糊
K太小:受个例影响, 波动较大
4.加权平均
经验