k近邻算法知识要点

1 k k k 近邻算法

  • k k k近邻法(k-nearest neighbor, k-NN) 是一种基本的分类与回归方法,这里只讨论分类问题中的k-NN。

  • k k k近邻法的三个基本要素: k k k值的选择、距离度量、分类决策规则。

  • k k k近邻法没有显式的学习过程,实际上利用训练集对特征空间进行划分,并作为其分类的"模型"。

  • k k k近邻算法

    输入:训练数据集 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\chi=R^n xiχ=Rn为实例的特征向量, y i ∈ Y = { c 1 , c 2 , . . . , c K } y_i\in\mathcal{Y}=\{c_1,c_2,...,c_K\} yiY={c1,c2,...,cK}为实例的类别, i = 1 , 2 , . . , N i=1,2,..,N i=1,2,..,N x x x 为实例特征向量。

    输出:实例 x x x 所属的类 y y y

    (1)根据给定的距离度量, 在训练集 T T T中找出与 x x x 最邻近的 k k k个点,涵盖这 k k k个点的 x x x的邻域记作 N k ( x ) N_k(x) Nk(x)
    (2)在 N k ( x ) N_k(x) Nk(x)中根据分类决策规则(如多数表决) x x x 所属的类 y y y

    y = arg ⁡ m a x c j ∑ x i ∈ N k ( x ) I ( y i = c j ) → 此 处 y 取 值 为 函 数 最 大 时 的 c j 的 值 y=\arg max_{c_j}\sum_{x_i\in N_k(x)}I(y_i=c_j) \to 此处y取值为函数最大时的c_j的值 y=argmaxcjxiNk(x)I(yi=cj)ycj

    其中, i = 1 , 2 , . . . , N ; j = 1 , 2 , . . . , K i=1,2,...,N;j=1,2,...,K i=1,2,...,Nj=1,2,...,K I I I为指示函数,即当 y i = c j y_i=c_j yi=cj I I I 1 1 1,否则 I I I 0 0 0

  • k k k近邻法的特殊情况是 k = 1 k=1 k=1的情形,称为最近邻算法。对于输入的实例点(特征向量) x x x, 最近邻法将训练数据集中与 x x x最邻近点的类作为 x x x的类。

  • 特征空间中,对每个训练实例点 x i x_i xi ,距离该点比其他点更近的所有点组成一个区域,叫作单元(cell)

    • 每个训练实例点拥有一个单元
    • 每个单元的实例点的类别是确定的
    • 最近邻法,将实例 x i x_i xi 的类 y i y_i yi 作为其单元中所有点的类标记(class label)
    • 二维特征空间划分的一个例子

在这里插入图片描述

2 k k k 近邻模型

  • k k k 近邻模型三个基本要素:距离度量、 k k k值的选择、分类决策规则

  • 距离度量

    • Minkowski 距离:设特征空间 χ \chi χ n n n维实数向量空间 R n R^n Rn x i , x j ∈ χ x_i,x_j\in\chi xi,xjχ x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) T x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})^T xi=(xi(1),xi(2),...,xi(n))T x j = ( x j ( 1 ) , x j ( 2 ) , . . . , x j ( n ) ) T x_j=(x_j^{(1)},x_j^{(2)},...,x_j^{(n)})^T xj=(xj(1),xj(2),...,xj(n))T 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 1 ( x i , x j ) = ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ , 当 p = 1 时,为曼哈顿距离 L 2 ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ 2 ) 1 2 , 当 p = 2 时,为欧式距离 L ∞ ( x i , x j ) = max ⁡ l ∣ x i ( l ) − x j ( l ) ∣ , 当 p = ∞ 时,为切比雪夫距离 L_p(x_i,x_j)=(\sum_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^p)^{\frac{1}{p}}= \begin{cases} L_1(x_i,x_j)=\sum_{l=1}^n|x_i^{(l)}-x_j^{(l)}|, & \text{当$p=1$时,为曼哈顿距离} \\ L_2(x_i,x_j)=(\sum_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^2)^{\frac{1}{2}}, & \text{当$p=2$时,为欧式距离} \\ L_\infty(x_i,x_j)=\max_l|x_i^{(l)}-x_j^{(l)}|, & \text{当$p=\infty$时,为切比雪夫距离} \end{cases} Lp(xi,xj)=(l=1nxi(l)xj(l)p)p1=L1(xi,xj)=l=1nxi(l)xj(l),L2(xi,xj)=(l=1nxi(l)xj(l)2)21,L(xi,xj)=maxlxi(l)xj(l),p=1时,为曼哈顿距离p=2时,为欧式距离p=时,为切比雪夫距离

  • 二维空间中 p p p取不同值时,与原点的 L p L_p Lp距离为1(即 L p = 1 L_p=1 Lp=1)的点的图形

在这里插入图片描述

  • k k k值的选择:在应用中, k 值一般取一个比较小的数值.通常采用交叉验证法来选取最优的k 值
  • 分类决策规则:多数表决规则,即由输入实例的k 个邻近的训练实例中的多数类决定输入实例的类。

3 k 近邻法的实现:kd 树

  • k 近邻法的实现需要考虑如何快速搜索k 个最近邻点。
    • kd 树是一种便于对k 维空间中的数据进行快速检索的数据结构;
    • kd 树是二叉树,表示对k 维空间的一个划分,其每个结点对应于k 维空间划分中的一个超矩形区域;
    • 利用kd 树可以省去对大部分数据点的搜索, 从而减少搜索的计算量。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值