决策树

原创 2018年04月16日 13:48:49

       决策树是一种基本的分类和回归方法,作为分类的决策树对于训练数据会产生一颗树。决策树同数据结构中的树形结构一致,都是由边和节点构成的,节点之间是由边相连的,每个节点是由叶子和非叶子节点构成的,多个节点连到一起就构成了树。决策树是以训练数据为基础,对训练数据进行归纳和分析,得到了一颗以特征词为节点的多叉树。在树中,采用了自顶向下的构建方法构建决策树,依据属性值的不同选择不同的分支路径,并对每个属性都做相同的操作,直到属性不可再分为止,叶子节点作为分类的结果。

       决策树将文本分类任务转化为一颗树,通过对节点的选择完成分类任务。构造决策树时,最主要任务是如何生成一颗高精度、节点少的决策树,使减少树计算的同时又能有效的表示整个文档的分布。节点的选择通常计算所有的属性,将属性的最大值作为当前选择的节点。常用的属性计算方法有ID3、C4.5、CART等方法。ID3算法采用了信息增益的方法作为特征选择规则。C4.5算法采用了信息增益比的方法作为特征选择规则,公式如下式所示。CART算法采用了基尼系数的方法作为特征选择规则,计算公式如下式所示。

信息增益详见:https://blog.csdn.net/shushi6969/article/details/79938560

信息增益比是信息增益与训练集的经验熵之比,公式如下,其中A为特征词,D为训练集,g(D,A)为信息增益,H(D)为训练集的经验熵。


概率基尼系数公式


其中p_k表示样本点k属于第k类的概率为p_k。

对于在特征选择方法中,基尼指数公式为


C_k是D中属于第k类的样本子集,k是类别的个数,D为样本集合D。而对于特征词A的条件下,集合D的基尼指数为


       式中的D2表示特征词A将数据集合分成了D1和D2(一个中是特征词A的一个集合,一个是不包含特征词A的集合),基尼指数表示集合D的不确定性,基尼指数越大,表示样本集合的不确定性越大,和熵相似。

例子

下面以信贷样本数据为例子进行各个方法的计算,该目的是判断信贷的类型。


1.信息增益

(1)计算数据集D类型的经验熵。


(2)分别计算每个特征的对数据集D的信息增益





通过比较四个特征的信息增益值,得到了g(D,A3)的信息增益值最大,则将A3作为最优特征。

(3)由于上述方法已经将A3作为结点的特征,所以,上述表分成了2个子表,得到了表1和表2



通过观察表1可知,信贷的类别都是“是”,故直接将该表的结点设置为“是”;而在表2中信贷类型的标签有是和否,故需要对表2进一步的计算。

(4)表2进一步计算





通过上述计算可知,g(D2,A2)的值比较大,故将A2作为本层的最优特征。

(5)对D2进行字表划分,得到表3和表4



观察上述表的类型都是一样的,故决策树分类完成。得到了下图的决策树。


2.信息增益比

就是把上式的信息增益转换为了信息增益比公式


得到的结果也是A3特征作为最优特征

针对表2计算,得到如下结果


得到的结果和信息增益的结果一样。信息增益方法和信息增益比方法的联系在于,信息增益比的分母都是一样的,而分子和信息增益的值,故信息增益和信息增益比得到的结果是一样的。

3.基尼指数

(1)求特征的基尼指数





       从全局中考虑,Gini(D,A3)得到的gini指数最少,故将该A3作为整体特征的结点(由于A3中只有“有自己的房子”和“没有自己的房子”,故该树只有2个分支),和上述2中方法一样需要重新生成新的表和重新计算A1,A2,A4的基尼指数,最终得到总体的树。


参考文献

统计学习方法

数据挖掘概念与技术

决策树原理及Python代码实现

决策树其实就是按节点分类数据集的一种方法。在本文中,我将讨论数学上如何使用信息论划分数据集,并编写代码构建决策树。 创建决策树进行分类的流程如下: (1)    创建数据集 (2)    计算数据集的...
  • Flying_sfeng
  • Flying_sfeng
  • 2017年03月16日 15:31
  • 9318

手把手生成决策树(dicision tree)

手把手生成决策树(dicision tree)标签: Python 机器学习1.什么是决策树决策树是一种基本的分类和回归方法,本文主要讲解用于分类的决策树。决策树就是根据相关的条件进行分类的一种树形结...
  • xuelabizp
  • xuelabizp
  • 2016年03月25日 14:25
  • 5147

分类算法:决策树算法

一、决策树的定义 决策树是一种对实例进行分类的树形结构,也是一种基本的分类与回归方法。决策树由结点(node)和有向边(directed edge)组成。结点又分为两种类型:内部结点(internal...
  • u012050154
  • u012050154
  • 2016年05月31日 16:10
  • 734

决策树算法(六)——构建决策树

递归构建决策树之前我们已经学习了怎么根据信息论的方法,把一个数据集从杂乱无章的数据集中划分出来,我们使用信息论来构建决策树一级一级分类的方法就是一个递归的过程。它的工作原理如下: 得到原始数...
  • Grace_0642
  • Grace_0642
  • 2016年07月29日 14:12
  • 1706

决策树--从原理到实现

================================================================================ 算算有相当一段时间没写blog了,主要...
  • Dark_Scope
  • Dark_Scope
  • 2013年10月27日 13:07
  • 59291

自动训练(决策树)模型

http://www.cnblogs.com/qwj-sysu/p/5935016.html 项目上要求给出一个可配置的类自动化的流程,下面根据自己的思考给出自动训练模型...
  • zdy0_2004
  • zdy0_2004
  • 2016年10月07日 16:48
  • 1312

2.4决策树之决策树实例

决策树 junjun 2016年2月8日 #MarkDown脚本及数据集下载: http://pan.baidu.com/s/1dEx4vgX 实例一、rpart包对iris数据进行分类 ...
  • qq_16365849
  • qq_16365849
  • 2016年02月08日 12:07
  • 2612

决策树基础篇

1.1、什么是决策树     咱们直接切入正题。所谓决策树,顾名思义,是一种树,一种依托于策略抉择而建立起来的树。     机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间...
  • yinlili2010
  • yinlili2010
  • 2014年09月16日 13:58
  • 1881

决策树的原理与构建--围绕一个实例展开

决策树是一种常见的机器学习算法,用于有监督分类问题,本文结合一个具体实例,通过手动一步一步建树,学习算法原理。...
  • mingyong_blog
  • mingyong_blog
  • 2015年08月16日 21:28
  • 3152

使用决策树实现分类

决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答yes和no问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择yes还是no),直到所有选择都进行完毕,最终给出正确答...
  • Gane_Cheng
  • Gane_Cheng
  • 2016年12月29日 21:56
  • 7211
收藏助手
不良信息举报
您举报文章:决策树
举报原因:
原因补充:

(最多只允许输入30个字)