k近邻法是一种基本分类与回归方法,书中只讨论了分类问题的k近邻法。

一、模型

k近邻模型对应于特征空间的划分,由k值的选择、距离度量及分类决策规则三个基本要素决定。

二、策略

(一)k值的选择

k值的选择反映了对近似误差与估计误差之间的权衡,通常由交叉验证选择最优的k。
k值小时,近似误差较小,估计误差较大,模型较复杂,容易发生过拟合;
k值大时,估计误差较小,近似误差较大,模型较简单,预测错误率较高。

(二)距离度量

常用的方法是欧式距离、LpL_p距离。
两个n维向量xi,xjx_i,x_jLpL_p距离定义为
Lp(xi,xj)=(l=1nxi(l)xj(l)p)1p,p1L_p(x_i,x_j)=({\sum\limits_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^p})^{\frac{1}{p}},\quad p\geq1
p=1p=1时,称为曼哈顿距离
p=2p=2时,称为欧式距离
p=p=\infty时,取各个维度距离的最大值L(xi,xj)=maxlxi(l)xj(l)L_\infty(x_i,x_j)={\mathop{max}\limits_{l}|x_i^{(l)}-x_j^{(l)}|}
k近邻法——原理篇

(三)分类决策规则

常用的方法是多数表决,对应于经验风险最小化。
解释:
如果分类器的损失函数为0-1损失函数,分类函数为f:Rn{c1,c2,,cK}f:R^n\rightarrow \left\{ c_1,c_2,···,c_K\right\},则误分类的概率是P(Yf(X))=1P(Y=f(X))P(Y\neq f(X))=1-P(Y=f(X))
对给定的实例xXx\in X,其最近邻的k个训练实例点构成集合构成集合Nk(x)N_k(x)。如果涵盖Nk(x)N_k(x)的区域的类别是cjc_j,那么误分类率为1kxiNk(x)I(yicj)=11kxiNk(x)I(yi=cj)\frac{1}{k}\sum\limits_{x_i\in N_k(x)}I(y_i\neq c_j)=1-\frac{1}{k}\sum\limits_{x_i\in N_k(x)}I(y_i=c_j)
要使误分类率最小即经验风险最小,就要使xiNk(x)I(yi=cj)\sum\limits_{x_i\in N_k(x)}I(y_i=c_j)最大即多数表决。

三、算法

输入:实例的特征向量;训练数据集
输出:实例的类别
Step1: 根据给定的距离度量,在训练集T中找出与实例x最邻近的k个点,涵盖着k个点的x的邻域记作Nk(x)N_k(x)
Step2: 在Nk(x)N_k(x)中根据分类决策规则决定x的类别y
特殊情况,当k=1时,称为最近邻算法

快速k近邻搜索算法:线性扫描;kd树
当训练集很大时,线性扫描的计算非常耗时。
kd树是二叉树,表示对k维空间的一个划分,其每个结点对应于k维空间划分的一个超矩形区域。利用kd树可以省去对大部分数据点的搜索,从而减少搜索的计算量。
通过kd树实现k近邻法分为两步:构造kd树;搜索kd树。
k近邻法——原理篇
k近邻法——原理篇
参考文献
[1] 李航. 统计学习方法(第2版). 北京:清华大学出版社,2017.

相关文章: