机器学习笔记二——k近邻

一、K近邻

1.1 基本介绍

k近邻法(k-NN)是一种基本的分类和回归方法,更偏向于分类。k近邻简单直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最接近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。k近邻模型没有显式的学习过程,有三个要素:k值的选择距离度量分类决策规则

1.2 k值的选择

如果选择较小的k值,就相当于用较小的邻域中的训练实例进行预测,近似误差会减小,但估计误差会增大,容易受到噪声的干扰。也意味着模型整体变得比较复杂,容易发生过拟合。

如果选择较大的k值,就相当于用较大的邻域中的训练实例进行预测,可以减少学习的估计误差,但学习的近似误差会增大。也意味着模型变得简单,容易发生欠拟合。

通常是选取一个比较小的值,然后采用交叉验证法来选取最优的k值。

1.3 距离的度量

特征空间中两个实例点的距离是两个实例点相似程度的反映。不妨设特征空间是 R n \bm R^n Rn,有两点 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)}, \cdots, x_i^{(n)}), x_j=(x_j^{(1)}, x_j^{(2)}, \cdots, x_j^{(n)}) xi=(xi(1),xi(2),,xi(n)),xj=(xj(1),xj(2),,xj(n)),一般使用的有 L p L_p Lp距离和Minkowski距离:

L p L_p Lp距离: L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p (1) L_p(x_i, x_j)=(\sum\limits_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^p)^{\frac{1}{p}}\tag1 Lp(xi,xj)=(l=1nxi(l)xj(l)p)p1(1)
欧式距离( p = 2 p=2 p=2): L 2 ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ 2 ) 1 2 (2) L_2(x_i, x_j)=(\sum\limits_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^2)^{\frac{1}{2}}\tag2 L2(xi,xj)=(l=1nxi(l)xj(l)2)21(2)
曼哈顿距离( p = 1 p=1 p=1): L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ ) (3) L_p(x_i, x_j)=(\sum\limits_{l=1}^n|x_i^{(l)}-x_j^{(l)}|)\tag3 Lp(xi,xj)=(l=1nxi(l)xj(l))(3)
p = ∞ p=\infty p=时, L ∞ ( x i , x j ) = max ⁡ l ∣ x i ( l ) − x j ( l ) ∣ (4) L_{\infty}(x_i, x_j)=\max_l|x_i^{(l)}-x_j^{(l)}|\tag4 L(xi,xj)=lmaxxi(l)xj(l)(4)

1.4 分类决策规则

k近邻法中的分类决策规则往往是多数表决,即由输入实例的 k k k个邻近的训练实例中的多数类决定输入实例的类。

二、k近邻法的实现:kd树

2.1 基本思想

k近邻法最简单的实现方法是线性扫描,这时要计算输入实例与每个训练实例的距离,当训练集很大时,计算非常耗时。为了提高k紧邻搜索的效率,可以使用特殊的结构存储训练数据,以减少计算距离的次数,其中的一种方法就是kd树。

2.2 构造kd树

kd树是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。kd树是二叉树,表示对k维空间的一个划分。

构造kd树的方法如下:构造根节点,使根节点对应于k维空间中包含所有实例点的超矩形区域。通过下面的递归方法,不断的对k维空间进行划分,生成子节点。即:在超矩形区域上选择一个坐标轴和在此坐标轴上的一个切分点(一般为中位数),确定一个超平面,这个超平面通过切分点并垂直于选定的坐标轴,将当前超矩形区域切分为左右两个子区域(子节点);这时,实例点被分到两个子区域。这个过程直到子区域内没有实例点时终止(终止的节点为叶节点)。

2.3 搜索kd树 在这里插入图片描述

2.4 优缺点

  • 优点
    • KNN是一种在线技术,新数据可以直接加入数据集而不必进行重新训练
    • KNN理论简单,容易实现
    • 对异常值不敏感
    • 既可以做回归,又可以做分类,更多是做分类
  • 缺点
    • 对于样本容量大的数据集计算量比较大。
    • 样本不平衡时,预测偏差比较大。
    • k k k值影响较大

2.5 其它

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值