统计学习方法笔记-k近邻

Posted xiaoranone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计学习方法笔记-k近邻相关的知识,希望对你有一定的参考价值。

统计学习方法-k近邻

k近邻方法是一种惰性学习算法,可以用于回归和分类,它的主要思想是投票机制,对于一个测试实例 x j x_j xj, 我们在有标签的训练数据集上找到和最相近的k个数据,用他们的label进行投票,分类问题则进行表决投票,回归问题使用加权平均或者直接平均的方法。

算法和模型

由于这个模型很容易理解,我们直接给出kNN分类模型其算法伪代码:
输入:训练数据
T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y n ) T=\\(x_1,y_1),(x_2,y_2),...,(x_N,y_n)\\ T=(x1,y1),(x2,y2),...,(xN,yn)
其中 x i ∈ R n x_i \\in R^n xiRn,是实例的特征向量, y i ∈ Y = c 1 , c 2 , . . . , c K y_i \\in Y = \\c_1,c_2,...,c_K\\ yiY=c1,c2,...,cK,表示类别,
输出: 实例x所属的类别

  1. 根据跟定的距离度量的方法,在T中找到和x最邻近的k个点,记作x的邻域, N k ( x ) N_k(x) Nk(x)
  2. N k ( x ) N_k(x) Nk(x)中使用多数表决规则,绝对x的类别y:
    y = a r g m a x c j ∑ x i ∈ N k ( x ) I ( y i = c j ) y=argmax_c_j \\sum_x_i \\in N_k(x)I(y_i=c_j) y=argmaxcjxiNk(x)I(yi=cj)
  3. 对于回归问题,得到y
    y = 1 k ∑ x i ∈ N k ( x ) y i y= \\frac1k \\sum_x_i \\in N_k(x)y_i y=k1xiNk(x)yi
    其中 i = 1 , 2 , . . . , N ; j = 1 , 2 , . . . , K i=1,2,...,N; j=1,2,...,K i=1,2,...,N;j=1,2,...,K.

从上述算法中,我们可以看到,kNN没有显示的训练和学习模型的过程,这是一个惰性的学习方法,主要有两个点需要我们关注,一个是距离的度量,另一个是超参数k值的选择,接下来我们就来考虑这两个问题。

距离的度量

我们刚才提到KNN的一个关键点就是如何度量距离,对于两个向量 ( x i , x j ) (x_i, x_j) (xi,xj),一般使用 L p L_p Lp距离进行计算。

假设特征空间 X X X是n维实数向量空间 R n R^n Rn, 其中, x i , x j ∈ X x_i,x_j \\in X xi,xjX,
x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) , x j = ( x j ( 1 ) , x j ( 2 ) , . . . , x j ( n ) ) x_i=(x_i^(1),x_i^(2),...,x_i^(n)),x_j=(x_j^(1),x_j^(2),...,x_j^(n)) xi=(xi(1),xi(2),...,xi(n))xj=(xj(1),xj(2),...,xj(n)), 则 x i , x j x_i,x_j xi,xj的L_p距离定义为:
L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p L_p(x_i,x_j) = \\left( \\sum_l=1^n|x_i^(l)-x_j^(l)|^p \\right) ^ \\frac1p Lp(xi,xj)=(l=1nxi(l)xj(l)p)p1
这里的 p ≥ 1 p \\geq 1 p1. 当p=2时候,称为欧氏距离(Euclidean distance), 有
L 2 ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ 2 ) 1 2 L_2(x_i,x_j) = \\left( \\sum_l=1^n|x_i^(l)-x_j^(l)|^2 \\right) ^ \\frac12 L2(xi,xj)=以上是关于统计学习方法笔记-k近邻的主要内容,如果未能解决你的问题,请参考以下文章

统计学习方法笔记-k近邻

统计学习方法笔记-k近邻

机器学习笔记——K近邻法

统计学习方法与Python实现——k近邻法

李航统计学习方法(第二版):k 近邻算法简介

李航统计学习方法——算法2——k近邻法