文件名称:matlab集成c代码-handwritten_recognition:基于matlab采用K-近邻算法实现MNIST手写体数据集的识别
文件大小:18.35MB
文件格式:ZIP
更新时间:2024-06-10 18:32:27
系统开源
matlab集成c代码 基于matlab采用KNN算法手写体数字识别实现 一、前言 KNN 全称是 K- Nearest Neighbors ,K-近邻。简单来说,K就是邻居个数,选出和测试样本最像的邻居(这里是欧式几何距离最短的K个邻居),那么样本的邻居是什么,样本就是什么(在K个邻居里,假如邻居的标签最多的是数字1,我们就认为样本的标签就很可能是数字1) KNN 实现手写体识别的原理和代码都比较简单,但网上相关文章不多,本文只是把我自己的理解写下来作为学习matlab的实践,多有纰漏,请多指教 二、实现过程 处理 MNIST 数据集 下载 数据集,下载测试集、测试标签、训练样本、训练标签共四个文件 下载下来的数据集是 IDX 文件格式的,因此用 Python 转为 50×50 的PNG图片,代码在后 选取合适数量的测试集和训练集,训练集中每个数字的训练样本数要一致 matlab 实现步骤(以图像分辨率为 50×50例) 对所有图片做二值化处理:有值取1,无值取0 将 0-9 数字的训练样本矩阵化,每一幅数字图像都是一维矩阵。以50×50分辨率图像为例,获得 1×2500 的一维矩阵