1.KNN简介
KNN(K-NearestNeighbor)是机器学习入门级的分类算法,非常非常简单。
上一篇我们讲过Kmeans,初学者常常把这两者搞混,虽然KNN是有监督算法,Kmeans是无监督算法,但KNN和Kmeans确实有相同之处:
- 两者都有“近朱者赤近墨者黑”的思想,将距离近的样本点划为同一类别;
虽然两者名称中都有“K”,但是:
- KNN中的K指的是近邻个数,也就是最近的K个点 ;
- Kmeans中的K指的是最终聚类的个数,也就是要将所有点分成K类。
2.KNN算法步骤
我们有一堆样本点,类别已知,如下图左,蓝色为一类,黄色为另一类。现在有个新样本点,也就是图中黑色的叉叉,需要判断它属于哪一类。
KNN做的就是选出距离目标点黑叉叉距离最近的k个点,看这k个点的大多数颜色是什么颜色。这里的距离怎么定义?当然还是可以用我们的老朋友——欧氏距离来度量。
给定两个样本 X = ( x 1 , x 2 , . . . , x n ) X=(x_{1},x_{2},...,x_{n}) X=(x1,x2,...,xn)与 Y = ( y 1 , y 2 , . . . , y n ) Y=(y_{1},y_{2},...,y_{n}) Y=(y1,y2,