X Lab

Any sufficiently advanced technology is indistinguishable from magic.

AeroX's avatar AeroX

k-Nearest Neighbor | k近邻算法

k-Nearest Neighbor

kNN是CS231n介绍的第一个分类器,这是一个比较简单的分类器,然而在图像处理上并没有什么卵用,效率和准确率也都比较拙计。


Nearest Neighbor

kNN最简单的情况是k = 1,即Nearest Neighbor,只取最近的一个
NN算法找到距离测试图像最近的训练样本,并把这一样本的标签当做测试图像的标签。
首先把图像矩阵转为向量,再计算两向量之间的距离
向量间距离有两种计算方法:
L1距离:
L1距离
(各坐标差之和,又叫曼哈顿距离)
L2距离:
L2距离
欧几里得距离
sqrt是单调函数,实际使用时可以不开方,不影响比较大小


k-Nearest Neighbor

为了获得更好的分类效果,kNN找到最近的k个图像,以出现次数最多的标签作为测试图像的标签。
kNN