近邻算法介绍
原理
KNN是通过测量不同特征值之间的距离进行分类。思路是:如果一个样本在特征空间中的 K 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。其中 K 通常是不大于 20 的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
1378215-20180805232806939-472376897.png
KNN 算法计算过程
计算待分类物体与其他物体之间的距离;
统计距离最近的 K 个邻居,按照距离递增关系进行排序;
选取距离最小的 K 个点;
确定前 K 个点所在类别的出现频率;
返回前K个点中出现频率最高的类别作为测试数据的预测分类。
K 值的选择
可以看出,在 KNN 算法中,K 值的选择至关重要。K 值较小,容易产生过拟合。如果邻居点是个噪声点,那么未分类物体的分类也会产生误差。K 值较大,容易产生欠拟合。距离过远的点也会对未知物体的分类产生影响。一般来说,K 的取值不超过 20 ,采用交叉验证的思路取 K 值(把 K 值取在较小范围内,然后取准确率最高的那个点作为最终的 K 值)。
KNN 算法适用场景
KNN 算法可以用作分类,也可以用作回归,数据量不大场景下,也可以作为推荐算法使用。
案例
使用KNN算法对手写数字进行识别
下载.png
在案例中,我们拿决策树 CART 算法和 KNN 算法比较,基于目前的分类方案,使用 KNN 算法的结果好与 CART 算法。
版权声明: 本文为 InfoQ 作者【黄大路】的原创文章。
原文链接:【http://xie.infoq.cn/article/314017d9d1e467af6e6877e18】。文章转载请联系作者。
评论