决策树分类数据挖掘

※写在前面的思考:
A数据是怎么分类的?
B如何选择分类的属性?
C什么时候停止分裂?

①决策树

1. 决策树分类方法

从数据中生成分类器的一个有效的方法就是生成一个决策树。是从一组无次序、无规则的事例中推理出决策树表示形式的分类规则。决策树分类方法采用自顶向下的递归形式(实质就是分而治之),在决策树的内部节点进行属性值的比较并根据不同的属性值判断从该结点向下的分支,在决策树的叶节点得到结论。所以从决策树的根到叶节点的一条路径就对应着一条合取规则,整棵决策树就对应着一组析取表达式的规则。决策树的非叶节点表示属性;节点向下的分支对应属性的属性值;叶节点表示类别。分类类别为未知的新实例时可以从这颗树的根节点开始,测试这个节点对应的属性,按照给定实例的属性的属性值沿着树枝向下移动,这个过程在新节点为根的子树上重复,直到进行到叶节点得到新实例的类别为止。

2. 基本概念与原理

决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
他属于监督学习。所谓监督学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。
(A)决策树采用自顶向下的贪婪算法,在每个节点选择分类效果最好的属性(分裂属性的数据类型分为离散型和连续性两种情况,对于离散型的数据,按照属性值进行分裂,每个属性值对应一个分裂节点;对于连续性数据,一般性的做法是对数据按照该属性进行排序,再将数据分成若干区间,如[0,10]、[10,20]、[20,30]…,一个区间对应一个节点,若数据的属性值落入某一区间则该数据就属于其对应的节点。)进行分类,重复此过程,直到这棵树能准确的分类训练样本,或者所有的属性都被使用过。
决策树构造完成后通常需要进行剪枝操作,以限制决策树的规模来提高预测精度。核心问题是在每个节点选取要测试的属性,以及对决策树进行剪枝处理。
(B)树的建立一般都是通过在内部节点选择一个最优的测试属性对训练及反复的进行划分,并建立下一级的节点。直到每个划分都只包含同一种类的样本为止,这时称为纯划分。

3. 一般性描述

1) 开始时是一个未经处理的数据训练集和一棵空树,然后对当前节点进行测试,并将其划分。
2) 如果当前节点的训练样本都为同一个类别,则创建一个带有该类标签的叶子节点并停止。
3) 否则的话,用最优测量计算每个集合的每个可能的划分。
4) 选择最优划分为当前节点的测试。

4. 决策树构建方法的递归停止条件(C)

(1) 当前节点的样本均为同一类别。
(2) 某一分支没有符合测试条件的样本,创建一个叶子节点并将其标记为默认类别。
(3) 候选属性集为空。

②属性分裂标准:信息增益法

Ⅰ信息熵
训练集中的数据每一个属性都包含了一定的信息,这些信息的作用是减少整个数据集的不确定性,一般称信息不确定性为信息熵。(信息量的度量就等于不确定性的多少,即:不确定性越大,熵也越大)
信息增益方法选取最高信息增益(熵减少的程度最大)的属性作为当前节点的分类属性,以便使划分获得的训练样本自己进行分类所需的信息量最少(因为不确定性减少了)。(减少的信息量就是通过一次划分之后通过某个属性所获得的信息量)
※信息量满足的条件
•信息量不是负数
•信息量之间可以相加
•信息量连续依赖于概率
•信息量大小与可能结果数量有关,假如每一个可能的结果出现的概率一样,那么对于可能结果数量多的那个事件,新信息有更大的潜力具有更大的信息量,因为初始状态下不确定性更大。
※信息熵的表达式
(1)

式中, 表示X在样本数据集中的样本比例。
信息论认为:一个消息所表达的信息取决于它的概率p,并且可以用 来表示其包含的信息。Log是以2为底的,因为在信息论中信息都是按二进制位编码的。
Ⅱ信息增益
假设在样本数据集 D 中,混有 c 种类别的数据。构建决策树时,根据给定的样本数据集选择某个特征值作为树的节点。在数据集中,可以计算出该数据中的信息熵:
•作用前的信息熵计算公式
(2) 决策树分类数据挖掘
式中: 表示第i个类别在样本数据集中的样本比例。
对应数据集 D,选择特征 A 作为决策树判断节点时,在特征 A 作用后的信息熵的为 Info(D),计算如下:
•作用后的信息熵计算公式(也就是期望的平均信息量)
(4) 决策树分类数据挖掘
式中,k代表样本D被分成k个部分。
信息增益表示数据集 D 在特征 A 的作用后,其信息熵减少的值。公式如下:
•信息熵差值计算公式
(5) 决策树分类数据挖掘
例如:如下图作为样本数据集,进行决策树分类。
有三个类别,分别是 鱼类、哺乳动物、爬行动物;四个属性,鱼类、产奶、有鳍、有毒。样本数目一共是13个,鱼类5个,哺乳动物,爬行动物各四个。
决策树分类数据挖掘决策树分类数据挖掘
Step1:计算总的平均信息量
Step2:分别计算按照按照不同属性划分的平均信息量
Step3:计算信息增益
Step4:根据求得的信息增益,其中最优分裂属性为数据集中所有属性中信息增益最大的属性。
决策树分类数据挖掘
选择信息增益最大的那个为最优属性。

③ 用SSAS对三国数据进行决策树分析

1)Microsoft SQl Server 2008 Analysis Services 的操作步骤

  1. 打开集成环境页面
    依次执行“开始”→“所有程序”→“Microsoft SQL Server 2008”→“SQL Server Business Intelligence Development Studio”命令,打开Analysis Service集成环境界面。

  2. 新建项目
    (1) 执行菜单栏的“文件”→“新建”→“项目”命令,打开如图所示的“新建项目”对话框。(2) 选中“Analysis Services”项目,分别在“名称”、“解决方案名称”文本框中,填写项目名称和解决方案名称;在“位置”下拉文本框中,单击右侧的“浏览”钮,选择解决方案的保存路径。。
    (3) 单击“确定”按钮,返回集成环境的起始界面,在右上角显示“解决方案资源管理器”字样。

  3. 创建数据源

  4. 创建数据源视图

  5. 创建适用于三国的挖掘结构

  6. 部署项目并处理挖掘模型

  7. 模型解释

决策树分类数据挖掘
由生成的决策树按照属性分成了三个级别,颜色的深浅代表了事例数目的多少。
决策树分类数据挖掘决策树分类数据挖掘和身份有相关性的属性有武力、智慧和政治。
决策树分类数据挖掘决策树分类数据挖掘