资源描述:
《模式识别期末论文9》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、深圳大学研究生课程:模式识别理论与方法课程作业实验报告实验名称:ClassificationandRegressionTree实验编号:Proj08-01姓名:萧嘉慰学号:2110130216规定提交日期:2012年7月14日实际提交日期:2012年7月13日摘要:本实验编程实现了分类回归树算法,采用菲剪枝完全树分类和进行进行非二叉分支。实验内容:写一个生成二叉分类树的通用程序,并使用课本359页的表中的数据来训练该树,使用爛不纯度进行分支。(a)采用非剪枝完全树分类下列模式:{A,E,I,L,N},{D,E,J,K,N},{B,F,J,K,M},{C
2、,D,J,L,N}o(b)对叶节点进行剪枝,使剪枝后树的不纯度的增加尽可能小。(c)修改程序,使之可以进行非二叉分支,以生成多叉树。其中每个节点的分叉数可根据该节点在训练时的情况进行口动确定。用增益比不纯度重新训练生成一个新树,并用该树重新对(a)进行分类。技术论述:分类回归树算法其采用基于最小距离的基尼指数估计函数,这是因为基尼指数可以单独考虑子数据集中类属性的分布情况,用來决定由该子数据集生成的决策树的拓展形状。CART创建简单二叉树结构对新事例进行分类,这样可以有效地处理缺失数据,尤其对于分类与预测时更好。并且CART方法屮冇贝叶斯分类的特征,使
3、用者可以提供主观的分类先验概率作为选择分类的权重,则CART在获得最终选择树前使用交叉检验来评估候选树的误分类率,这对分析复杂样本数据非常有用。CART处理离散变量与连续变量同样容易,这是由于它使用了或形状的几乎不依靠无关变量的分支。而且,被CART考虑到的分支在任何单调转换下是不变的,如对一个或更多的特征取对数、平方根等都是不变的。实验结果与讨论:Tree二Label1Value66Num20Right[lxlstruct]Left[lxlstruct](a)Wl二W2二3W3二1W4=3(a)Wl二1W2=3W3二1W4二3(b)做不出来,程序出不
4、了结果。附录:实验程序(1)子函数functionTree=CARTMakeBinaryTree(TrainingSamples,ClassificationProperties,Region)%基于爛不纯度递归地实现非剪枝完全二叉树%输入参数:目标数据(训练样本)TrainingSamplesn*d、(特征向量依次放置)%对应的类别属性Classificationpropertiesn*l>(取值范围1--C)%特征向量维度顺序下上限Regiond*2(特征值取离散的口然数区间,左小右大)%输出参数:一个基本树形节点Tree%基本树形节点结构%-:标
5、签(记录当前节点判定所用的维度,表叶了时为空);%二阈值(记录当前所用维度判定Z阈值,叶子节点时表类别);%三:左枝(小于等于阈值的待分目标归于此,表叶子时为空)%四:右枝(大于阈值的归于此,表叶子吋为空)[n,Dim]=sizc(TrainingSamplcs);[t,m]=size(Region);ifDim=tm=2dispC参数错误,请检查');return;end%检查类别屈性是否单纯,如果只冇一个屈性,那么则是叶子,否则需要继续分if(length(unique(Classificationproperties))==1)Tree.Righ
6、tTree.LeftTree.LabelTree.Value二[];二[];=[];=ClassificationProperties(1);Tree.Num=n;return;end%如果两个样本为两类直接设置为左右叶子差异最大维度做为查询项目%单独处理此类情况,做为一种优化方法应对后面提到的缺陷iflength(Classificationproperties)二二2[m,p]=max(abs(TrainingSamples(1,:)~TrainingSamples(2,:)));Tree.Label二p;Tree.Value=((Training
7、Samples(1,p)+TrainingSamples(2,p))/2);%floorTree.Num二n;BranchRight.Right=[];BranchRight.Left=[];BranchRight.Label二[];BranchRight.Num=1;BranchLcft.Num二1;BranchLeft.Right=[];BranchLeft.Left=[];BranchLeft.Label二[];ifTrainingSamples(1,p)BranchRight.ValueBranchLeft.ValueelseBranchRig
8、ht.ValueBranchLeft.Valueend>Tree.Value=Classifi