1 / 14
文档名称:

实验三-决策树算法实验实验报告.doc

格式:doc   大小:89KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验三-决策树算法实验实验报告.doc

上传人:一花一叶 2019/10/31 文件大小:89 KB

下载得到文件列表

实验三-决策树算法实验实验报告.doc

文档介绍

文档介绍:---------------------------------作者:_____________-----------------------------日期::_____________实验三-决策树算法实验实验报告实验三决策树算法实验一、实验目的:熟悉和掌握决策树的分类原理、实质和过程;掌握典型的学****算法和实现技术。二、实验原理:、实验条件:四、实验内容:1根据现实生活中的原型自己创建一个简单的决策树。2要求用这个决策树能解决实际分类决策问题。五、实验步骤:1、验证性实验:(1)算法伪代码算法Decision_Tree(data,AttributeName)输入由离散值属性描述的训练样本集data;候选属性集合AttributeName。输出一棵决策树。(1)创建节点N;(2)Ifsamples都在同一类C中then(3)返回N作为叶节点,以类C标记;(4)Ifattribute_list为空then(5)返回N作为叶节点,以samples中最普遍的类标记;//多数表决(6)选择attribute_list中具有最高信息增益的属性test_attribute;(7)以test_attribute标记节点N;(8)Foreachtest_attribute的已知值v//划分samples;(9)由节点N分出一个对应test_attribute=v的分支;(10令Sv为samples中test_attribute=v的样本集合;//一个划分块(11)IfSv为空then(12)加上一个叶节点,以samples中最普遍的类标记;(13)Else加入一个由Decision_Tree(Sv,attribute_list-test_attribute)返回节点值。(2)实验数据预处理 Age:30岁以下标记为“1”;30岁以上50岁以下标记为“2”;50岁以上标记为“3”。 Sex:FEMAL----“1”;MALE----“2” Region:INNER CITY----“1”;TOWN----“2”; RURAL----“3”; SUBURBAN----“4” e:5000~2万----“1”;2万~4万----“2”;4万以上----“3” Married Children Car Mortgage Pep:以上五个条件,若为“是”标记为“1”,若为“否”标记为“2”。emarriedchildrencarmortgagepep1211211221211222212141212212111122221211122221211212112121121122111211212131221212122212222212222112122112112212122121112122213212111221112111211132221213122122213233111213223121123133112213213121223213111113113121123133122223243122**********(3)Matlab语句:[TreeRulesMatrix]=DecisionTree(DataSet,AttributName);六、实验结果:实验程序:function[TreeRulesMatrix]=DecisionTree(DataSet,AttributName)%输入为训练集,为离散后的数字,如记录1:11321;%前面为属性列,最后一列为类标ifnargin<1error('请输入数据集');elseifisstr(DataSet)[DataSetAttributValue]=readdata2(DataSet);elseAttributValue=[];endendifnargin<2AttributName=[];endAttributs=[1:size(DataSet,2)-1];Tree=CreatTree(DataSet,Attributs);disp([char(13)'TheDecisionTree:']);showTree(Tree,0,0,1,AttributValue,AttributName);Rules=getRule(Tree);RulesMatrix=zeros(size(Rules,1),size(DataSet,2));fori=1:size(Rules,1)rule=cell2struct(Rules(i,1),{'str'});rule=str2num([([1:(find(=='C')-1)])((find(=='C')+1):length())]);forj=1:(lengt