点击上方“图灵人工智能”,选择“星标”公众号
您想知道的人工智能干货,第一时间送达
第五篇 统计学习方法是如何实现分类与聚类的(七)
清华大学计算机系 马少平
第七节:K近邻方法
艾博士:俗话说,物以类聚人以群分,如果两个事物距离很接近,那么我们就有理由认为这两个事物很可能是同一个类别。这样,对于一个待分类样本,可以计算其与训练数据集中所有样本的距离,与其最近的一个样本的类别就可以认为是该待分类样本的类别。这种方法称作最近邻方法。
比如男女性别分类问题,我们假定有发长和鞋跟高度两个特征,取值为发长和鞋跟高度的实际值,这样[发长,鞋跟高度]就可以构成平面空间的一个点,如图5.21所示。其中“△”为训练集中男性样本的坐标,“○”为女性样本的坐标,x和y为两个待分类样本。从图中可以看出x距离样本a的距离比较近,而y距离样本b的距离比较近,而样本a、b分别为男性和女性,所以有理由认为x的类别为男性,y的类别为女性。
图5.21 最近邻方法示意图
小明:就是根据距离最近样本的类别作为待分类样本的距离,感觉这种方法既简单又有道理。
艾博士:但是这种方法也有一定的风险,因为数据集大了以后不可避免地会存在噪声或者标识错误,如果样本a被错误地标识成女性,那么x就会被识别成女性了。
小明:确实存在这样的问题,如果a的类别错误标识,则在其附近的待分类样本都会被识别为女性,造成识别错误。
艾博士:一种解决办法就是不仅仅看与待分类样本距离最近的一个样本的类别,而是看距离它最近的k个样本的类别,k个样本中类别不一定完全一样,哪种类别多就认定该待分类样本是哪个类别。这种方法称作k近邻方法,简称为kNN。
图5.22 k近邻方法示意图
图5.22给出了k近邻方法的示意图。图中距离待分类样本x最近的有5个样本,虽然样本a的类别为女性,但是其余4个样本的类别为男性,所以样本x还是被识别为男性。这就消除了因个别噪声引起的识别错误。
小明:这是一个好办法。如果是多个类别如何处理呢?
艾博士:多类别时也一样处理,就是k近邻中哪个类别的样本最多待分类样本就识别为哪个类别,不要求一定过半数。
小明:了解了。如果将k个近邻中的样本类别看成是对待分类样本类别的投票,得票最多的类别就是待分类样本的类别。但是k取多大为好呢?是不是k越大越好?
艾博士:不是的。当k为1时,k近邻方法就是最近邻方法,受噪声影响比较大,类似于过拟合,但是如果k太大时,容易造成欠拟合,极限情况下k与训练数据集的大小一致时,任何待分类样本都会被固定地识别为数据集中样本数最多的类别。所以如何选取k是k近邻方法中主要问题之一。
图5.23给出了k取不同取值时对识别结果影响的示意图。
图5.23 不同k值时对结果的影响示意图
从图中可以看出,k为1时,x被识别为女性,而k为3时,3个近邻中有2个男性,x被识别为男性,k为5时,5个近邻中有3个女性,x又再次被识别为女性,k扩大为11时,11个近邻中有6个男性,x又是被识别为男性。可见k的不同取值对识别结果的影响。多大的k值合适,需要根据具体问题的样本情况,通过实验决定,选取一个错误率最小的k值。
小明:看起来k近邻方法不需要训练?
艾博士:k近邻方法直接将待分类样本与训练数据集中的每个样本计算距离,所以是不需要训练过程的,直接存储训练数据集就可以了。
小明:在k近邻方法中主要就是距离计算,这里的距离就是欧氏距离吗?
艾博士:欧氏距离是比较常用的距离计算方法,但是在k近邻方法中并不限于只是使用欧氏距离,任何一种距离计算方法都可以用在k近邻方法中。下面我们介绍几种常用的距离计算方法,在介绍中我们假定每个样本共有n个特征,样本
(1)欧氏距离
这是最常用的距离计算方法,我们平时说的两点间的距离一般是指欧氏距离。样本
(2)曼哈顿距离
曼哈顿距离是样本
该距离又称作是城区距离,表示的是一个只有横平竖直道路的城区中,任意两点间的距离。
(3)加权欧氏距离
加权欧氏距离顾名思义就是在计算距离时,每个平方项具有不同的权重
小明:如何给定权重呢?
艾博士:对于
这种采用方差的倒数作为权重的加权欧氏距离又称作标准欧氏距离,是采用方差归一化的欧氏距离,消除了特征取值区间不同造成的影响。
还有一些其他的距离计算方法,我们不再多说。另外一些相似性评价方法也可以用于k近邻中,用相似性取代距离,取k个最相似的样本就可以了。
下面我们给出一个采用k近邻方法进行分类的例子。
表5.5前5列给出了具有15个样本的数据集,其中第1列是样本ID,第2到第4列给出了每个样本的三个特征取值,第5列是每个样本的所属类别。第6列给出了每个样本与待分类样本x=(3.5,3.3,0.8)的距离,第6列给出了按照距离排序后的序号。从表中可以看出,当k取值为5时,与x最近的5个样本ID分别为13、14、15、10、2,其中ID为13、14、15的三个样本类别为C,ID为10的样本类别为B,ID为2的样本类别为A。按照k近邻方法待分类样本x被识别为类别C。
表5.5 k近邻方法分类
小明读书笔记
k近邻方法是一种不需训练的分类方法,按照待分类样本周围k个已知样本情况做分类,k个样本中哪个类别的样本最多就将待分类样本归到哪一类。
k近邻方法最重要的是超参数k,k过小容易造成过拟合,而k过大容易造成欠拟合,可以通过实验的办法找到一个合适的k值。
未完待续
内容转自《艾博士:深入浅出人工智能》,扫描如下二维码购买:
马少平,清华大学计算机系长聘教授,博世知识表示与推理冠名教授,天工智能计算研究院常务副院长,中国人工智能学会副监事长,中国中文信息学会副理事长。主要研究方向为智能信息处理、信息检索、推荐系统等。
本书入围“一生一课,一生一书”计划项目,是最好的人工智能通俗讲义之一。
本书设计了博学的艾博士和好学的小明两个人物,以师徒二人对话的方式,一步步由浅入深地讲解人工智能的基本原理和方法,讲解详细,通俗易懂,给读者以在教室听课的真实感。
本书精心挑选了人工智能发展史上一些主要的方法进行详细讲解,通过本书的学习,使得读者对人工智能有一个比较全面的了解,为进一步深入学习和研究人工智能打下良好的基础。
结合例题,本书对相关概念和算法背后的原理做了详细的讲解,对学习过程中容易犯的错误做了重点说明,适合于对人工智能感兴趣的初学者、从事人工智能开发的工程人员以及讲授相关课程的教师阅读,通过本书的学习,可以对相关概念和算法有更加深入的理解。
本书提供全部的讲课PPT,在微信公众号“跟我学AI”和B站(在B站搜“马少平”)还配有详细的讲课视频,可以通过前言中提供的二维码获取这些资源。
版权声明
版权属于原作者,仅用于学术分享
文章精选: