KNN算法的简述

KNN算法的简述

By:Yang Liu
1.什么是KNN算法。
KNN(K-Nearest Neighbor)是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻近值来代表。算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
可以通俗的理解为“物以类聚人以群分近朱者赤近墨者黑”。
2.KNN算法的原理
KNN的原理就是当预测一个新的样本x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。换句话说就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类。
通用步骤:
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。
3.KNN算法的特点
KNN是一种非参的,惰性的算法模型(非参的意思并不是说这个算法不需要参数,而是意味着这个模型不会对数据做出任何的假设。惰性是指KNN没有明确的训练数据的过程,或者说这个过程很快)。
4.KNN算法的优点
(1)简单,易于理解,易于实现,无估计参数;
(2)预测效果好;
(3)适合对稀有事件进行分类;
(4)适用于多个分类的问题;
5.KNN算法的缺点
(1)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。
(2)计算量较大,因为对每一个待分类的样本都要计算它到全体已知样本的距离。
6.KNN算法的关键
K值得选取。
K太大导致分类模糊;K太小受个例影响,波动较大。
如何选取K值?
(1)凭借经验
(2)通过交叉验证,从选取一个较小的K值开始,不断增加K的值,然后计算验证集合的方差,最终找到一个比较合适的K值。下图表示当K=10时,所得结果最优。
KNN算法的简述_第1张图片
参考文献:
(1)https://www.cnblogs.com/listenfwind/p/10311496.html
(2)https://www.bilibili.com/video/BV1Nt411i7oD?t=1352

你可能感兴趣的:(KNN算法的简述)