“近朱者赤,近墨者黑”,这句话大家都听说过,意思是靠着朱砂的变红,靠着墨的变黑。比喻接近好人可以使人变好,接近坏人可以使人变坏,指客观环境对人有很大影响。在现实的生活中我们都知道,想要了解一个人,一个比较靠谱的办法就是从他身边的朋友来了解。
本文介绍的K最近邻(k-Nearest Neighbor,KNN)算法,其指导思想就是“近朱者赤,近墨者黑”,由你身边的朋友推断你的类别。kNN是一种分类方法,全称k-Nearest Neighbor,顾名思义,是对于给定的测试样本和基于某种度量距离的方式下,通过最靠近的k个训练样本来预测当前样本的分类结果。其中预测的方式也很简单,就是投票,至于投票方式可以根据工程中的实际情况来决定,可以单纯的计数,当然也可以加权。
kNN算法并不存在训练过程,其实就是单纯的记录训练样本,在需要预测的时候做计算即可,虽然很简单,但在历史上影响力也是极大的。
借用百度一张图来说明kNN算法过程,加入要预测图中Xu的分类结果。就预设一个距离值,我们只考虑以Xu为圆心以这个距离值为半径的圆内的已知训练样本,然后根据这些样本的投票结果来预测Xu属于w1类别,投票结果是4:1。