统计学习方法 k近邻法

k近邻法

分类问题中的k近邻法。
分类时,对于新的实例,根据已有的k个最近邻的训练实例的类别,通过多数表决方式进行预测其所属的类。
k值的选择、距离度量以及分类决策规则是k近邻法的三个基本要素。
k近邻法没有显示的学习过程。

k近邻模型

模型

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

距离度量

距离是两个实例点相似程度的反映。
x i , y j L p 距离定义为:

L p ( x i , y j ) = ( l + 1 n | x i ( l ) x j ( l ) | p ) 1 p

这里p>=1。当p=2,为欧氏距离;p=1时,为曼哈顿距离;p= 时,为各个坐标距离的最大值。

k值的选择

k值的选择会对结果有重大影响。

k值小=>与输入实例较近的实例才会对预测结果起作用.整体模型变得容易,容易产生过拟合。

k值大=>用较大的训练实例进行预测。k值增大意味着整体模型变得简单。

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

分类决策规则

多数表决规则等价于经验风险最小化。

k近邻法的实现:kd树

kd树是一个二叉树,表示对k维空间的一个划分(partition)。构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分,构成一系列的k维超矩形区域。

构造kd树的算法:
(1)开始:构造根节点,根节点对应于包含数据集的k维空间的超矩形区域。

切分:选择 x ( 1 ) 为坐标轴,选择其中位数为切割点,将根节点对应的超矩形区域切分为2个子区域。
由根节点切分为2个深度为1的的左右子节点.

(2)重复:对深度为j的子节点,继续按照步骤(1)的方法切分。由该节点生成深度为j的两个左右子节点。

(3)结束:继续切分至两个子区域没有实例时为止。

kd树的搜索

kd树按某个维度的中位数进行切割的话,类似于搜索二叉树。可以按照搜索二叉树的方法来进行搜索。
其时间复杂度为O(N)=lg(N),最差场景为线性时间复杂度。

猜你喜欢

转载自blog.csdn.net/canwhut/article/details/81842714
今日推荐