基于KNN实现的手写体数字识别下载

weixin_39821051 2020-06-21 01:00:20
基于KNN实现的手写体数字识别C++代码,输出结果有混淆矩阵、召回率、训练准确率、预测数据输出等。
相关下载链接://download.csdn.net/download/qq_41910473/10483097?utm_source=bbsseo
...全文
25 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
- KNN 全称是 K- Nearest Neighbors ,K-近邻。简单来说,K就是邻居个数,选出和测试样本最像的邻居(这里是欧式几何距离最短的K个邻居),那么样本的邻居是什么,样本就是什么(在K个邻居里,假如邻居的标签最多的是数字1,我们就认为样本的标签就很可能是数字1) - KNN 实现手写体识别的原理和代码都比较简单,但网上相关文章不多,本文只是把我自己的理解写下来作为学习matlab的实践,多有纰漏,请多指教 实现过程 1. 处理 MNIST 数据集 - 下载数据集,下载测试集、测试标签、训练样本、训练标签共四个文件 - 下载下来的数据集是 IDX 文件格式的,因此用 Python 转为 50×50 的PNG图片,代码在后 - 选取合适数量的测试集和训练集,训练集中每个数字的训练样本数要一致 2. matlab 实现步骤(以图像分辨率为 50×50例) - 对所有图片做二值化处理:有值取1,无值取0 - 将 0-9 数字的训练样本矩阵化,每一幅数字图像都是一维矩阵。以50×50分辨率图像为例,获得 1×2500 的一维矩阵;每个数字860张图片,我们就得到了 8600 × 2500 的矩阵,这作为训练矩阵 - 在训练矩阵加入标签列,用来判断某一行指的数字是多少 - 对每一幅待识别数字图像,同样将其转为 1 × 2500 的一维矩阵,称为测试矩阵 - 计算测试矩阵与训练矩阵每一维的欧氏几何距离,同样按列向量加到训练矩阵,并按距离升序按行排列训练矩阵 - 对前 K 个行向量求标签的众数,结果标签就是采用 KNN 算法得到的最有可能的识别结果

13,656

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧