基于MATLAB的机器学习

基于袋装分类树的手写体识别

本例展示了如何使用袋装分类树的集合识别手写数字。手写数字图像首先用于训练单个分类树,然后是200个决策树的集合。使用混淆矩阵将每个分类树的分类性能相互比较。

负载训练和测试数据

有关获取数据集的信息,请参见参考资料部分。
净负荷(“usps_all”); reduce_dim=false;X=双(重塑(数据,25611000)”;ylabel=[1:90];y=重塑(repmat(ylabel,1100,1),11000,1);clearvars数据

可视化六个随机手写样本

图(1)对于ii=1:6子地块(2,3,ii)rand_num=randperm(11000,1);图像(重塑(X(rand_num,:),16,16))标题((y(rand_num)),“字体大小”,20)轴终止颜色表灰色

将数据随机划分为训练集和验证集

cv=cv(y,“坚持”Xtrain=X(cv.training,:);Ytrain=y(cv.training,1);Xtest=X(cv.test,:);Ytest=y(cv.test,1);

使用单个分类树进行训练和预测

mdl\u ctree=ClassificationTree.fit(Xtrain,Ytrain);ypred=predict(mdl\u ctree,Xtest);Confmat\u ctree=confusionmat(Ytest,ypred);

使用袋装决策树进行训练和预测

mdl=fitensemble(Xtrain、Ytrain、,“包”,200,“树”,“类型”,“分类”); ypred=预测(mdl,Xtest);Confmat_bag=混淆材料(Ytest,ypred);

比较混淆矩阵

图,热图(Confmat_ctree,0:9,0:9,1,“彩色地图”,“红色”,“ShowAllTicks”1.“UseLogColorMap”符合事实的“色条”,对);头衔(“混淆矩阵:单一分类树”)图,热图(Confmat_袋,0:9,0:9,1,“彩色地图”,“红色”,“ShowAllTicks”1.“UseLogColorMap”符合事实的“色条”,对);头衔(“混淆矩阵:袋装分类树的集合”)

袋装分类树在训练集上的性能比单个分类树好得多,因为混淆矩阵主要是对角的。

使用生成的可视化可定制的热图.

参考和许可

图像的MAT文件位于在这里.