# Handwritten-Digits-Recognition-by-KNN
通过KNN算法对本地的手写数据集进行分类
## 各文件说明:
- KNN_HandByHand.ipynb为手动实现的KNN算法
- KNN_sklearn.ipynb为通过sklearn模块实现的KNN算法
- kNN_hand_writing.tgz为对应的手写数据集压缩包
- requirements.txt为环境配置文件
## 数据集说明
本项目所用的手写数字数据集分为训练集和测试集:
- 训练集包含了1934个手写数字的样本,样本的内容是32*32的二值图像,保存在txt文件中。
- 测试集包含了946个手写数字的样本,样本的内容是32*32的二值图像,保存在txt文件中。
下面是一个手写数字0的样本示例:
```
00000000000001111000000000000000
00000000000011111110000000000000
00000000001111111111000000000000
00000001111111111111100000000000
00000001111111011111100000000000
00000011111110000011110000000000
00000011111110000000111000000000
00000011111110000000111100000000
00000011111110000000011100000000
00000011111110000000011100000000
00000011111100000000011110000000
00000011111100000000001110000000
00000011111100000000001110000000
00000001111110000000000111000000
00000001111110000000000111000000
00000001111110000000000111000000
00000001111110000000000111000000
00000011111110000000001111000000
00000011110110000000001111000000
00000011110000000000011110000000
00000001111000000000001111000000
00000001111000000000011111000000
00000001111000000000111110000000
00000001111000000001111100000000
00000000111000000111111000000000
00000000111100011111110000000000
00000000111111111111110000000000
00000000011111111111110000000000
00000000011111111111100000000000
00000000001111111110000000000000
00000000000111110000000000000000
00000000000011000000000000000000
```
## 数据预处理的思路
因为本项目所用的KNN算法要求输入的数据是一个m行n列的矩阵,其中m行代表样本总数,每一行代表一个手写数字的数据;n列代表特征总数,这里面一个手写数字一共有32*32=1024个特征。
所以数据预处理的大致思路是:依次遍历所有手写数字的数据,读取出里面的内容,并转换成1行1024列的向量,最后把所有数据拼成一个m行1024列的矩阵。
## 其他实现流程已经在python文件里面做了详细的注释,这里不再说明
<div align="center">
<img src="https://github.com/LUORANCHENG/Handwritten-Digits-Recognition-by-KNN/blob/main/%E6%8A%A5%E5%91%8A/webwxgetmsgimg.gif" width="400" >
</div>
普通网友
- 粉丝: 1127
- 资源: 5294
最新资源
- 粒子群算法优化的BP神经网络回归预测Matlab代码.rar
- 使用加权最小二乘法和加权最小最大法进行优Matlab实现.rar
- 三相双转换器,带直流电机,AC_DC双转换器Simulink仿真.rar
- 使用PSO优化的RBF进行数据预测回归Matlab代码.rar
- 同步参考系中的单相STATCOM和有源电力滤波器控制simulink.rar
- 同步参考系下单相并网全桥正弦pwm逆变器闭环控制simulink仿真.rar
- 基于java+springboot+mysql+微信小程序的个人健康管理系统 源码+数据库+论文(高分毕业设计).zip
- 基于java+springboot+mysql+微信小程序的公考学习平台 源码+数据库+论文(高分毕业设计).zip
- 基于java+springboot+mysql+微信小程序的贵工程寝室快修系统 源码+数据库+论文(高分毕业设计).zip
- 基于java+springboot+mysql+微信小程序的机电公司管理信息系统 源码+数据库+论文(高分毕业设计).zip
- 手机平面度检测项目含bom和3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 机器人设计转换C++软件包
- 圣诞树c++语言编程代码
- 图表设计优化(五)-条形图优化
- 低压无感BLDC方波控制,全部源码,方便调试移植 1.通用性极高,图片中的电机,一套参数即可启动 2. ADC方案 3.电转速最高12w 4.电感法和普通三段式 5.按键启动和调速 6.开环,速度
- 基于java+springboot+mysql+微信小程序的居民疫情服务系统 源码+数据库+论文(高分毕业设计).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈