K-近邻算法(一)


K-近邻算法(KNN)

k近邻算法就是先确定一个准确数字k值,然后在这个当前点的周围查找最小距离的k个点,然后在这k个点里面把这几个点进行分类,概率最大的就最为当前点的分类。

分类步骤:

1,计算已知数据集中的点与当前点的距离。

2,把距离进行排序。

3,选取距离最近的k个点

4,确定前k个点出现类别的概率

5,返回前k个点出现频率最高的类别作为当期点预测分类

特点:

1,KNN算法本身就简单有效,是一种lazy-learning算法

2,分类器不需要训练集进行练习,训练时间为0

3,分类器的时间复杂度和训练几种的文档数成正比,也就是说,如果文档数为n,那么KNN的时间复杂度就是o(n)。


如果是数值的话,求距离当然是可行的,但是如果是图片呢?图片是没有数值这一说法的,所以要求距离,就只能用像素了。两个图片的像素相减就是距离。

求距离公式,求出相邻的距离然后相加。比如:




python代码:

可以使用第二种求距离的方法,平方差:


但是K近邻事实上并不适合图片分类,效果不好,因为比如有一张图片是天空和飞机,另外一张是火车和飞机,两张图片的背景如果是差不多的话,他们的距离会很小,这样就会造成误差。

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告