KNN 算法" />

KNN 算法

KNN 算法

一个分类算法,主要用于各种各样的分类。比如给你一大堆的狗,让你给他们一个个分类,这时候就可以用到 KNN 算法了。

算法简述

  1. 计算测试对象到训练集中每个对象的距离

  2. 按照距离的远近排序

  3. 选取与当前测试对象最近的 K 训练对象,作为该测试对象的邻居

  4. 统计这 K 个邻居的类别频率

  5. K 个邻居里频率最高的类别,即为测试对象的类别

影响因素

KNN 算法表达的其实就是“近朱者赤近墨者黑”的思想,因此影响它的分类结果的主要有三个因素:

  1. K 值的选取,即选择比较的范围。离你最近的两个人是河南人,离你最近的五个人中有三个四川人,你是河南人还是四川人?
  2. 距离的计算,即距离的衡量方式。看你的脸蛋像河南人,但听你的口音却像四川人,你是河南人还是四川人?
  3. 分类规则,即按何标准来分类,主流有多数表决法和加权多数表决法。虽然你平常朋友最多的是河南人,但最好的几个朋友却为四川人,普通朋友和最好的朋友权重不同,你是河南人还是四川人?

代码实现

KNN 分类