Matlab 手写字体识别
忙过这段时间后,对于上次读取的Matlab内部数据实现的识别,我回味了一番,觉得那个实在太小。所以打算把数据换成[MNIST数据集][1]。
基础思想还是相同的,使用TreeBagger(随机森林)的算法来训练样本,从而实现学习并且识别。这一次不会和上次那么草率了….同时分享一些关于TreeBagger的理解。
思想
和我上一个识别花是一样的。使用算法训练训练样本,得到一个模型model,从而使用predict函数根据模型对测试样本进行识别。从而达到手写字体识别的效果。这里我使用了Google实验室的Corinna Cortes和纽约大学柯朗研究所的Yann LeCun的建有一个手写数字数据库,训练库有60,000张手写数字图像,测试库有10,000张。
这是->Mnist数据集官网<-上面有说明。
但是因为这个网站上的四个文件资源似乎不多,导致下载速度很慢,所以我把他们放在我的云盘里,给大家下载。云盘链接 密码:7awp
因为里面的内容全部是用二进制存的,所以我在的文件里也顺便把解压的.m的文件放进去了,也省得大家到处找。
代码实现
因为要导入的图片太多,一开始我使用imread时我发现,imread似乎是按照一个特定的文件名顺序读取文件的,所以对于我这些有顺序的图片,他不能按照顺序读。所以我自己想了个方法来读取60000张训练样本。
for i=1:60000
str = strcat('C:\Users\StevenT\Desktop\mnist数据集\train-images-idx3-ubyte\TrainImage_',num2str(i));
name = strc