实验二 分类挖掘算法(ID3)

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

实验二分类挖掘算法(ID3)

一、实验目的

1、理解分类

2、掌握分类挖掘算法ID3

3、为改进ID3打下基础

二、实验内容

1、选定一个数据集(可以参考教学中使用的数据集)

2、选择合适的实现环境和工具实现算法ID3

3、给出分类规则

三、实验原理

决策树是一种最常见的分类算法,它包含有很多不同的变种,ID3算法是其中最简单的一种。ID3算法中最主要的部分就是信息熵和信息增益的计算。

信息熵的计算公式如下。

信息增益的计算公式为:

其中P(ui)为类别ui在样本S中出现的概率,A是样本的属性,Value(A)是属性A所有取值的集合,v是A得其中一个属性值。Sv是S中A的值为v的样例集合。

ID3算法的流程就是在属性集A中寻找信息增益值最大的属性,作为根节点,按照根节点属性的取值将样本集合分成几个子集,将此属性从属性集中去掉,在每个子集中选择信息增益值最大的属性,作为当前子集的根节点,上层集合的根节点的子节点,如此循环递归,如果得到的子集中所有的样本属于一个类别,则递归停止。

四、实验要求

1、数据集具有一定的代表性,可以使用数据库技术管理

2、实现界面友好

3、提交实验报告:实验题目、目的、数据集描述、实验环境、过程、结果和分析等。

五、实验步骤

1、所采用的数据集,如图1所示:

2、具体步骤

构造决策树的方法是采用自上而下的递归构造,其思路是:

1)以代表训练样本的单个结点开始建树(步骤1)。

2)如果样本都在同一类,则该结点成为树叶,并用该类标记(步骤2和3)。

3)否则,算法使用称为信息增益的机遇熵的度量为启发信息,选择能最好地将样本分类的属性(步骤6)。该属性成为该结点的“测试”或“判定”属性(步骤7)。值得注意的是,在这类算法中,所有的属性都是分类的,即取离散值的。连续值的属性必须离散化。

4)对测试属性的每个已知的值,创建一个分支,并据此划分样本(步骤8~10)。

5)算法使用同样的过程,递归地形成每个划分上的样本决策树。一旦一个属性出现在一个结点上,就不必考虑该结点的任何后代(步骤13)。

6)递归划分步骤,当下列条件之一成立时停止:

①给定结点的所有样本属于同一类(步骤2和3)。

②没有剩余属性可以用来进一步划分样本(步骤4)。在此情况下,采用多数表决(步骤5)。这涉及将给定的结点转换成树叶,并用samples中的多数所在类别标记它。换一种方式,可以存放结点样本的类分布。

③分支test_attribute=ai 没有样本。在这种情况下,以samples中的多数类创建一个树叶(步骤12)。

Decision_Tree(samples,attribute_list)

输入由离散值属性描述的训练样本集samples;

候选属性集合attribute_list。

输出一棵决策树。

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)返回节点值

六、实验结果

1、具体输出结果如图1、2所示:

图1

图2 2、根据输出结果画出决策树,如图3所示:

图3

相关文档
最新文档