生物数据挖掘-决策树实验报告

  • 格式:docx
  • 大小:44.04 KB
  • 文档页数:11

下载文档原格式

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

实验四决策树

一、实验目的

1.了解典型决策树算法

2.熟悉决策树算法的思路与步骤

3.掌握运用Matlab对数据集做决策树分析的方法

二、实验内容

1.运用Matlab对数据集做决策树分析

三、实验步骤

1.写出对决策树算法的理解

决策树方法是数据挖掘的重要方法之一,它是利用树形结构的特性来对数据进行分类的一种方法。决策树学习从一组无规则、无次序的事例中推理出有用的分类规则,是一种实例为基础的归纳学习算法。决策树首先利用训练数据集合生成一个测试函数,根据不同的权值建立树的分支,即叶子结点,在每个叶子节点下又建立层次结点和分支,如此重利生成决策树,然后对决策树进行剪树处理,最后把决策树转换成规则。决策树的最大优点是直观,以树状图的形式表现预测结果,而且这个结果可以进行解释。决策树主要用于聚类和分类方面的应用。

决策树是一树状结构,它的每一个叶子节点对应着一个分类,非叶子节点对应着在某个属性上的划分,根据样本在该属性上的不同取值将其划分成若干个子集。构造决策树的核心问题是在每一步如何选择适当的属性对样本进行拆分。对一个分类问题,从已知类标记的训练样本中学习并构造出决策树是一个自上而下分而治之的过程。

2.启动Matlab,运用Matlab对数据集进行决策树分析,写出算法名称、数据集名称、关键代码,记录实验过程,实验结果,并分析实验结果

(1)算法名称: ID3算法

ID3算法是最经典的决策树分类算法。ID3算法基于信息熵来选择最佳的测试属性,它选择当前样本集中具有最大信息增益值的属性作为测试属性;样本集的划分则依据测试属性的取值进行,测试属性有多少个不同的取值就将样本集划分为多少个子样本集,同时决策树上相应于该样本集的节点长出新的叶子节点。ID3算法根据信息论的理论,采用划分后样本集的不确定性作为衡量划分好坏的标准,用信息增益值度量不确定性:信息增益值越大,不确定性越小。因此,ID3算法在每个非叶节点选择信息增益最大的属性作为测试属性,这样可以得到当前情况下最纯的划分,从而得到较小的决策树。

ID3算法的具体流程如下:

1)对当前样本集合,计算所有属性的信息增益;

2)选择信息增益最大的属性作为测试属性,把测试属性取值相同的样本划为同一个子样本集;

3)若子样本集的类别属性只含有单个属性,则分支为叶子节点,判断其属性值并标上相应的符号,然后返回调用处;否则对子样本集递归调用本算法。

(2)数据集名称:鸢尾花卉Iris数据集

选择了部分数据集来区分Iris Setosa(山鸢尾)及Iris Versicolour(杂色鸢尾)两个种类。

(3)实验代码:

%% 使用ID3决策树算法预测鸢尾花卉Iris种类

clear ;

%% 数据预处理

disp('正在进行数据预处理...');

[matrix,attributes_label,attributes] = id3_preprocess();

%% 构造ID3决策树,其中id3()为自定义函数

disp('数据预处理完成,正在进行构造树...');

tree = id3(matrix,attributes_label,attributes);

%% 打印并画决策树

[nodeids,nodevalues] = print_tree(tree);

tree_plot(nodeids,nodevalues);

disp('ID3算法构建决策树完成!');

%% 构造函数id3_preprocess

function [ matrix,attributes,activeAttributes ] = id3_preprocess( )

%% ID3算法数据预处理,把字符串转换为0,1编码

%% 读取数据

txt={ '序号' '花萼大小' '花瓣长度' '花瓣宽度' '类型' '' '小' '长' '长' 'versicolor'

'' '小' '长' '长' 'versicolor'

'' '小' '长' '长' 'versicolor'

'' '小' '短' '长' 'versicolor'

'' '小' '长' '长' 'versicolor'

'' '小' '短' '长' 'versicolor'

'' '小' '长' '短' 'versicolor'

'' '大' '长' '长' 'versicolor'

'' '大' '长' '短' 'versicolor'

'' '大' '长' '长' 'versicolor'

'' '大' '长' '长' 'versicolor'

'' '大' '长' '长' 'versicolor'

'' '大' '长' '长' 'versicolor'

'' '小' '长' '长' 'setosa'

'' '大' '短' '长' 'versicolor'

'' '大' '短' '长' 'versicolor'

'' '大' '短' '长' 'versicolor'

'' '大' '短' '长' 'versicolor'

'' '大' '短' '短' 'versicolor'

'' '小' '短' '短' 'setosa'

'' '小' '短' '长' 'setosa'

'' '小' '短' '长' 'setosa'

'' '小' '短' '长' 'setosa'

'' '小' '短' '短' 'setosa'

'' '小' '长' '短' 'setosa'