K-近邻算法讲解

概述:

给定一个训练数据集,对新的输入实例,在训练数据据集中找到与该实例最近邻的K个实例,这K个实例的多数属于某个类,就把该实例分为这个类

K近邻算法的三要素:

1、K值的选择
2、距离的度量
3、分类决策规则

注:K近邻算法中,当训练集、距离度量、K值、及分类决策规则确定后,对于一个新的输入实例,其输出的所属类别也就确定了

K值的选择:

K值的选择对K近邻算法有重大的影响,如果K值较小,就会使“学习”的近似误差减小,“学习”的估计误差增大;即只有与输入实例较近的训练实例才会对预测结果有影响,只用一小部分与之相近的数据参与新数据的分类;如果这些数据恰巧是噪声数据,预测就会出错;也就是说,K值选得较小,就会使模型的复杂度增大,发生过拟合(极端K=1)

同时,如果K值较大,就会使“学习”的近似误差增大,“学习”的估计误差减小;这时与训练数据较远(不相似)的训练数据也会对预测产生影响,可能时预测产生错误;K值较大,则更能学习到训练数据集内部的规律;也就是说,K值较大,会使模型的复杂度降低(极端的K = N)

一般的,K值取一个较小的值,通常采用交叉验证法来求取最优的K值

距离的度量:

包括欧式距离、曼哈顿距离等(见统计学习)

分类决策规则:

分类决策规则即是当已知K个训练实例的类别时,我们怎样通过这些实例的类别来确定新输入实例(未知实例)的类别;其中用得最多的往往是多数表决法,即选定K个实例中最多的类别为未知实例的类(见统计学习)

然而,实现K近邻算法时,主要考虑的是如何对训练数据快速地K近邻搜索,这在特征空间的维数比较大及训练数据较多时尤为重要

最简单的方法就是线性扫描,即将输入实例与训练数据逐一计算距离,这样的计算是非常耗时的;为了提高K近邻搜索的效率,我们考虑使用特殊的结构存储训练数据,下面就介绍其中的一种KD树(kd tree)方法

简介:KD树是对K维空间的实例点进行存储以便对其进行快速搜索的树形数据结构,Kd树是二叉树,表示对K维空间的一个划分

构造Kd树(以构造平衡Kd树为例)见统计学习

搜索Kd树(见统计学习)

猜你喜欢

转载自blog.csdn.net/weixin_43264420/article/details/89424118
今日推荐