实验三决策树算法实验实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三决策树算法实验

一、实验目的:熟悉和掌握决策树的分类原理、实质和过程;掌握典型的学习算法和实现技术。

二、实验原理: 决策树学习和分类.

三、实验条件:

四、实验内容:

1 根据现实生活中的原型自己创建一个简单的决策树。

2 要求用这个决策树能解决实际分类决策问题。

五、实验步骤:

1、验证性实验:

(1)算法伪代码

算法Decision_Tree(data,AttributeName) 输入由离散值属性描述的训练样本集data; 候选属性集合AttributeName。

输出一棵决策树。(1)创建节点N;

资料.

(2)If samples 都在同一类C中then (3)返回N作为叶节点,以类C标记;(4)If attribute_list为空then

(5)返回N作为叶节点,以samples 中最普遍的类标记;//多数表决(6)选择attribute_list 中具有最高信息增益的属性test_attribute; (7)以test_attribute 标记节点N;

(8)For each test_attribute 的已知值v //划分samples ;

(9)由节点N分出一个对应test_attribute=v的分支;

(10令Sv为samples中test_attribute=v 的样本集合;//一个划分块(11)If Sv为空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” Income:5000~2万----“1”;2万~4万----“2”;4万以上----“3” Married Children Car

Mortgage

资料.

Pep:以上五个条件,若为“是”标记为“1”,若为“否”标记为“2”。

Age sex region income married children car mortgage pep

1 2 1 1 2 1 1 2 2

1 2 1 1 2 2 2 2 1

2 1 4 1 2 1 2 2 1

2 1 1 1 1 2 2 2 2

1 2 1 1 1 2 2 2 2

1 2 1 1 2 1 2 1 1

2 1 2 1 1 2 1 1 2

2 1 1 1 2 1 1 2 1

2 1

3 1 2 2 1 2 1

2 1 2 2 2 1 2 2 2

2 2 1 2 2 2 2 1 1

资料.

2 1 2 2 1 1 2 1 1

2 2 1 2 1 2 2 1 2

1 1 1

2 1 2 2 2 1

3 2 1 2 1 1 1 2 2

1 1 1

2 1 1 1 2 1

1 1 3

2 2 2 1 2 1

3 1 2 2 1 2 2 2 1

3 2 3 3 1 1 1 2 1

3 2 2 3 1 2 1 1 2

3 1 3 3 1 1 2 2 1

3 2 1 3 1 2 1 2 2

3 2 1 3 1 1 1 1 1

3 1 1 3 1 2 1 1 2

资料.

3 1 3 3 1 2 2 2 2

3 2

4 3 1 2 2 1 1

3 1 3 3 2 2 1 1 2

(3)Matlab语句:

[Tree RulesMatrix]= DecisionTree(DataSet, AttributName);

六、实验结果:

资料.

资料

.

资料

.

实验程序:

function [Tree RulesMatrix]=DecisionTree(DataSet,AttributName)

%输入为训练集,为离散后的数字,如记录1:1 1 3 2 1;

%前面为属性列,最后一列为类标

if nargin<1

error('请输入数据集');

else

if isstr(DataSet)

[DataSet AttributValue]=readdata2(DataSet);

else

AttributValue=[];

end

end

资料.

if nargin<2

AttributName=[];

end

Attributs=[1:size(DataSet,2)-1];

Tree=CreatTree(DataSet,Attributs);

disp([char(13) 'The Decision Tree:']);

showTree(Tree,0,0,1,AttributValue,AttributName);

Rules=getRule(Tree);

RulesMatrix=zeros(size(Rules,1),size(DataSet,2));

for i=1:size(Rules,1)

rule=cell2struct(Rules(i,1),{'str'});

rule=str2num([rule.str([1:(find(rule.str=='C')-1)]) rule.str((find(rule.str=='C')+1):length(rule.str))]);

for j=1:(length(rule)-1)/2

资料.

相关文档
最新文档