• 统计学习方法第三章-k近邻法


    1.KNN

      k近邻法(k-nearest neighbor)是一种基本分类与回归方法。
      k近邻算法简单、直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。
      例如下图所示,有正方形,圆形,三角形,要判定圆形属于哪一类,假设K=3,就会选取离圆形最近的三个图形,此时有两个三角形和一个正方形,三角形多一点,于是圆形就被判定为三角形这一类假设K=5,那么就是周围虚线这一圈,里面有三个正方形和两个三角形,此时正方形多,圆形就被判定为正方形类.

    在这里插入图片描述
    在这里插入图片描述
    没有显示的学习过程是没有办法得到一个模型来计算这个算法.
    在这里插入图片描述

    2.KNN模型

      k近邻法使用的模型实际上对应于对特征空间的划分。模型由三个基本要素,距离度量、k值的选择和分类决策规则决定。
    在这里插入图片描述
    在这里插入图片描述

    3.距离度量

    欧氏距离:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.1 K值的选择

      k值的选择会对近邻法的结果产生重大影响.
      如果选择较小的k值,就相当于用较小的邻域中的训练实例进行预测,“学习”的近似误差会减小,只有与输入实例较近的(相似的)训练实例才会对预测结果起作用。但缺点是“学习”的估计误差会增大,预测结果会对近邻的实例点非常敏感。如果邻近的实例点恰巧是噪声,预测就会出错。
      k值的减小就意味着整体模型变得复杂,容易发生过拟合。
      如果选择较大的k 值,就相当于用较大邻域中的训练实例进行预测。其优点是可以减少学习的估计误差,但缺点是学习的近似误差会增大。这时与输入实例较远的(不相似的)训练实例也会对预测起作用,使预测发生错误。k 值的增大就意味着整体的模型变得简单。
      如果k = N,那么无论输入实例是什么,都将预测训练头例中取多的类。这时,模型过于简单,完全忽略训练实例中的大量有用信息,是不可取的,
    在应用中,k值一般取一个比较小的数值。通常采用交叉验证法来选取最优的k值。可取的。

    3.2 分类决策规则

    少数服从多数
    在这里插入图片描述

    在这里插入图片描述

    3.3 KD树算法

    使用KD树算法快速寻找邻居
    在这里插入图片描述

      选择x(1)的坐标中位数为切分点,比中位数小的放左边成为左节点,大的放右边成为右节点,
    然后再用第二维向量x(2)继续计算


    在这里插入图片描述


    2,5,9,4,8,7 从小到大排序
    2,4,5,7,8,9
    第一维向量中位数是7,小于7的放左边,大于7的放右边,左边的节点是(2,3),(5,4),(4,7),然后这三个节点的中位数是4,再进行划分,剩下右节点是(8,1),(9,6),进行划分

    在这里插入图片描述

    3.4 搜索KD树

    在这里插入图片描述

  • 相关阅读:
    rk3588使用npu进行模型转换和推理,加速AI应用落地
    Linux内核调试篇——获取内核函数地址的四种方法(一文解决)
    C++设计模式---单例模式
    heap use after free
    Google Earth Engine(GEE)扩展——制作的GEE app的误区
    创建vue项目教程
    手动快速批量修改文件名
    SQL sever中的触发器
    华火电燃灶:重拾烹饪艺术的黄金法则,打造家庭美食的温馨记忆
    算法:轮转数组---循环取模运算
  • 原文地址:https://blog.csdn.net/ren9855/article/details/127836889