AI实战:识别手写数字——octave实现(1)

本文是Stanford机器学习课程后的实践,通过Octave解析MNIST手写数字数据集,介绍如何加载和预处理数据,为后续的机器学习算法建立基础。通过下载已转换的mat文件,获取训练和测试数据及其标签,为展示和分析做好准备。
摘要由CSDN通过智能技术生成

前阵子刚刚学完了Standford University 的Machine Learning 课程,做一个实际的例子练练手。主要不是为了达成智能识别的目标,是为了对整个流程有一个更直观的了解,对错误分析,各项指标的监控输出能充分的理解和正确的运用。

准备工作:

首先确定数据集,MNIST是一个非常棒的手写数字训练集库。官方分为四个文件:

train-images-idx3-ubyte.gz:  training set images (9912422 bytes) 
train-labels-idx1-ubyte.gz:  training set labels (28881 bytes) 
t10k-images-idx3-ubyte.gz:   test set images (1648877 bytes) 
t10k-labels-idx1-ubyte.gz:   test set labels (4542 bytes)

分别是训练集,训练集对应的标签,测试集,测试集对应的标签。

这些文件中的数据,训练集和测试集实际存储的是图片信息,但是被转换成了多个28*28的像素集,每个数字表示一个像素的灰度。关于该库的说明可以直接访问其官网(http://yann.lecun.com/exdb/mnist/),网上随意也是找到很多相关的资料,这里不多解释了。因为我们并不会直接使用这个库,而是会先把它转换成octave能直接读取的matlab存储的格式。

在网上找到了此文(http://daniel-e.github.io/2017-10-20-loading-mnist-handwritten-digits-with-octave-or-matlab/)真是棒啊,直接解决了我的第一个问题。

简要的翻译一下:

MNIST手字数字数据库是一个用来测试机器学习算法的常用数据集。它包含60000个带标签的训练样本和10000个测试样本。请点击这里下载。在Github上,楼主发布了一个已经转换成可以被Octave或者matlab直接读取的mat格式的文件:mnist.mat,大家可以直接下载。或者你也可以用mnist.py去处理源文件然后转换,反正git上都有提供。

从Git上直接下载处理好的Octave可读文件

下载文件:

wget https://github.com/daniel-e/mnist_octave/raw/master/mnist.mat

在Octave中的代码:

d = load('mnist.mat');

现在呢,d这个结构体里就包含了整个训练集和测试集和对应的标签了:

  • d.trainX is a (60000,784) matrix which contains the pixel data for training 训练集
  • d.trainY is a (1,60000) matrix which contains the labels for the training data 训练集标签
  • d.testX is a (10000,784) matrix which contains the pixel data for testing 测试集
  • d.testY is a (1,10000) matrix which contains the labels for the test set 测试集标签

来试一下显示一个样本,在Octave中输入如下的代码:

X = d.trainX;
i = reshape(X(3,:), 28, 28)';
image(i);

==========================译==文==结==束====================================================

到这里,数据的准备就完成了。后面就是要考虑一下用哪种机器学习算法来实现,然后设计什么样的过程来分析学习算法,改进学习算法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值