2018-08-16 KNN(k近邻)算法学习

2018-08-16  本文已影响72人  阿康666666
K近邻算法(K-nearest Neighbor,简称KNN)

KNN是种最简单的机器学习算法了,结合书本定义和自我理解,K近邻算法的原理是:
对于新的测试数据集,使用某种距离度量找出在训练集中最为接近的K个训练样本。

实际上K近邻学习是懒惰学习(lazy learning)的一种,在训练阶段仅保存样本数据,训练开销时间为0,有了测试样本数据后再进行学习处理。与之对应的是在训练阶段就要处理数据的方法,称为急切学习(eager learning)

通过一个简单对比示例来说明吧,show me the code~.

#近邻选择K=1
mglearn.plots.plot_knn_classification(n_neighbors=1)
plt.title("K=1")
image.png
#近邻选择K=3
mglearn.plots.plot_knn_classification(n_neighbors=3)
plt.title("K=3")
image.png
mglearn.plots.plot_knn_classification(n_neighbors=4)
plt.title("K=4")
image.png

通过对比以上K取值(1,3,4)时,对应测试数据(三个五角星)的颜色取值即可发现KNN的算法效果。
即:对于分类任务,使用投票法选择测试数据的K个近邻数据中出现频数最大的值作为预测值。


写此文的时候发现,开始掉头发了,果然这玩意很烧脑。o(╥﹏╥)o

上一篇 下一篇

猜你喜欢

热点阅读