使用袋装分类树的手写识别

此示例显示了如何使用袋装分类树的集合识别手写数字。手写数字的图像首先用于培训单个分类树,然后是200个决策树的集合。使用混淆矩阵将各自的分类性能与彼此相媲美。

加载培训和测试数据

有关获取数据集的信息,请参阅参考文章。
清除负载('USPS_ALL');recent_dim = false;X = DOUBLE(REPAPE(数据,256,11000)');ylabel = [1:9 0];y =重塑(Repmat(Ylabel,1100,1),11000,1);Clearvars.数据

可视化六个随机手写样本

图1)为了II = 1:6子图(2,3,II)RAND_NUM = RANDPERM(11000,1);图像(Rehape(x(rand_num,:),16,16))标题((y(rand_num)),'字体大小',20)轴离开结尾COLOROMAP.灰色的

将数据随机分区为培训和验证集

cv = cvpartition(y,'坚持',.5);xtrain = x(cv.training,:);Ytrain = Y(CV.Tring,1);xtest = x(cv.test,:);ytest = y(cv.test,1);

使用单个分类树火车和预测

mdl_ctree = classificationtree.fit(Xtrain,Ytrain);ypred = predict(mdl_ctree,xtest);confmat_ctree = confusionmat(ytest,Ypred);

用袋装决策树训练和预测

mdl = fitysemble(xtrain,ytrain,'包',200,'树''类型''分类');ypred =预测(mdl,xtest);confmat_bag = confusionmat(ytest,ypred);

比较混乱的矩阵

图,Heatmap(Confmat_Ctree,0:9,0:9,1,'colormap''红色的''showallticks',1,'USELOGCORORMAP',真的,'colorbar',真的);标题('混乱矩阵:单分类树')图,Heatmap(Confmat_bag,0:9,0:9,1,'colormap''红色的''showallticks',1,'USELOGCORORMAP',真的,'colorbar',真的);标题('混乱矩阵:袋装分类树的集合'

由于混淆矩阵更为显着对角线,因此袋装分类树比训练集上的单个分类树更好。

可视化使用可定制的热图

参考和许可证

图像的MAT文件位于这里