试验三决策树算法试验试验kok电子竞技材料_第1页
试验三决策树算法试验试验kok电子竞技材料_第2页
试验三决策树算法试验试验kok电子竞技材料_第3页
试验三决策树算法试验试验kok电子竞技材料_第4页
试验三决策树算法试验试验kok电子竞技材料_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

kok电子竞技:文档简介

1、实用标准文档实验三决策树算法实验一、实验目的: 二、实验原理: 三、实验条件: 四、实验内容:熟悉和掌握决策树的分类原理、实质和过程;掌握典型的学习算法 决策树学习和分类.和实现技术。根据现实生活中的原型自己创建一个简单的决策树。要求用这个决策树能解决实际分类决策问题。五、实验步骤:1、验证性实验:(1)算法伪代码算法 Decision_Tree(data,AttributeName)输入由离散值属性描述的训练样本集data; 候选属 T集合 AttributeName 。输出一棵决策树。(1)创建节点N;(2) If samples都在同一类 C中then (3) 返回N作为叶节点,以类C

2、标记;(4) If attribute_list为空then(5)返回N作为叶节点,以以test_attribute 标记节点(8) For each test_attribute(9)由节点N分出一个对应(6)选择 attribute_listsamples中最普遍的类标记;/多数表决 N;的已知值v / 划分samples ;test_attribute=v 的分支;中具有最高信息增益的属性test_attribute;(10令Sv为samples中test_attribute=v 的样本集合;/ 一个划分块(12)加上一个叶节点,以 samples中最普遍的类标记;(13) Else 加

3、入一个由 Decision_Tree(Sv,attribute_list-test_attribute)(11) If Sv 为空返回节点值。then(2)实验数据预处理FEMAL- “1”; MALE- “2”Income: 50002 万-“1”; 2万4万-“2”;Age:30岁以下标记为“ 1”; 30岁以上50岁以下标记为“ 2”; 50岁以上标记为“ 3”。Sex:4万以上Region : INNER CITY“1; TOWN一 “2;RURAL一 “3;SUBURBAN一 “4”-3 Married Children Car文案大全实用标准文档MortgagePep:以上五个条件

4、,若为“是”标记为“1”,若为“否”标记为“ 2”。 TOC o 1-5 h z Age sex region income married children car mortgage pep 1 2 1 1 2 1 1 2 2 12112222121412122121111222212111222212112121121211211221112112121312212121222122222122221121221121122121221211121222132121112211121112111322212131221222132331112132231211231331122132131

5、2122321311111文案大全实用标准文档 TOC o 1-5 h z 311312112313312222324312211313322112(3) Matlab 语句:Tree RulesMatrix= DecisionTree(DataSet, AttributName)TK、实验结果:文案大全实用标准文档The Decision Tree:The Root):Attribut refisn21 Attribut Marriedjleaf 112.leaf 2|2leaf 2I3AttributchildrenI1Attribut AgeI 1 Attribut seatAtt ri

6、but car1Attribut AgI2leafleafleaf 1Aft ribut me wieAttribut marriedleaf 1leaf 23,leaf 2Att ribut I1leaf 2Attribut carleaf 1Attribut childrenleaf 1 leaf 2leaf 1文案大全实用标准文档Tree =Attribut: 3Child: 1x4 structRulesMatrix =11101Q001210100020101000301II1003Q1211Q030131100301012Q01010201020102Q100Q102Q200021

7、Q000002210Q00022200000230Q000Q30QQ0I00300012003001220030022200400000文案大全12212122112122212实用标准文档实验程序:function Tree RulesMatrix=DecisionTree(DataSet,AttributName)喻入为训练集,为离散后的数字,如记录 1:1 1 3 2 1 ;前面为属性列,最后一列为类标if nargin1error( 请输入数据集);elseif isstr(DataSet)DataSet AttributValue=readdata2(DataSet);elseAtt

8、ributValue=;endendif narginmostlabelnum)mostlabelnum=length(ValRecords(i).matrix);mostlabel=i;end文案大全实用标准文档endTree.Attribut=mostlabel;Tree.Child=;return;endfor i=1:length(Attributs)Sa(i) ValRecord=ComputEntropy(DataSet,i);Gains(i)=S-Sa(i);AtrributMatric(i).val=ValRecord;endmaxval maxindex=max(Gains)

9、;Tree.Attribut=Attributs(maxindex);Attributs2=Attributs(1:maxindex-1) Attributs(maxindex+1:length(Attributs);for j=1:length(AtrributMatric(maxindex).val)DataSet2=DataSet(AtrributMatric(maxindex).val(j).matrix,1:maxindex-1) DataSet(AtrributMatric(maxindex).val(j).matrix,maxindex+1:size(DataSet,2);if(

10、size(DataSet2,1)=0)mostlabelnum=0;mostlabel=0;for i=1:length(ValRecords)if(length(ValRecords(i).matrix)mostlabelnum) mostlabelnum=length(ValRecords(i).matrix); mostlabel=i;endendTree.Child(j).root.Attribut=mostlabel;文案大全实用标准文档Tree.Child(j).root.Child=;elseTree.Child(j).root=CreatTree(DataSet2,Attrib

11、uts2);endendendfunction Entropy RecordVal=ComputEntropy(DataSet,attribut) %计算信息嫡if(attribut=0)clnum=0;for i=1:size(DataSet,1)if(DataSet(i,size(DataSet,2)clnum) %防止下标越界classnum(DataSet(i,size(DataSet,2)=0;clnum=DataSet(i,size(DataSet,2);RecordVal(DataSet(i,size(DataSet,2).matrix=; endclassnum(DataSet

12、(i,size(DataSet,2)=classnum(DataSet(i,size(DataSet,2)+1;RecordVal(DataSet(i,size(DataSet,2).matrix=RecordVal(DataSet(i,size(DataSet,2).matrix i; endEntropy=0;for j=1:length(classnum)P=classnum(j)/size(DataSet,1);if(P=0)Entropy=Entropy+(-P)*10g2(P);endend文案大全实用标准文档elsevalnum=0;for i=1:size(DataSet,1)

13、if(DataSet(i,attribut)valnum) %防止参数下标越界clnum(DataSet(i,attribut)=0;valnum=DataSet(i,attribut);Valueexamnum(DataSet(i,attribut)=0;RecordVal(DataSet(i,attribut),matrix=; %将编号保留下来,以方便后面按值分割数据集end if(DataSet(i,size(DataSet,2)clnum(DataSet(i,attribut) %防止下标越界Value(DataSet(i,attribut).classnum(DataSet(i,s

14、ize(DataSet,2)=0;clnum(DataSet(i,attribut)=DataSet(i,size(DataSet,2); endValue(DataSet(i,attribut).classnum(DataSet(i,size(DataSet,2)=Value(DataSet(i,attribut).classnum(DataSet(i,size(DataSet,2)+1;Valueexamnum(DataSet(i,attribut)= Valueexamnum(DataSet(i,attribut)+1;RecordVal(DataSet(i,attribut).matr

15、ix=RecordVal(DataSet(i,attribut).matrix i; end Entropy=0; for j=1:valnumEntropys=0;for k=1:length(Value(j).classnum)P=Value(j).classnum(k)/Valueexamnum(j);if(P=0)Entropys=Entropys+(-P)*10g2(P);end文案大全实用标准文档endEntropy=Entropy+(Valueexamnum(j)/size(DataSet,1)*Entropys; endendendfunction showTree(Tree,

16、level,value,branch,AttributValue,AttributName) blank=;for i=1:level-1if(branch(i)=1) TOC o 1-5 h z blank=blank 口;elseblank=blank ;endendblank=blank ;if(level=0)blank= (The Root):;elseif isempty(AttributValue)blank=blank | int2str(value) ;elseblank=blank | value ;endendif(length(Tree.Child)=0) %非叶子节点

17、if isempty(AttributName)文案大全实用标准文档disp(blank Attribut int2str(Tree.Attribut); else disp(blank Attribut AttributNameTree.Attribut); end if isempty(AttributValue) for j=1:length(Tree.Child)-1showTree(Tree.Child(j).root,level+1,j,branch 1,AttributValue,AttributName); end showTree(Tree.Child(length(Tree

18、.Child).root,level+1,length(Tree.Child),branch(1:length(branch)-1)01,AttributValue,AttributName); else for j=1:length(Tree.Child)-1showTree(Tree.Child(j).root,level+1,AttributValueTree.Attributj,branch 1,AttributValue,AttributName); endshowTree(Tree.Child(length(Tree.Child).root,level+1,AttributValu

19、eTree.Attributlength(Tree.Child),branch(1:length(branch)-1)01,AttributValue,AttributName); end else if isempty(AttributValue) disp(blank leaf int2str(Tree.Attribut); elsedisp(blank leaf AttributValuelength(AttributValue)Tree.Attribut); end end end文案大全实用标准文档function Rules=getRule(Tree)if(length(Tree.

20、Child)=0)Rules=;for i=1:length(Tree.Child)content=getRule(Tree.Child(i).root);%disp(content);%disp(num2str(Tree.Attribut) , num2str(i) ,);for j=1:size(content,1)rule=cell2struct(content(j,1),str);content(j,1)=num2str(Tree.Attribut) , num2str(i) , rule.str; endRules=Rules;content;endelseRules=C num2str(Tree.Attribut);endend文案大全

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论