cs231n笔记(1)——-KNN算法


图像分类:KNN算法(K—最近邻算法)

一.定义

定义:KNN是通过测量不同特征值之间的距离进行分类。它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。(K在此例中为圆的半径)

cs231n笔记(1)——-KNN算法_第1张图片


二.解释

比如此例子中绿色为需判断类。

当K=1时(即实线圆),红色三角占2/3,所以我们人为样本也是红色三角。

当K=2时(即虚线),蓝色为3/5,占多数,算法会将样本归为蓝色方形。


三.距离

关于距离,一般有两种:

1.欧式距离:

cs231n笔记(1)——-KNN算法_第2张图片

2.曼哈顿距离:

cs231n笔记(1)——-KNN算法_第3张图片

四.在图像识别中的应用

在图像识别中,自己理解只是应用KNN的思想,距离并不是实际意义上的距离,而是样本图片像素与标准图片的差距,例如:

cs231n笔记(1)——-KNN算法_第4张图片


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


你可能感兴趣的:(传统BP神经网络,机器学习,深度学习,cs231n,knn)