赞
踩
目录
少数服从多数
K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。
例如下图展现了两类样本数据,分别由正方形和三角形表示,待分类数据由圆形表示,算法的目的是依据已知的样本数据判断待分类数据的类别,即对圆形数据分类。
我们考虑几种不同的K值:
对未知类别的数据集中的每个点依次执行以下操作
k近邻算法中需要按照距离递增次序排序,通常选取以下类型的距离:
假设所使用的样本特征为,取每一轴上的最大值减最小值
随后在计算距离时将每一个坐标轴除以相应的以进行归一化
当使用多维度数据计算距离时,数据维度的归一化是及其必要的。
例如,以身高(cm)与脚码(尺码)大小作为特征值,判断男性或者女性。5个训练样本分布如下:
A [(179,42),男],B [(178,43),男],C [(165,36)女],D [(177,42),男],E [(160,35),女]
可以发现,第一维身高特征是第二维脚码特征的4倍左右,在计算距离度量的时候,如果不进行数据维度的归一化,算法就会偏向于第一维特征,这会造成俩个特征并不是等价重要的,最终可能会导致距离计算错误,从而导致预测错误。
以测试样本 F[(167,43),男]为例,取k=3,分别算出F离训练样本的欧式距离,然后选取最近的3个,多数类别就是我们最终的结果,计算结果如下:
可以得到,最近的前三个分别是C,D,E三个样本,那么由C,E为女性,D为男性,得到预测结果为女性。
女性脚43码的可能性远远小于男性脚43码的可能性,算法却错误地预测F为女性,这不是算法的问题,这是各个特征量纲不同的问题,这里量纲直接导致身高的权重远大于脚码的权重,进而导致预测错误。所以在计算前应该让每个特征同等重要,这就是归一化的必要性。
过拟合:在训练集上准确率非常高,而在测试集上准确率低
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。