一、K近邻

1.1 基本介绍

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

1.2 k值的选择

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

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

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

1.3 距离的度量

特征空间中两个实例点的距离是两个实例点相似程度的反映。不妨设特征空间是k近邻均值滤波不替换吗_机器学习,有两点k近邻均值滤波不替换吗_机器学习_02,一般使用的有k近邻均值滤波不替换吗_k近邻_03距离和Minkowski距离:

k近邻均值滤波不替换吗_k近邻_03距离:k近邻均值滤波不替换吗_数据集_05
欧式距离(k近邻均值滤波不替换吗_邻域_06):k近邻均值滤波不替换吗_k近邻均值滤波不替换吗_07
曼哈顿距离(k近邻均值滤波不替换吗_邻域_08):k近邻均值滤波不替换吗_邻域_09
k近邻均值滤波不替换吗_k近邻均值滤波不替换吗_10时,k近邻均值滤波不替换吗_邻域_11

1.4 分类决策规则

k近邻法中的分类决策规则往往是多数表决,即由输入实例的k近邻均值滤波不替换吗_邻域_12个邻近的训练实例中的多数类决定输入实例的类。

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

2.1 基本思想

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

2.2 构造kd树

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

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

2.3 搜索kd树

k近邻均值滤波不替换吗_机器学习_13

2.4 优缺点

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

2.5 其它

  • 需要进行标准化处理
  • 面经 机器学习 KNN