[关闭]
@xuchongfeng 2018-01-01T04:54:51.000000Z 字数 853 阅读 77

K近邻法

机器学习 K近邻法


定义
输入: 训练数据集


其中,为实例的特征向量,为实例的类别,;
输出:实例所属的类
1. 根据给定的距离度量,在训练集中找出与最邻近的个点,涵盖这个点的的临域记作
2. 在中根据分类决策规则决定的类别:

时,称为最近邻算法。

距离度量


, 曼哈顿距离
, 欧氏距离
, 它是各个坐标距离的最大值

使用kd树求取最近邻,kd树的构建
输入:k维空间数据集,其中
输出: kd
1. 开始:构造根节点,根节点对应于包含Tk维空间的超矩形区域;
2. 对于第j层,选择第维数据进行切分,按中位数将数据切分为两个子集;
3. 重复2,直到所有的数据被切分。

使用kd树进行搜索
输入: 已构造的kd树,目标点x
输出:x的最近邻

  1. 按照切分规则,找到x点归属的叶子节点;
  2. 以该叶子节点为当前最近点;
  3. 递归的向上回退,在每个节点进行以下操作:
    • 如果该节点保存的实例点比当前最近点距离目标点更近,则以该实例点为当前最近点;
    • 当前最近点一定存在于该节点一个子节点对应的区域。检查该子节点的父节点的另一个节点对应的区域是否有更近的点。

代码实现
python

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注