机器学习算法:k近邻法(k-NN)

分类与回归算法,多分类。

三个基本要素:K值的选择,距离度量,分类决策规则。

1 k近邻算法(分类)

机器学习算法:k近邻法(k-NN)

机器学习算法:k近邻法(k-NN)

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

k近邻法没有显示的学习过程。(“懒惰学习”:训练阶段仅仅保存训练样本,收到测试样本后再进行处理。)

1.1 k近邻模型

1.1.1 模型

在三要素确定的情况下,根据每个训练实例点机器学习算法:k近邻法(k-NN),对特征空间进行划分。

(对每个训练实例点机器学习算法:k近邻法(k-NN),距离该店比其他店更近的所有点组成的区域叫做单元)

1.1.2 三要素

1.1.2.1 距离度量

机器学习算法:k近邻法(k-NN)

由不同距离度量所确定的最近邻点是不同的。

1.1.2.2 k值的选择

k值过小,模型越复杂,近似误差较小,估计误差增大。越易过拟合。
k值过大,模型越简单,近似误差越大,估计误差减小。
在应用中,k值一般取一个比较小的数值。

1.1.2.3 分类决策规则

一般选择多数表决,即由输入实例的k个邻近的训练实例中的多数类决定输入实例的类。
误分类率:机器学习算法:k近邻法(k-NN)机器学习算法:k近邻法(k-NN)
要使误分类率最小即经验风险最小,所以多数表决规则等价于经验风险最小化。

1.3 k近邻法的实现:kd树

如何对训练数据进行快速k近邻搜索?
(1)线性扫描:计算输入实例与每个训练实例的距离。不可行。
(2)kd树方法

1.3.1 构造kd树

kd树是二叉树,表示对k维空间的一个划分。

机器学习算法:k近邻法(k-NN)机器学习算法:k近邻法(k-NN)
机器学习算法:k近邻法(k-NN)

机器学习算法:k近邻法(k-NN)

1.3.2 搜索kd树

机器学习算法:k近邻法(k-NN)
机器学习算法:k近邻法(k-NN)机器学习算法:k近邻法(k-NN)
机器学习算法:k近邻法(k-NN)
如果实例点是随机分布的,kd树搜索的平均计算复杂度是O(logN),这里N是训练的实例数。kd树更适用于训练实例数远大于空间维数时的k近邻搜索。
当空间维数接近训练实例数时,它的效率会迅速下降,几乎接近线性扫描。

2 k邻近算法(回归)

在回归算法中,通常采用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均,距离越近的样本权重越大。

参考文献:
【1】统计学习方法,李航
【2】机器学习,周志华