统计学习方法读书笔记(三)-k近邻法

全部笔记的汇总贴:统计学习方法读书笔记汇总贴

PDF免费下载:《统计学习方法(第二版)》

一、 k k k近邻算法

给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的 k k k个实例, 这 k k k个实例的多数属于某个类,就把该输入实例分为这个类。 k k k近邻法没有显式的学习过程。

k近邻法的特殊情况是 k = 1 k=1 k=1的情形,称为最近邻算法。对于输入的实例点(特征向量) x x x,最近邻法将训练数据集中与 x x x最邻近点的类作为 x x x的类。

二、 k k k近邻模型

模型由三个基本要素一一 距离度量、 k k k值的选择和分类决策规则决定。

(一)模型

k k k近邻法中,当训练集、距离度量(如欧氏距离)、 k k k值及分类决策规则(如多数表决)确定后,对于任何一个新的输入实例,它所属的类唯一地确定。

特征空间中,对每个训练实例点 x i x_i xi,距离该点比其他点更近的所有点组成 一个区域,叫作单元(cell)。每个训练实例点拥有一个单元,所有训练实例点的单元构成对特征空间的一个划分。 最近邻法将实例 x i x_i xi的类 y i y_i yi作为其单元中所有点的类标记(class label)。这样,每个单元的实例点的类别是确定的。

(二)距离度量

特征空间中两个实例点的距离是两个实例点相似程度的反映。 x i x_i xi x j x_j xj L p L_p Lp距离定义为
L p ( x i . x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p L_p(x_i.x_j)=\Big(\sum_{l=1}^n {|x_i^{(l)}-x_j^{(l)}|^p}\Big)^{\frac1p} Lp(xi.xj)=(l=1nxi(l)xj(l)p)p1
这里的 p ≥ 1 p\ge 1 p1。当 p = 2 p=2 p=2时,称为欧氏距离;当 p = 1 p=1 p=1时,称为曼哈顿距离;当 p = ∞ p=\infty p=时,它是各个坐标距离的最大值,即 L ∞ ( x i , x j ) = max ⁡ l ∣ x i ( l ) − x j ( l ) ∣ L_\infty(x_i,x_j)=\max_l |x_i^{(l)}-x_j^{(l)}| L(xi,xj)=lmaxxi(l)xj(l)

(三) k k k值的选择

如果选择较小的 k k k值,就相当于用较小的邻域中的训练实例进行预测, “学习” 的近似误差(approximation error)会减小, 只有与输入实例较近的(相似的)训练实例才会对预测结果起作用。

如果选择较大的 k k k值,就相当于用较大邻域中的训练、实例进行预测。 其优点是可以减少学习的估计误差, 但缺点是学习的近似误差会增大。

如果 k = N k=N k=N,那么无论输入实例是什么,都将简单地预测它属于在训练实例中最多的类。

在应用中, k k k值一般取一个比较小的数值。通常采用交叉验证法来选取最优的 k k k值。

(四)分类决策规则

k k k近邻法中的分类决策规则往往是多数表决,即由输入实例的 k k k个邻近的训练实例中的多数类决定输入实例的类。

三、 k k k近邻法的实现: k d kd kd

(一)构造

直接看一个例子来构造吧。

D a t a : T = { ( 2 , 3 ) T , ( 5 , 4 ) T , ( 9 , 6 ) T , ( 4 , 7 ) T , ( 8 , 1 ) T , ( 7 , 2 ) T } Data:T=\{(2,3)^T,(5,4)^T,(9,6)^T,(4,7)^T,(8,1)^T,(7,2)^T\} Data:T={ (2,3)T,(5,4)T,(9,6)T,(4,7)T,(8,1)T,(7,2)T}
很简单的思想,就是先以 x ( 1 ) x^{(1)} x(1)为坐标轴,选取中位数为切点,将根节点对应的矩形区域切分为两部分,切分由通过切分点并与坐标轴 x ( 1 ) x^{(1)} x(1)垂直的超平面实验。
由根结点生成深度为1的左、右子结点:左子结点对应坐标 x ( 1 ) x^{(1)} x(1)小于切分点的子 区域,右子结点对应于坐标 x ( 1 ) x^{(1)} x(1)大于切分点的子区域。
依次类推,对深度为 j j j的结点,选择 x ( l ) x^{(l)} x(l)为切分的坐标轴,其中 l = j ( m o d    k ) + 1 l=j(mod\;k)+1 l=j(modk)+1。由该结点生成深度为 j + 1 j+1 j+1的左、右子结点:左子结点对应坐标 x ( l ) x^{(l)} x(l)小于切分点的子区域,右子结点对应坐标 x ( l ) x^{(l)} x(l)大于切分点的子区域。
直到两个子区域没有实例存在时停止。
在这里插入图片描述在这里插入图片描述

(二)搜索 k d kd kd

简单来说,就是先通过构造好的 k d kd kd树,向下查找,找到包含该点的叶节点,然后以该点为圆心,两点之间的距离为半径画圆。真正的邻近点一定在这个圆的内部。我们依次返回这个叶节点的父节点和另一子节点,如果均不在,则返回父节点的父节点即它的另一子节点,直到返回到根节点。如果圆内没有其他的点,则这个叶节点就是该点的最近邻。如果有则更近的那个便是该点的最近邻。

利用 k d kd kd树可以省去对大部分数据点的搜索,从而减少搜索的计算量,平均复杂度为 O ( log ⁡ N ) O(\log N) O(logN)

下一章传送门:统计学习方法读书笔记(四)-朴素贝叶斯法

猜你喜欢

转载自blog.csdn.net/qq_41485273/article/details/112694735
今日推荐