本文章总结了KNN算法字手写数字识别的应用,比较系统的对传统KNN和各种改进的KNN算法进行实现,由于完整的代码量较大(部分代码参考了机器学习实战),不适合全部贴出,但是博主乐于分享,有需要的话可以直接联系我,我会很乐意共享的,一希望大家能帮我校准文章的错误啦~~~
首先用1500张手写数据进行训练,然后利用500张数字做测试,数据集大家可以搜手写数字识别数据集,网上很多,我过几天也会贴到我的资源库里面,欢迎打家下载,可以用notepad++查看每个数字。
KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。算法步骤如下:
输入:训练数据集T={(x1,y1),(x2,y2),…,(xn,yn)}
输出:实例x所属的类y
(1)根据给定距离度量,在训练集T中找出与x最近邻的k个点,涵盖这k个点的x的领域记作Nk(x)
(2)在Nk(x)中根据分类决策规则(多数表决)决定x的类别y