机器学习算法:k近邻法(k-NN)
分类与回归算法,多分类。
三个基本要素:K值的选择,距离度量,分类决策规则。
1 k近邻算法(分类)
最近邻算法:k=1的k近邻法。即对于输入的实例点x(特征向量),最近邻法将训练数据集中与x最邻近点的类作为x的类。
k近邻法没有显示的学习过程。(“懒惰学习”:训练阶段仅仅保存训练样本,收到测试样本后再进行处理。)
1.1 k近邻模型
1.1.1 模型
在三要素确定的情况下,根据每个训练实例点,对特征空间进行划分。
(对每个训练实例点,距离该店比其他店更近的所有点组成的区域叫做单元)
1.1.2 三要素
1.1.2.1 距离度量
由不同距离度量所确定的最近邻点是不同的。
1.1.2.2 k值的选择
k值过小,模型越复杂,近似误差较小,估计误差增大。越易过拟合。
k值过大,模型越简单,近似误差越大,估计误差减小。
在应用中,k值一般取一个比较小的数值。
1.1.2.3 分类决策规则
一般选择多数表决,即由输入实例的k个邻近的训练实例中的多数类决定输入实例的类。
误分类率:
要使误分类率最小即经验风险最小,所以多数表决规则等价于经验风险最小化。
1.3 k近邻法的实现:kd树
如何对训练数据进行快速k近邻搜索?
(1)线性扫描:计算输入实例与每个训练实例的距离。不可行。
(2)kd树方法
1.3.1 构造kd树
kd树是二叉树,表示对k维空间的一个划分。
1.3.2 搜索kd树
如果实例点是随机分布的,kd树搜索的平均计算复杂度是O(logN),这里N是训练的实例数。kd树更适用于训练实例数远大于空间维数时的k近邻搜索。
当空间维数接近训练实例数时,它的效率会迅速下降,几乎接近线性扫描。
2 k邻近算法(回归)
在回归算法中,通常采用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均,距离越近的样本权重越大。
参考文献:
【1】统计学习方法,李航
【2】机器学习,周志华