机器学习-k近邻法

k近邻法

  k近邻法是一种基本分类和回归方法。k值的选择,距离度量和分类决策规则是k近邻法的三个要素。

1 k近邻算法

      输入:训练集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x i , y i ) T={(x_1,y_1),(x_2,y_2),...,(x_i,yi)} T=(x1,y1),(x2,y2),...,(xi,yi),其中 x i ∈ X = R n , y i ∈ Y = c 1 , c 2 , . . . , c k x_i\in X= R^n, y_i \in Y={c_1, c_2,...,c_k} xiX=Rn,yiY=c1,c2,...,ck
      输出:实例x所属的类y。
    (1)根据给定的距离度量,在训练集T中找出与x最邻近的k个点,涵盖这k个点的x的邻域记作 N k ( x ) N_k(x) Nk(x)
    (2)在 N k ( x ) N_k(x) Nk(x)中根据分类决策规则决定x的类别y
y = arg max ⁡ c j ∑ x ∈ N k ( x ) I ( y i = c j ) , i = 1 , 2... , N ; j = 1 , 2 , . . . , K y=\argmax_{c_j}\sum_{x \in N_k(x)} I(y_i=c_j),i=1,2...,N;j=1,2,...,K y=cjargmaxxNk(x)I(yi=cj),i=1,2...,N;j=1,2,...,K
    I为指示函数, y i = c j y_i=c_j yi=cj时I为1,否则为0.

2 k近邻模型

  k近邻法是将特征共空间根据要素划分为一些子空间,子空间的区域叫做单元(cell).
在这里插入图片描述

2.1 距离度量

  关于 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 L_p(x_i,x_j)=(\sum_{l=1}^{n}|x_i^l-x_j^l|^p)^\frac1p Lp(xi,xj)=(l=1nxilxjlp)p1
  如果p=2,表示欧式距离
L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i l − x j l ∣ 2 ) 1 2 L_p(x_i,x_j)=(\sum_{l=1}^{n}|x_i^l-x_j^l|^2)^\frac12 Lp(xi,xj)=(l=1nxilxjl2)21
  如果p=1,表示曼哈顿距离
L p ( x i , x j ) = ∑ l = 1 n ∣ x i l − x j l ∣ L_p(x_i,x_j)=\sum_{l=1}^{n}|x_i^l-x_j^l| Lp(xi,xj)=l=1nxilxjl
  如果p= ∞ \infty ,为各个坐标距离的最大值
L p ( x i , x j ) = max ⁡ l ∣ x i l − x j l ∣ L_p(x_i,x_j)=\max_l|x_i^l-x_j^l| Lp(xi,xj)=lmaxxilxjl
在这里插入图片描述

2.2 k值选择

  k值小,近似误差减小,估计误差增大,模型更加复杂.
  k值大,近似误差增大,估计误差减小,模型更加简单.
  在应用中,k值一般取一个比较小的数值.通常采用交叉验证法来选取最优的k值.

2.3 分类决策规则

  为了得到很好的分类效果,就要求有很低的误分类率,也就是经验风险最小.误分类率的公式如下:
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 ) \frac1k\sum_{x_i \in N_k(x)}I(y_i \neq c_j)=1-\frac 1k\sum_{x_i \in N_k(x)}I(y_i = c_j) k1xiNk(x)I(yi=cj)=1k1xiNk(x)I(yi=cj)

3 k近邻实现方法:kd树

3.1 构造kd树

在这里插入图片描述
在这里插入图片描述

3.2 搜索kd树

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值