前言
本文参考内容来源:https://blog.csdn.net/x603560617/article/details/83621324
https://blog.csdn.net/qq_36330643/article/details/77532161
最近在学习斯坦福的视觉课程,第一个主要内容就是通过KNN算法来对图像进行分类,效果当然很不好,但是作为大家接触到的第一个机器学习算法,还是有必要对其进行一次深入的了解。
K最近邻(K-Nearest Neighbor,KNN)算法,是著名的模式识别统计学方法,在机器学习分类算法中占有相当大的地位。它是一个理论上比较成熟的方法。
最近邻(nearest neighbor)
在介绍K-最近邻算法之前,有必要介绍一下最近邻,考虑一下问题:
给出的条件:
- 训练数据集:
2.需要进行分类的新样本的特征向量:x
目标:根据训练数据集和所给的新样本的特征向量,预测出新样本的所属类别。
使用最近邻的解决方法:
计算x与这N个训练集中每个样本的特征向量之间的欧氏距离,找到最小的距离,查看这个最小距离所属样本的类别,就把x归为这一类别。
我觉得可以用“近朱者赤近墨者黑”这一成语来概括这一算法。
近邻算法没有显性的学习过程,只是机械的进行比较。
欧氏距离
近邻算法中的一个核心概念就是两个样本之间的距离度量方式,其采用的是欧氏距离。
K最近邻
相对于最近邻算法,K最近邻算法增加了一个投票过程,这里我觉得与其叫做叫做“投票”,还不如叫“统计排序”过程,下面通过举例子来进行其原理的表述:
下图中有两种类型的样本数据,一类是蓝色的正方形,另一类是红色的三角形,中间那个绿色的圆形是待分类数据:
当我们设置K=3时,那么离绿色点最近的有2个红色的三角形和1个蓝色的正方形,这三个点进行投票,于是绿色的待分类点就属于红色的三角形。而如果K=5,那么离绿色点最近的有2个红色的三角形和3个蓝色的正方形,这五个点进行投票,于是绿色的待分类点就属于蓝色的正方形。