k-近邻算法

1、有监督的算法,即需要依赖标签;

2、算法原理:、

(1)计算已知类别数据集中的点和当前点的距离;

(2)按照距离依次排序;

(3)选取与当前点距离最小的K个点;

(4)确定前K个点所在类别的出现概率;

(5)返回前K个点出现概率最高的类别作为当前点预测分类。

3、优点:

算法本身比较简单,不需要进行训练,训练复杂度为0

4、缺点:

KNN分类算法的计算复杂度和训练集中的文档数目成正比,即,如果训练集中的文档总数为n,那么KNN的分类时间复杂度为O(n);

不能积累训练经验,每预测一个,都需要重新计算。

5、应用:

cifar-10图像集分类。问题,如何计算图像之间的距离?使用两张图像之间对应的像素值的差值。

但是,KNN计算距离的时候,把背景也考虑进去了,而且大部分情况下背景起主导作用,所以不适合使用来做图像分类。

L1 distance(曼哈顿距离): d1(I1,I2)=求和(|I1-I2|)

L2 distance(欧式距离):相减后平方和再开方

超参数:指的是在训练策略中可以改变的参数,比如距离可以使用L1,也可以使用L2或者其他的度量方式。


训练的一些误区:

测试集只能在测试阶段使用,不要在训练期间使用来调整网络参数。

可以通过把训练集分成训练集和校正集,在训练阶段使用校正集进行网络参数调整,即交叉验证。


k-近邻算法

k-近邻算法