Skip to content

niuwz/MLPR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

问题背景

本文为专业课程《机器学习与模式识别》的结课作业,基于MNIST手写数字数据集完成,该数据集包含60,000个用于训练的示例和10,000个用于测试的示例。这些数字已经过尺寸标准化并位于图像中心,图像是固定大小(28x28像素),其值为0到1。数据集下载链接如下

本文中所做的工作主要包括以下几个部分,具体结果详见结果分析

  • 利用numpy编写了KNN、SVM以及MLP分类算法,并从数据集中选择小规模数据用于测试,根据准确率、程序运行时间等方面选择了KNN和MLP进行下一个部分的验证与测试。
  • 采用五折交叉验证法对KNN算法进行了训练与验证,并对比分析了参数K以及数据量对算法准确率的影响。
  • 同样采用五折交叉验证法对MLP算法进行了训练与验证,通过改变神经网络的隐藏层数量、神经元个数等参数分析并选择了最佳的参数。
  • 对图像提取HOG特征并进行训练与分类,并与仅使用像素特征的分类结果对比,有效提高了分类准确率。

使用说明

环境依赖

代码中所有分类算法均基于numpuy实现,数据处理部分借助scipy和sklearn实现,有关版本如下:

  • Python: 3.9.1
  • Numpy: 1.20.1
  • scipy: 1.6.0
  • sklearn: 0.24.2

内容简介

Dateset.py -> 主要包含了数据集类dataset
grt_hog.py -> 提取原图像的HOG特征并保存为csv文件
PCA降维.py -> 数据集处理部分, 根据原始数据生成一个csv文件,作为后面训练的数据。
classification.py -> 分类过程中所用到的各种算法,如KNN、SVM和MLP等,均基于numpy实现。
初步测试-*.py -> 小规模数据测试
五折交叉验证-*.py -> 对全部数据进行五折交叉验证

About

MNIST手写数字数据集分类

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages