k近邻法——原理篇

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

文章目录

    • 一、模型
    • 二、策略
      • (一)k值的选择
      • (二)距离度量
      • (三)分类决策规则
    • 三、算法

一、模型

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

二、策略

(一)k值的选择

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

(二)距离度量

常用的方法是欧式距离、 L p L_p Lp距离。
两个n维向量 x i , x j x_i,x_j xi,xj L p L_p Lp距离定义为
L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p , p ≥ 1 L_p(x_i,x_j)=({\sum\limits_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^p})^{\frac{1}{p}},\quad p\geq1 Lp(xi,xj)=(l=1nxi(l)xj(l)p)p1,p1
p = 1 p=1 p=1时,称为曼哈顿距离
p = 2 p=2 p=2时,称为欧式距离
p = ∞ p=\infty p=时,取各个维度距离的最大值 L ∞ ( x i , x j ) = m a x l ∣ x i ( l ) − x j ( l ) ∣ L_\infty(x_i,x_j)={\mathop{max}\limits_{l}|x_i^{(l)}-x_j^{(l)}|} L(xi,xj)=lmaxxi(l)xj(l)
k近邻法——原理篇_第1张图片

(三)分类决策规则

常用的方法是多数表决,对应于经验风险最小化。
解释:
如果分类器的损失函数为0-1损失函数,分类函数为 f : R n → { c 1 , c 2 , ⋅ ⋅ ⋅ , c K } f:R^n\rightarrow \left\{ c_1,c_2,···,c_K\right\} f:Rn{c1,c2,,cK},则误分类的概率是 P ( Y ≠ f ( X ) ) = 1 − P ( Y = f ( X ) ) P(Y\neq f(X))=1-P(Y=f(X)) P(Y=f(X))=1P(Y=f(X))
对给定的实例 x ∈ X x\in X xX,其最近邻的k个训练实例点构成集合构成集合 N k ( x ) N_k(x) Nk(x)。如果涵盖 N k ( x ) N_k(x) Nk(x)的区域的类别是 c j c_j cj,那么误分类率为 1 k ∑ x i ∈ N k ( x ) I ( y i ≠ c j ) = 1 − 1 k ∑ x i ∈ N k ( x ) I ( y i = c j ) \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) k1xiNk(x)I(yi=cj)=1k1xiNk(x)I(yi=cj)
要使误分类率最小即经验风险最小,就要使 ∑ x i ∈ N k ( x ) I ( y i = c j ) \sum\limits_{x_i\in N_k(x)}I(y_i=c_j) xiNk(x)I(yi=cj)最大即多数表决。

三、算法

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

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

你可能感兴趣的:(统计学习方法)