KNN实现手写数字识别Python

本文探讨了KNN算法在手写数字识别中的应用,包括传统KNN、使用马氏距离的KNN以及加权KNN(WKNN)的实现和效果。实验结果显示,WKNN算法在准确性上有显著提升,而使用kd-Tree在特定数据集上并未带来运行效率的提升,强调了选择合适算法和方法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章总结了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


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值