k近邻法——原理篇

mac2025-11-20  4

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)

(三)分类决策规则

常用的方法是多数表决,对应于经验风险最小化。 解释: 如果分类器的损失函数为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树。 参考文献 [1] 李航. 统计学习方法(第2版). 北京:清华大学出版社,2017.

最新回复(0)