一、KNN算法的步骤
- 计算已知类别数据集中每个点与当前点的距离;
- 选取与当前点距离最小的K个点;
- 统计前K个点中每个类别的样本出现的频率;
- 返回前K个点出现频率最高的类别作为当前点的预测分类。
二、计算距离
传统上,KNN算法采用的是欧式距离,即:假设item的特征向量为(x1,x2,......,xn),则欧式距离=2个item在特征空间上的直线距离。如果item是文本,它的特征是文本中的多个word的话,采用余弦距离较好。
三、K值的选取
对于KNN算法来说,选择一个合适的K值至关重要,它决定了模型对未来数据的分类性能的好坏。
当K值过大时例如极端情况下取K=N(N=训练样本数),由于KNN采用的是投票机制,所以最终训练出来的模型总会选择得票数最多的类作为分类结果。此时会出现这样的问题: