KNN算法的核心思想:如果一个样本在特征空间中的k个最邻近的样本大多数属于某一类别,则该样本也属于该类别
KNN算法的结果很大程度上取决于K的取值,下面进行说明:
如果k=5 则上图中的红点属于三角形所属类,因为三角形所属类占3/5,而四边形类只占了2/5,如果k=11,则红点属于四边形类,四边形类占8/11,而三角形类占3/11
KNN中,样本的距离一般采用欧式距离或曼哈顿距离
欧式距离d(x,y)=sqrt(∑k=1 t0 n(xk-yk)2)
曼哈顿距离d(x,y)=sqrt(∑k=1 to nabs(xk-yk))
KNN算法的描绘:
(1) 计算测试数据与训练数据之间的距离
(2)将距离从小到大排序
(3)选取前K个样本
(4)确定K个样本所属类的频率
(5)将测试数据所属类标记为上述频率最高的类别