码迷,mamicode.com
首页 > 其他好文 > 详细

决策树

时间:2015-06-28 14:09:15      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:

决策树模型呈现树状结构,可以认为是一组if-then规则的集合。在决策树当中,内部接节点是属性或者特征,叶子节点是一个类。

一、三个阶段

决策树的学习分为了三个方面:特征选择、决策树的生成、决策树的剪枝pruning

二、详细解释

决策树的学习本质上是从训练集当中总结归纳出一组分类规则。这一组分类规则应该应该记尽量和训练数据集保持一致,同时也具有一定的泛化能力,也就是避免出现过拟合现象。

要找到最优决策树是一个NP完全问题,现实当中的决策树的训练采用的是启发式的方法,用这样的方法得到的一般是次优的决策树。

1、特征选择就是从现有特征集合当中选取一个,并且对当前的训练数据集进行划分,并且划分之后的子数据集都能有比较好的额分类效果的。然后再在每一个子数据集上递归进行这个特征选择的过程,知道满足停止条件。这实际上就是决策树生成的过程。

2、但是按照上面的方法生成的决策树可能在训练数据集上的效果比较好,但是在测试数据集上的效果泛化能力交叉。造成这种问题的原因实际上就是过拟合,说白了就是和训练数据集过于相似,模型当中设定的参数过多。所以在这种情况下就需要对模型进行简化,提高模型的泛化能力。这里所说的简化实际上就是pruning

三、特征选择和决策树构建

1、如何判断一个一个特征对于数据集具有非常好的分类能力,我们直观的可以想到,使用这个特征的某种规则进行if-then的划分,所得到的子集合具有更加清晰的类别划分,也就是能够避免所有类别混杂不清的情况。这里说到了混杂不清,实际上在信息论当中有一个概念就是描述这种混乱情况的——熵。熵的定义:假设X为离散随机变量,X的取值为:

${x_{i},i=1,2,3,...,N}$ ———— (1)

并且我们知道,X的概率分布为

$P(X=x_{i})=p_{i},i=1,2,...,N$ ———— (2)

那么随机变量X的熵定义为

$H(X)=-\sum_{i=1}^{N}p_{i}logp_{i}$ ———— (3)

举个栗子可以有一个比较直观的理解,假设是两个类,上述公式,当两个类的概率相等时,熵值最大,函数曲线是一个开口向下的抛物线。

这里也是可以理解的,如果概率相等,那么说明分布式随机的,那么对于类别的区分能力也是可想而知的,或者说根本没有区分能力,因为大家都是在吃大锅饭,没有任何区别存在。

 

2、有了熵的定义,对于如何选择比较好的特征便顺理成章的来了,我们所有选择的好的特征应该具有最大限度减少这种熵值的能力。如何描述这种选择某种特征前后熵值的变化,这里需要定义另一个概念,叫做条件熵。所谓条件熵,是指在某一个随机变量取值确定的情况下,数据集的熵值情况。当中这里所说的熵值实际上是多个子数据集的熵值之和,因为一个随机变量很有可能有多个取值,因此每一个取值都会得到一个子数据集,在每一个子数据集上我们都会得到一个熵值,最后将这些熵值进行相加,这里的相加是带有权重的,这个被确定的随机变量的每一个取值所占的比重。形式化的定义如下。

$H(Y|X)=\sum_{i=1}^{N}p_{i}H(Y|X=x_{i})$ ———— (4)

放到这里我们可以得到信息增益的概念,所谓信息增益是指数据集D的经验熵与在特征A确定情况下的条件熵H(D|A)之差。

$g(D|A) = H(D) - H(D|A)$ ———— (5)

举个例子来说明一下,假设有一个对学生进行分类的数据统计,总共分为五类(A,B,C,D,E),对于一个学生的描述多项内容,也就是特征表示比如学生年龄$f_{1} \in {24,25,26}$,学生是否是班干$f_{2} \in {0,1}$,学生是否获得过奖学金$f_{3} \in {0,1}$,学生成绩等级$f_{4} \in {a,b,c,d}$,学生是否发了文章$f_{5} \in{a,b,c,d}$.

按照上面的条件上的定义是说某个变量确定,假设这里的变量时是否发了文章和文章的等级,总共有$a,b,c,d$四类,那么$H(D|A)$定义为

$H(D|A) = -(p(f_{5a}*H(f_{5a}))+p(f_{5b}*H(f_{5b}))+p(f_{5c}*H(f_{5c}))+p(f_{5d}*H(f_{5d})))$, ———— (6)

其中$(f_{5a}$表示当前数据集当中$f_{5}等于a的数据所占的比例$,$H(f_{5a})$表示满足$f_{5}等于a的数据所组成的子数据集的熵值,使用上面的公式(3)进行计算。

 

决策树

标签:

原文地址:http://www.cnblogs.com/deepblueme/p/4605458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!