图像分类:KNN算法(K—最近邻算法)
一.定义
定义:KNN是通过测量不同特征值之间的距离进行分类。它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。(K在此例中为圆的半径)
二.解释
比如此例子中绿色为需判断类。
当K=1时(即实线圆),红色三角占2/3,所以我们人为样本也是红色三角。
当K=2时(即虚线),蓝色为3/5,占多数,算法会将样本归为蓝色方形。
三.距离
关于距离,一般有两种:
1.欧式距离:
2.曼哈顿距离:
四.在图像识别中的应用
在图像识别中,自己理解只是应用KNN的思想,距离并不是实际意义上的距离,而是样本图片像素与标准图片的差距,例如:
1)计算测试数据与各个训练数据之间的距离:每个像素点的差距再求和;
2)按照距离的递增关系进行排序;
3)选取距离最小的n个点;
4)确定n个点所在类别的出现频率;
5)返回前n个点中出现频率最高的类别作为测试数据的预测分类
如果数据过少,可以使用交叉验证法,在选择中反复选择测试验证折,在所有可能的测试折的选择中选出效果最好的。但是KNN很少被采用的原因是效率低。
参考文章:https://www.cnblogs.com/ybjourney/p/4702562.html
cs231n地址:http://study.163.com/course/courseLearn.htm?courseId=1003223001#/learn/video?lessonId=1004015843&courseId=1003223001