基于最近邻的MNIST手写数字分类

实验目的

本实验将尝试使用KNN方法实现MNIST手写字分类

方法简介

KNN

KNN算法是k近邻算法,是一种既可以用来分类,也可以用来回归的算法。主要计算过程如下

1、计算训练样本与测试样本间的距离

2、对样本距离升序排列

3、选前k个值距离最小的样本

4、根据样本对数据进行投票,得到分类结果

数据集

本实验使用的数据集来自于keras内置数据集

实验环境

Python 3.8

Jupyter notebook 6.4.8

Jetbrains DataSpell

Intel core i9-9980HK

实验开始

加载运行必要的库

加载keras自带的mnist数据集

训练集共60000张照片,每张大小为28*28,测试集共10000张照片

数据预处理

分类函数主体

为画图做准备

运行函数

测试并画出混淆矩阵

由图可以看到准确率还是比较高的

测试不同k与不同top-n精度

使用sk-learn官方库测试精度

实验总结

1、本次实验通过自己手写knn算法完成mnist数字分类项目并获得了一定准确度

2、相比于sklearn官方库来说准确度还是较低且运行速度慢

3、通过本次实验加深了对knn与分类的了解,提高了使用理论解决实际问题的能力

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注