1.KNN原理:
2.KNN特点:
2.1.惰性学习。将所有计算推迟到分类(test)阶段之后。
2.2.要求邻居已经正确分类。这被视为当做训练样本集的算法
2.3.一般情况下,计算欧氏距离。要求变量是连续的。对于文本分类这种非连续的,可以使用重叠度量或者海明距离作为度量。
2.4.多数表决。
2.5.基于实例的学习
3.KNN步骤:
3.1.计算新输入样本距离所有训练样本的距离。遍历所有的样本
3.2.选择K个距离最小的训练样本。排序算法
3.3.计算这K个样本中所含样本数最多的类。计数
4.KNN缺陷及改进方法:
4.1.计算量大。需要计算新输入样本到所有样本的距离。
4.2.K值不能自适应,需要提前设定
哪种算法的参数可以自适应?
4.3.某个类的容量很大时,输入一个新样本后,该样本的K个最近邻中,大样本类的样本占大多数。所有多数表决方法的缺陷。
改进方法:
4.3.权值。赋予大样本类中的样本较小的权值。赋予权值时,将距离考虑进去。
(欧式距离)
4.2.较大的K值可以减少噪声。K值可以考虑启发式技术,如交叉验证。
5.KNN优点\适用:
5.1.样本数量较小
5.2.准确率要求不高
5.3.样本不能一次性获取,只能随着时间一个一个得到。