目录
上一篇:机器学习实战:决策树原来这么简单
在数据挖掘中,有一种算法,叫做邻近算法,它是最简单的分类算法之一,也叫KNN或者K近邻。
这里面,邻可以理解为邻居,用一个思想来概括就是物以类聚,K个最近的邻居,代表着每一个样本都是用它最近的K个邻近值来做判断。
本文章节:
1、邻近算法核心思想
2、邻近算法优缺点
3、邻近算法K值怎么取合适
4、邻近算法怎样计算邻居距离
5、邻近算法sklearn参数介绍
6、邻近算法sklearn实现
邻近算法核心思想
KNN的核心思想,百度词条上这么解释:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。
看起来是不是很复杂,用简单生活中的常识来理解一下:我有一群朋友10个人,其中3个喜欢游泳,7个喜欢爬山,有一天这10个人聚集在一起了,他们分别带了不懂的装备,游泳的人带了:游泳帽,裤衩子,游泳镜;爬山的人带了:登山鞋,登山包,登山杖;我,带了登山鞋,登山包,登山杖,然后聚在一起的时候,很自然就会跟登山的人走在一起;那对于计算机来说,他并不能跟人一样直接看出来,他得计算,计算啥,计算你的装备,发现原来我的装备跟登山的装备最接近,此时判断我为喜欢登山。
样本:我
特征:游泳帽,裤衩子,游泳镜,登山鞋,登山包,登山杖
类别:爬山,游泳
判断标准:特征属性的距离,一般我们用欧氏距离来计算
小编认为,KNN算是自然规律的最好体现,物以类聚。
邻近算法优缺点
优点:
1、最简单有效的分类算法
2、数据集里面间距较小或者间距较大的效果好
3、多分类上,效果很不错,比SVM还要好
缺点:
1、样本数量有限制,小样本还好,大样本的话非常好使,时间复杂度为O(n),此时一般采用KD-TREE或者BALL-TREE解决
2、如果数据集是随机分布,效果较差
3、无法很好处理不平衡问题(小编觉得不平衡问题好多现成算法都处理不好)
邻近算法K值怎么取合适
关于这个K值的取值,目前没有一个标准,但是有一种经常做得方法,循环叠加法(小编自己取的)
默认K值从1开始,计算分类器的准确率,每次给K值增加1,去准确率最高的那个K值,这里的K值,小
编的上限一般设置为20.
邻近算法怎样计算邻居距离
距离其实非常好理解,就是两个点之间的直线距离。
目前在计算距离上,常用的方法:欧氏距离,相关度,余弦值,曼哈顿距离
邻近算法sklearn参数介绍
直接参考图中设置即可。
邻近算法sklearn实现
这次计算的结果还是跟上一篇一样,也是100%预测,原因参考上一篇。
--END--
作者:溪云阁
原创作品,抄袭必究。
部分图片来源网络,如侵权请联系删除,谢谢!