ML-k近邻最近邻

1.KNN介绍

k临近算法 也叫Knn 是一种基于样本的模型,当K取值为1时
算法原理是 对于新的实例, 在训练集中找到距离最相近的K个样本,根据这K个样本的所属的类别,来归类这个新样本.
采取多数表决机制. 多数表决等价于经验风险最小化

《ML-k近邻最近邻》 维基百科的图

2.K近邻的距离度量方法

由于KNN是基于实例的, 所以要进行距离度量,常见的距离度量方法有

  • 欧氏距离

    《ML-k近邻最近邻》 欧氏距离.png

  • 曼哈顿距离
    曼哈顿距离 指的是在坐标轴上的投影距离
    二维空间点的曼哈顿距离
    |x1-x2|+|y1-y2|

《ML-k近邻最近邻》 曼哈顿距离

  • 切比雪夫距离

    《ML-k近邻最近邻》 切比雪夫距离

  • 余弦夹角

    《ML-k近邻最近邻》 余弦夹角

《ML-k近邻最近邻》 各种距离的算法实现.png

《ML-k近邻最近邻》 image.png

还有许多距离算法 以后再慢慢写

3 k值的选择

4 算法实现 KD树

knn的实现方法

1. 线性扫描

线性扫描是对整个数据集进行遍历,计算每个输入实例与数据集的向量距离,时间复杂度很高.

– 2. kd树

对k维空间中的数据进行存储,并进行检索的树形数据结构

《ML-k近邻最近邻》 k维生成kd树的例子
《ML-k近邻最近邻》 检索kd树的例子

参考网址

    原文作者:yunpiao
    原文地址: https://www.jianshu.com/p/91b0ac4a1b4a#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞