决策树原理

浏览: 1254

转自:https://blog.csdn.net/sjpljr/article/details/70169165


分类预测指通过向现有数据的学习,使模型具备对未来新数据的预测能力。对于分类预测有这样几个重要,一是此模型使用的方法是归纳和提炼,而不是演绎。非数据挖掘类的软件的基本原理往往是演绎,软件能通过一系列的运算,用已知的公式对数据进行运算或统计。分类预测的基本原理是归纳,是学习,是发现新知识和新规律;二是指导性学习。所谓指导性学习,指数据中包含的变量不仅有预测性变量,还有目标变量;三是学习,模型通过归纳而不断学习。

事实上,预测包含目标变量为连续型变量的预测和目标变量为分在变量的分类预测。两者虽然都是预测,但结合决策树算法和我们之前介绍过的时间序列算法知,二者还是有明显的差别的。

Clementine决策树的特点是数据分析能力出色,分析结果易于展示。决策树算法是应用非常广泛的分类预测算法。

6.1决策树算法概述

6.11什么是决策树

决策树算法属于有指导的学习,即原数据必须包含预测变量和目标变量。决策树之所以如此命名,是因为其分析结果以一棵倒置的树的形式呈现。决策树由上到下依次为根节点、内部节点和叶节点。一个节点对应于数据中的一个字段,即一个字段——即Question——对数据进行一次划分。决策树分为分类决策树(目标变量为分类型数值)和回归决策树(目标变量为连续型变量)。分类决策树叶节点所含样本中,其输出变量的众数就是分类结果;回归树的叶节点所含样本中,其输出变量的平均值就是预测结果。这一点需要格外注意。

与其它分类预测算法不同的是,决策树基于逻辑比较(即布尔比较)。可以简单描述为:If(条件1)Then(结果1);If(条件2)Then(结果2)。这样,每一个叶节点都对应于一条布尔比较的推理规则,对新数据的预测就正是依靠这些复杂的推理规则。在实际应用中,一个数据产生的推理规则是极为庞大和复杂的,因此对推理规则的精简是需要关注的。

6.12决策树的几何理解

将训练样本集(即操作中常说的Training Data)看做一个n维空间上的一个点,则上面我们提到的布尔比较后的推理规则就像是存在于这个n维空间中的“线”。决策树建立的过程形象上看,就是倒置的树生长的过程,其几何意义上是,每个分枝(每条推理规则)完成对n维空间区域划分的过程。决策树正式生成,则n维空间正式划分完毕,则每一个小区域,代表一个叶节点。通常n维空间不易于理解,故采用倒置的树来表示此结果。

需要注意的一点是,在划分过程中,要尽量做到不同类别的结果归于不同的“区域”。

6.13决策树的核心问题:生成与修剪

决策树核心问题有二。一是利用Training Data完成决策树的生成过程;二是利用Testing Data完成对决策树的精简过程。即前面我们提到的,生成的推理规则往往过多,精简是必需的。

一、决策树的生长

决策树生长过程的本质是对Training Data反复分组(分枝)的过程,当数据分组(分枝)不再有意义——注意,什么叫分组不再有意义——时,决策树生成过程停止。因此,决策树生长的核心算法是确定数据分析的标准,即分枝标准。

何为有意义呢?注意,当决策树分枝后结果差异不再显著下降,则继续分组没有意义。也就是说,我们分组的目的,是为了让输出变量在差异上尽量小,到达叶节点时,不同叶节点上的输出变量为相同类别,或达到用户指定的决策树停止生成的标准。

这样,分枝准则涉及到两方面问题:1、如果从众多输入变量中选择最佳分组变量;2、如果从分组变量的众多取值中找到最佳分割点。不同的决策树算法,如C4.5、C5.0、Chaid、Quest、Cart采用了不同策略。

二、决策树的修剪

完整的决策树并不是一棵分类预测新数据对象的最佳树。其原因是完整的决策树对Training Data描述过于“精确”。我们知道,随着决策树的生长,决策树分枝时所处理的样本数量在不断减少,决策树对数据总体珠代表程度在不断下降。在对根节点进行分枝时,处理的是全部样本,再往下分枝,则是处理的不同分组下的分组下的样本。可见随着决策树的生长和样本数量的不断减少,越深层处的节点所体现的数据特征就越个性化,可能出现如上推理规则:“年收入大于50000元且年龄大于50岁且姓名叫张三的人购买了此产品”。这种过度学习从而精确反映Training Data特征,失去一般代表性而无法应用于新数据分类预测的现象,叫过度拟合(Overfitting)或过度学习。那我们应该怎么办呢?修剪!

常用的修剪技术有预修剪(Pre-Pruning)和后修剪(Post-Pruning)。

Pre-Pruning可以事先指定决策树的最大深度,或最小样本量,以防止决策树过度生长。前提是用户对变量聚会有较为清晰的把握,且要反复尝试调整,否则无法给出一个合理值。注意,决策树生长过深无法预测新数据,生长过浅亦无法预测新数据。

Post-pruning是一个边修剪边检验的过程,即在决策树充分生长的基础上,设定一个允许的最大错误率,然后一边修剪子树,一边计算输出结果的精度或误差。当错误率高于最大值后,立即停止剪枝。

基于Training Data的Post-Pruning应该使用Testing Data。

决策树中的C4.5、C5.0、CHAID、CART和QUEST都使用了不同 剪枝策略。

-----------------2

-----------------

6.2Clementine的C5.0的算法及应用

C5.0是C4.5的商业化版本,因此算法细节因版权问题尚未公开,本节讨论的是与C5.0算法核心相同的C4.5算法。C4.5是在决策树老鼻祖算法ID3算法的基础上发展起来的,ID3算法自1979年由Quinlan提出,经不断改善形成具有决策树里程碑意义的C4.5算法。

需要注意的是C5.0用于生成多分支决策树,输入变量可以是分类型,也可以是数值型,输出变量为分类型。注意不同的决策树算法对输入和输出数据类型的要求。

正如6.1节提到的,决策树的核心问题之一是决策树分枝准则的确定。C5.0以信息增益率为标准确定最佳分组变量和最佳分割点。其核心概念是信息熵。

6.2.1信息熵和信息增益

一、信息熵

信息熵是信息论中的基本概念。信息论由Shannon于1948年提出并发展起来,用于解决信息传递过程中的问题,也称统计通信理论。它认为:

1、信息传递由信源、信道和信宿组成;

2、传递系统存在于一个随机干扰环境中,因此传递系统对信息的传递是随机误差的。如果把发送信息记为U而接收到信息记 V,由信道可记为通信模型,为P(U|V)。信道模型是一个条件概率矩阵P(U|V)。

信道模型可以看作是一个条件概率矩阵,信源也往往被理解为某种随机序列,也具有某种发生概率,且其概率求和为1。

在实际通信前,信宿信源会发出什么信息不可能知道,称为信宿对信源状态具有不确定性,由于这种不确定性是发生在通信之前的,故称为先验不确定性。在收到信息后的不确定性,称为后验不确定性。如果先验不确定性等于后验不确定性,则表示信息量为零;如果后验不确定性等于零,则表示信宿收到了信源的全部信息。可见:

信息是指对不确定性的消除。

信息量由消除的不确定性来确定。数据定义为:-Log2P(Ui)。信息量单位是bit,是以2为底的对数形式。信息熵是信息量的数学期望,其表示式由于过于复杂而不写。

如果P(U)差别越小,信息熵越大,平均不确定性越大;P(U)差别越在,信息熵越小,平均不确定性越小。如:信息熵等于0,则表示只存在一种信息发送可能,没有发送的不确定性。如果P(U)=1/K,即K个信源概率相同,则信息熵差别最大,不确定性最大。

二、信息增益

信息熵又称为先验熵,是在信息发送前信息量的数学期望;后验熵指在信息发送后,人信宿角度对信息量的数学期望。一般先验熵大于后验熵,先验熵与后验熵估差,即所谓的信息增益。信息增益,反映的是信息消除随机不确定性的程度。

6.2.2 C5.0的决策树生长算法

一、如何从众多的分组变量中选择一个最佳的分组变量

C5.0以信息论为指导,以信息增益率为标准确定最佳分组变量和分割点。决策树将输出变量(是否购买)看做信源发出的信息U,将输入变量看成信宿收到的信息V。则在实际通信之前,也即是决策树建立之前,输出变量做为信源发出的信息,完全随机,其平均不确定性即为P0.在实际通信过程中添加变量1后,其平均不确定性为P1,则添加变量1产生的信息增益为P0-P1,其它变量如此。则根据信息增益大小判断哪个变量为最佳分组变量。这里有个问题,即类别值多的输入变量较类别值少的输入变量更有机会成为最佳分组变量。为解决此问题,提出将信息增益量除以信息熵,由抵消了类别值的影响,即有信息增益率来表征。

那么,如何评价数值型输入变量消除平均不确定性的能力呢?一般对其进行分箱处理,然后根据上述方法判定。分箱不采用了MDLP的熵分组方法,Clementine中C5.0节点本身包含了MDLP算法,它将自动完成数值型输入变量的分箱处理。

二、输入变量带有缺失值时如何选择最佳分组变量

C5.0在选择最佳分组变量时,通常将带有缺失值的样本当作临时剔除样本看待,并进行权数调整处理。

三、如何从分组变量的众多取值中找到一个最佳的分割点

在确定了最佳分组变量后,C5.0将继续确定最佳分组变量的分割点。

如果分组变量是分类型变量,由按分组变量的K个取值进行分组,形成K个分枝。

如果分组变量是数值型变量,则先通过MDLP分箱法或ChiMerge分箱法进行分箱处理,然后分组。

如果分组变量中存在缺失值,那怎么办呢?你无法判定此样本分到哪个组中去,C5.0的处理是将其分到所有组中去。但其权重不再为1,而为此组样本数占总样本数的比例。

6.2.3C5.0的剪枝算法

C5.0采用Post-Pruning法从叶节点向上逐层剪枝,其关键是误差的估计及剪枝标准的设置。

一、误差估计

一般决策树的检验应该使用Testing Data,但C5.0使用了统计的置信区间的估计方法,直接在Training Data中估计误差。

二、剪枝标准

在得到误差的估计后,C5.0将按照“减少误差”判断是否剪枝。首先,计算待剪子树中叶节点的加权误差,然后与父节点的误差进行比较,如果大于则可以剪掉,否则不能剪掉。

6.2.4 C5.0的推理规则集

C5.0不有够构建决策树,同时还可以生成推理规则集。但是从决策树导入推理规则集非常烦锁,推理规则集通常有自己生成算法,即PRISM。该算法gf1987rh提出,是一种“覆盖”算法,对Training Data100%正确。

--------------------- 


参考:https://blog.csdn.net/qingqing7/article/details/78416708

http://www.docin.com/p-1432126454.html

SPSS也可以实现:参考http://blog.sina.com.cn/s/blog_a67b6b6b0102wxf7.html

作者:sjpljr 

来源:CSDN 

原文:https://blog.csdn.net/sjpljr/article/details/70169165 

版权声明:本文为博主原创文章,转载请附上博文链接!

推荐 0
本文由 DDlucky 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册