文章目录

  • ​​k近邻 / KNN​​
  • ​​主要思想​​
  • ​​模型要素​​
  • ​​距离度量​​
  • ​​分类决策规则​​
  • ​​kd树​​
  • ​​主要思想​​
  • ​​kd树的构建​​
  • ​​kd树的搜索​​
  • ​​总结归纳​​

k近邻 / KNN

主要思想

假定给定一个训练数据集,其中实例标签已定,当输入新的实例时,可以根据其最近的 机器学习算法原理之k近邻 / KNN_人工智能

具体划分,机器学习算法原理之k近邻 / KNN_人工智能

分类问题:对新的实例,根据与之相邻的 机器学习算法原理之k近邻 / KNN_人工智能 个训练实例的类别,通过多数表决等方式进行预测。
回归问题:对新的实例,根据与之相邻的 机器学习算法原理之k近邻 / KNN_人工智能

输入:训练集
机器学习算法原理之k近邻 / KNN_算法_05
​ 其中:机器学习算法原理之k近邻 / KNN_kd树_06,实例 机器学习算法原理之k近邻 / KNN_算法_07

输出:实例 机器学习算法原理之k近邻 / KNN_算法_07 的所属的类 机器学习算法原理之k近邻 / KNN_算法_09

  • 根据给定的距离度量,计算 机器学习算法原理之k近邻 / KNN_距离度量_10机器学习算法原理之k近邻 / KNN_kd树_11
  • 机器学习算法原理之k近邻 / KNN_kd树_11 中找到与 机器学习算法原理之k近邻 / KNN_距离度量_10 最邻近的 机器学习算法原理之k近邻 / KNN_人工智能_14 个点,涵盖这 机器学习算法原理之k近邻 / KNN_机器学习_15 个点的 机器学习算法原理之k近邻 / KNN_距离度量_10 的邻域记作 机器学习算法原理之k近邻 / KNN_距离度量_17
  • 机器学习算法原理之k近邻 / KNN_距离度量_17 中根据分类决策规则(如多数表决)决定 机器学习算法原理之k近邻 / KNN_距离度量_10 的类别 机器学习算法原理之k近邻 / KNN_人工智能_20

机器学习算法原理之k近邻 / KNN_机器学习_21

机器学习算法原理之k近邻 / KNN_人工智能

模型要素

距离度量

机器学习算法原理之k近邻 / KNN_距离度量_23 距离:特征空间 机器学习算法原理之k近邻 / KNN_算法_24 假设为 机器学习算法原理之k近邻 / KNN_机器学习_25,则有

机器学习算法原理之k近邻 / KNN_机器学习_26

欧氏距离(Euclidean distance) 机器学习算法原理之k近邻 / KNN_距离度量_27
机器学习算法原理之k近邻 / KNN_人工智能_28
曼哈顿距离(Manhattan distance) 机器学习算法原理之k近邻 / KNN_距离度量_27
机器学习算法原理之k近邻 / KNN_算法_30
切比雪夫距离(Chebyshev distance)机器学习算法原理之k近邻 / KNN_距离度量_31 = 机器学习算法原理之k近邻 / KNN_算法_32
机器学习算法原理之k近邻 / KNN_距离度量_33

机器学习算法原理之k近邻 / KNN_机器学习_34

分类决策规则

分类函数:
机器学习算法原理之k近邻 / KNN_机器学习_35
0-1 损失函数:
机器学习算法原理之k近邻 / KNN_距离度量_36
误分类概率:
机器学习算法原理之k近邻 / KNN_机器学习_37
给定实例 机器学习算法原理之k近邻 / KNN_算法_38 ,相应的 机器学习算法原理之k近邻 / KNN_人工智能 邻域 机器学习算法原理之k近邻 / KNN_机器学习_40 ,类别为 机器学习算法原理之k近邻 / KNN_距离度量_41 ,误分类率:
机器学习算法原理之k近邻 / KNN_人工智能_42
最小化误分析率,等价于:
机器学习算法原理之k近邻 / KNN_机器学习_43

kd树

主要思想

kd 树是一种对 机器学习算法原理之k近邻 / KNN_人工智能

本质:二叉树,表示对 机器学习算法原理之k近邻 / KNN_人工智能 维空间的一个划分。
构造过程:不断地用垂直于坐标轴的超平面机器学习算法原理之k近邻 / KNN_人工智能 维空间切分,形成 机器学习算法原理之k近邻 / KNN_人工智能 维超矩形区域。
kd 树的每一个结点对应于一个 机器学习算法原理之k近邻 / KNN_人工智能

kd树的构建

输入: 机器学习算法原理之k近邻 / KNN_人工智能 维空间数据集:
机器学习算法原理之k近邻 / KNN_距离度量_50
​ 其中,机器学习算法原理之k近邻 / KNN_机器学习_51

输出:kd 树

  • 开始:构造根结点。
  • 选取 机器学习算法原理之k近邻 / KNN_人工智能_52 为坐标轴,以训练集中的所有数据 机器学习算法原理之k近邻 / KNN_人工智能_52 坐标中的中位数(数据集为偶数时,中位数+1)作为切分点,将超矩形区域切割成两个子区域,将该切分点作为根结点。
    由根结点生出深度为 1 的左右子结点,左结点对应坐标小于切分点,右结点对应坐标大于切分点。
  • 重复:
  • 对深度为 机器学习算法原理之k近邻 / KNN_算法_54 的结点,选择 机器学习算法原理之k近邻 / KNN_kd树_55 为切分坐标轴(切分应垂直于坐标轴),机器学习算法原理之k近邻 / KNN_距离度量_56 ,以该结点区域中所有实例 机器学习算法原理之k近邻 / KNN_人工智能_52 坐标的中位数作为切分点,将区域分为两个子区域。
    生成深度为 机器学习算法原理之k近邻 / KNN_人工智能_58
  • 直到两个子区域没有实例时停止。

kd树的搜索

输入:已构造的 kd 树,目标点 机器学习算法原理之k近邻 / KNN_算法_07

输出:机器学习算法原理之k近邻 / KNN_算法_07

  • 寻找“当前最近点“
  • 从根结点出发,递归访问 kd 树,找出包含 机器学习算法原理之k近邻 / KNN_算法_61 的叶结点(kd 树的每一个结点对应一个超矩形区域);
  • 以此叶结点为"当前最近点";
  • 回溯
  • 若该结点比“当前最近点”的距离目标更近,更新“当前最近点”;
  • 当前最近点一定存在于该结点一个子结点对应的区域,检查子结点的父结点的另一子结点(子结点的兄弟结点)对应的区域是否有更近的点。
  • 当回退到根结点时,搜索结束,最后的“当前最近点”即为 机器学习算法原理之k近邻 / KNN_距离度量_10

目标点的最近邻一定在以目标点为中心并通过当前最近点的超球体的内部

如果父结点的另一个子结点的超矩形区域与超球体相交,那么在相交的区域内寻找与目标点更近的实例点

总结归纳

  • 较小的 机器学习算法原理之k近邻 / KNN_机器学习_15 值,学习的近似误差减小,但估计误差增大,敏感性增强,而且模型复杂,容易过拟合。
    较大的 机器学习算法原理之k近邻 / KNN_机器学习_15
  • 机器学习算法原理之k近邻 / KNN_机器学习_15
  • 分类决策规则使用 0-1 损失函数,因为分类问题只有分类正确和分类错误两种可能。
  • kd 树构建时对于超平面的划分,二位空间划分为矩形,三维空间划分为长方体。
  • 构建完成的 kd 树,类似于二叉排序树,每一层代表着一个维度。
  • kd 树的搜索,类似于二叉排序树的搜索过程。
  • 机器学习算法原理之k近邻 / KNN_机器学习_15
  • kd 树更适用于训练实例数远大于空间维数时的 机器学习算法原理之k近邻 / KNN_机器学习_15