文档介绍:决策树的matlab实现(运用在手写数字的0,1识别)[1]单个决策树的实现。一、 载入实验数据%载入实验的原始数据images=loadMNISTImages(ftrain--ubytef);labels=loadMNISTLabels('train--ubyte');images_0=images(:Jabels==0);images_1=images(:Jabels==1);Images_te=loadMNISTImages(ltl0k--ubyte,);Labels_te=loadMNISTLabels(*t1Ok--ubyte');Images_te_O=Images_te(:9Labels_te==0);Images_te_1=Images_te(:,Labels_te=1);%对原站薮据进行处理X=Limages_Oimages_l]*;%将()和1的训练样本拼接成新的矩阵。注意此吋时是每一,行代衣一个样本。Y=fzeros(5923,l)ones(6724,l)l;%生成训练样本相应的类别标签,是一个列向量。每一个元素代表相应 样本所属于的类别。Images_te_O=Images_te_O,;%测试样木的数字0,每一行代表一个样木。Images_te_l=Images_te_r;%测试样本的数字1,、 构建决策树t=treefit(X,Y);%X是训练样本,一定注意是每一行代表一个样本数据。Y是训练样本%所对应的类别标签,仍旧是一个列向量。t就是根据训练样本构建的一个决策树。三、 用决策树对测试样本进行分类resultO=treeval(t,Images_te_O,);%对测试样木手写数字0览行识别。resultO为一个列向量,每一元索表示对应样木被识别为的类。%treeval函数的格式为treeval(t,X),K中,t为构建的决策树,X为测试样本。一定要注意X的每一行表示的是一个样本。result1=treeval(t,Images_te_1');%对测试样本数字1进行分类。四、 错误率分析errorO=find(result~=0);errorl=find(result~=l);%找出被识别错误的数字0和1的索引。rateO=size(errorO,1)/980;rate1=size(error1,1)/980;%分别计算错误率。实验结杲为ratel==%五、显示决策树x408<0,1352>=<<>=*x436<O・701961x367< 孜Ox409<<<O・452941x464<O・986275x222< 32352Q史82Z4百主x406<・<□39)31>>