统计学习方法读书笔记——第三章 k近邻法

2021-02-07  本文已影响0人  Jarkata

3.1 k近邻算法

给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最近的k个实例,这k个实例多数属于某个类,就把输入实例分为这个类。


3.2 k近邻模型

k近邻算法使用的模型实际上对应于对特征空间的划分。模型由三个基本要素——距离度量、k值选择和分类决策规则决定。


3.2.2 距离度量

特征空间中两个实例点的距离是两个实例点相似程度的反映。可以使用欧氏距离、L_p距离或Minkowski距离等。


Lp距离间的关系

3.2.3 k值的选择

k值的选择会对k近邻法的结果产生重大影响

3.2.4 分类决策规则

k近邻法中的分类决策规则往往是多数表决。多数表决规则等价于经验风险最小化。


3.3 k近邻法的实现:kd树

主要问题:如何对训练数据进行快速k近邻搜索。
最简单方法:线性扫描,耗时大。
可以考虑使用特殊结构存储训练数据,以减少计算距离的次数。下面介绍其中的kd树方法。

3.3.1 构造kd树

kd树是一种对k维空间中的实例点进行存储的二叉树结构,方便快速检索,表示对k维空间的一个划分(partition),注意这里的k指的是k维,和k近邻法的k意义不同
构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分,构成一系列的k维超矩形区域。
构造kd树的方法:


通常依次选择坐标轴对空间切分,选择中位数作为切分点,这样得到的kd树是平衡的。注意,平衡的kd树搜索时的效率未必是最优的。
构造平衡kd树的算法:


一个kd树的例子(二维空间):

3.3.2 搜索kd树

利用kd树可以省区对大部分数据点的搜索。
思想:首先找到包含目标点的叶节点(二分查找),然后从该叶节点出发,一次回退到父节点,不断查找与目标点最近邻的节点。
kd树的最近邻搜索算法:



如果实例点是随机分布的,kd搜索的平均计算复杂的是O(logN)N为训练实例数。
适用于训练实例维数远大于空间维数时的k近邻搜索。
当空间维数接近训练维数时,它的效率会迅速下降,几乎接近线性扫描。
kd搜索举例:
上一篇下一篇

猜你喜欢

热点阅读