赞
踩
目录
kNN是一种基本的分类和回归方法,本文探讨的是KNN的分类方法。kNN可以理解为给定训练样本,对于新的测试数据,在训练样本中找到与测试数据最临近的k个训练样本,根据最近的k个训练样本的类别,通过多数投票的方式进行预测。
假设如下图,有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分类的数据。
如上图:
输入:
输出:
从kNN的算法描述中可以发现,在KNN算法中有三个要素很重要,分别是距离度量,k的大小和分类规则。
距离度量有很多种方式,要根据具体情况选择合适的距离度量方式。常用的是闵可夫斯基距离:
如果k值较小,就相当于用较小邻域中的训练实例进行预测,极端情况下k=1,测试实例只和最接近的一个样本有关,训练误差很小(0),但是如果这个样本恰好是噪声,预测就会出错,测试误差很大。也就是当k值较小的,会产生过拟合的现象。
如果k值较大,就相当于用很大邻域中的训练实例进行预测,极端情况是k=n,测试实例的结果是训练数据集中实例最多的类,这样会产生欠拟合。
在应用中,一般选择较小k并且k是奇数。通常采用交叉验证的方法来选取合适的k值。(选取k值很重要的关键是实验调参,通过调整超参数来得到一个较好的结果)
kNN中的分类决策规则通常是多数表决,即由测试样本的k个临近样本的多数类决定测试样本的类别。
举例:对人的性别进行分类,特征分别为身高(单位cm)和鞋码(尺码)。假设数据集如表:
序号 | 身高 | 鞋码 | 性别 |
1 | 179 | 42 | 男 |
2 | 278 | 43 | 男 |
3 | 165 | 36 | 女 |
4 | 177 | 42 | 男 |
5 | 160 | 35 | 女 |
看出问题了吗?
身高特征的数值是脚码特征的4倍左右,那么在进行距离度量的时候,算法就会偏向于身高特征,对于距离的计算结果受身高特征的影响较大,这样造成俩个特征并不是等价重要的,最终可能会导致距离计算错误,从而导致预测错误。
这就是特征量纲(简单理解为取值范围或者衡量单位)的问题,因为特征量纲的不同导致了身高的重要性已经远远大于脚码了,这是不客观的。
一般来说,在进行KNN分类使用的样本特征时,都会对特征进行归一化处理,减少由于特征本身属性和取值问题带入的先验的影响,导致特征权重的偏移。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。