欢迎关注笔者的微信公众号
最近邻居法(KNN算法,又译K-近邻算法)是一种用于分类和回归的非参数统计方法。在这两种情况下,输入包含特征空间(Feature Space)中的K个最接近的训练样本。
- 在KNN分类中,输出是一个分类族群。一个对象的分类是由其邻居的“多数表决”确定的,k个最近邻居(k为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。若k = 1,则该对象的类别直接由最近的一个节点赋予。
- 在KNN回归中,输出是该对象的属性值。该值是其k个最近邻居的值的平均值。
最近邻居法采用向量空间模型来分类,概念为相同类别的案例,彼此的相似度高,而可以借由计算与已知类别案例之相似度,来评估未知类别案例可能的分类。
算法原理
一句话概括:相似的事物彼此接近。
距离度量
欧式距离
欧氏距离是最容易直观理解的距离度量方法,两个点在空间中的距离一般都是指欧氏距离。
d = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + . . . d = \sqrt{(x_1-x_2)^2+(y_1-y_2)^2+ ...} d=(x1−x2)2+(y1−y2)2+...
曼哈顿距离(Manhattan Distance)
在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。
d = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d = |x_1-x_2| + |y_1-y_2| d=∣x1−x2∣+∣y1−y2∣
切比雪夫距离 (Chebyshev Distance):
国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。
d = m a x ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) d = max(|x_1-x_2|, |y_1-y_2|) d=max(∣x1−x2∣,∣y1−y