几个常用机器学习算法 - k近邻算法(kNN)

几个常用机器学习算法 - k近邻算法(kNN)

1

K近邻算法(k Nearest Neighbors, kNN)是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K个距离最近的邻居进行分类判断。

2

kNN由3个要素决定:
①距离度量方法
②k值
③分类决定规则

  • 距离度量方法

    • 公式为
      Lp(xi,xj)=(l=1n|x(l)ix(l)j|p)1/p
    • 其中p>=1;
    • 当p = 1,是曼哈顿距离;
    • 当p = 2,是欧氏距离;
    • 当p = ,是各个坐标距离的最大值,即 L(xi,xj)=max|x(i)ix(l)j|
  • k值

    • k值越小,近似误差(appropriate error)越小,与输入实例较近的训练实例才能对预测起作用;同时,估计误差(estimation error)越大,预测结果对近邻实例点很敏感,如果邻近实例恰好是噪声,就会给预测带来负面影响。
  • 分类决策规则

    • 往往都是多数表决的方式,k个邻近的训练实例中的多数类决定了输入实例的类;
    • 经验风险最小化。

3

kNN算法的过程:

  • 选择一种距离度量方式, 通过所有的训练实例与输入实例的距离;

  • 将距离按递增次序进行排序,选取与当前距离最小的k个点

  • 确定前k个点所在类别的出现频率;

  • 将出现频率最高的类别作为输入实例的预测分类。

4

python实现见github

本帖主要参考:
1. 《统计学习方法》 李航
2. 《机器学习实战》 Peter Harrington

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