K-近邻算法

1. 定义:

如果一个样本在特征空间中的k个最相似 (即特征空间中最邻近) 的样本中的大多数属于某一个类别,则该样本也属于这个类别。
核心思想:使用你的邻居来判断你的类别

K-近邻算法属于分类算法的一种。

2. KNN 算法数据处理 :两个样本间的距离

  1. 样本间距离=两点间距离公式
  2. 样本数据必须经过标准化处理。
2.1Example:电影类别判断

K-近邻算法_第1张图片
有由距离公式即可计算出位未知电影距离其他电影的距离,如下图:K-近邻算法_第2张图片
可发现,未知电影与 He’s not Really into dues 距离为18.7 是所有距离中最小的,故在当前模型下,可以判断未知电影与 He’s not Really into dues 属于同一个类别。

3.影响参数:

k-近邻算法,故名思意,你的类别受到你的k个邻居所影响,所以k值的选取决定了分类的准确性,如上图例:

  • 若 k = 1 :
    则判断出位置电影是爱情篇的几率100%
  • 若 k = 2 :
    则判断出位置电影是爱情篇的几率100%
  • 若 k = 4 :
    则判断出位置电影是爱情篇的几率3/4
  • 若 k = 5 :
    则判断出位置电影是爱情篇的几率3/5
由此可知:k取值并不是越大越好

那k取值是越小越好了吗?答案是否定的。
假设k取值为1,则由上例所知与未知电影所最接近的电影是《He’s not Really into dues》其中打斗镜头有2个而接吻镜头有100个,其类型很容易判断为爱情片。但是现在请考虑这种极端情况:《He’s not Really into dues》这部电影中接吻镜头和打斗镜头的统计是错误的,或是虽然打斗镜头比接吻镜头少但它是一部不折不扣的动作片。那么在这种情况下,由于k取值为1,未知电影只参考与他最接近的电影,所以未知电影的类型也会随着参考类型的错误而错误,这样的参考值为异常点,所以k值越小,则越容易受到异常点的影响

综上所述,k值的选取,是k-近邻算法的核心,k值的选取直接影响到训练模型的准确与否。
经过大量数据的计算与缜密理论推导后,k值一般取5为最合适。但是在实际应用中,我们还是应该就事论事,多取几个k值分别进行模型训练,以选取最佳结果

4. 结论

  1. KNN 算法是机器学习中的入门算法,KNN 算法因为要将所有的数据都进行距离计算,故不适合大型数据集的运算,但是在数据集在几万条时,性能还是不错的。
  2. KNN算法的精髓就在于其思想,理解了KNN后有助于更深入学习机器学习。核心思想: 相似的样本,特征之间的值应该是相近的。即若两个样本之间的距离越小,则这两个样本越有可能属于同一个类别。

你可能感兴趣的:(机器学习,机器学习)