【数据挖掘技术】决策树

 

一、决策树基本概述

      决策树(Decison Tree)之所以称为树是因为其建模过程类似一棵树的成长过程,即从根部开始,到树干,到分支,再到细枝末叶的分叉,最终胜出出一片片的树叶。在数据树里面,所分析的数据数据样本先是成为一个树根,然后经过层层分支,最终形成若干个节点,每个节点代表一个结论。从决策树的过年不到叶节点的一条路径就形成了对相应对象的类别预测。

     决策树算法之所以在数据分析挖掘应用中如此流行,主要原因是在于决策树的构造不需要任何领域的知识,很适合探索式的数据挖掘,并且可以处理高纬度的数据。

     策树技术对数据分布甚至缺失是非常宽容的,不容易受到极值的影响。这是由于,决策树是分参数的,所以不需要担心利群点和数据是否现行可分的问题,但是决策树最主要的缺点就是容易过度拟合,这也正是随机森林(Random Tree)等集成学习算法被提出了的原因。但是RT在很多分类问题中表现得最好(个人一般认为比SVM稍好),且速度可快扩展,也不像SVM那样需要调用大量的参数,因此RT是近期来非常流行的方法。

 二、决策树原理

      构成决策树采用的是自顶向下的贪婪算法,它会在每个节点选择分类效果最好的属性对样本进行二分类,然后继续这个过程,直到这棵树能够准确的分类训练样本,或者所有的属性都已被用过。决策树算法的核心是在对每个结点进行测试后,选择最佳的属性,并且对决策树进行剪枝处理。

  • 结点属性
最常见的结点属性选择方法(标准)有信息增益、信息增益率、Gini指数、卡方检验(Chi-Square Statistics)等。
  •  剪枝处理
    1 决策树的剪枝处理包括两种方式:先剪枝(Prepruning)和后剪枝(Postpruning).
    2 
    3 所谓先剪枝,就是让决策树在生长之前,就认为定好树的层数,以及每个节点所允许的最少的样本数量,而且在给点的节点不再分裂。
    4 
    5 所谓后剪枝,是让树充分生长,然后剪去子树,删除节点的分支并用树叶代替。后剪枝的方法更常用。CART算法就包含了后剪枝方法,它使用的是代价复杂度剪枝算法,即将树的代价复杂度可看做是树种树叶结点的个数和树的错误率的函数。C4.5使用的是悲观剪枝方法,类似于代替复杂度剪枝算法。

     

三、决策树算法

      目前,最常见的3中决策树方法分别是:CHAIN,CART,和ID3(包括后来的C4.5,乃至C5.0)。

  • CHAID算法:卡方自动相互关系检测

       CHAID(Chi-square Antomatic Detector,卡方自动相互关系检测)算法的历史较长,中文简称为。CHAID依据局部最优原则,利用卡方检验来选择对因变量最具有影响的自变量,CHAID应用的前提是因变量为类别型变量(Category).

 

      CHAID算法的逻辑,简述如下:

【step 1】对所有的自变量进行逐一检测,利用卡方检验确定每个自变量和因变量之间的关系。
             具体来说,就是在检验时,每次从自变量里抽取两个既定值,与因变量进行卡方检验。如果卡方检验显式两者关系不显著,则证明上述两个既定值可以合并。如此,合并过程将会不断减少自变量的取值数量,知         道该自变量所有取值都呈现显著性为止。在对们每个自变量进行类似处理后,通过比较找出最显著的自变量,并按自变量最终取值对样本进行分割,形成若干个新的生长结点。
【step2】CHAID在每个新结点上,重复上述步骤,对每个新结点重新进行最佳自变量选择。
整个过程不断重复,直到每个结点无法再找到一个与因变量有统计显著性的自变量对其进行分割为止,或者之前限度的条件得到满足,树的生长就此终止。

 

  • CART:卡方自动相互关系检测

       CART(Classification and Regression Tree,分类与会归属)算法产生于20世纪80年代中期,CART的分割逻辑与CHAID相同,每一层的划分都是基于对多有自变量的检验和选择上的。但是,CART采用的检验标准不是卡方检验,而是基尼系数(Gini)等不纯度的指标。两者最大的区别在于CHAID采用的是局部最优原则,即节点之间互不相关,一个结点确定了之后,下面的生长过程完全在结点内进行。而CART则着眼于总体优化,即先让树尽可能地生长,然后再回过头来对数进行修剪(Prune),这一点非常类似统计分析中回归算法离的反向选择(Backward Selection)。CART所生产的决策时是二分的,每个节点只能分出两只,并且在树的生长过程中,同一个自变量可以反复使用多次(分割),这些都不同于CHAID的特点。另外,如果是自变量存在数据缺失的情况,CART的处理方式将会有将会是寻找一个替代数据代替(填充)缺失值,而CHAID则是把缺失值作为单独的一类数值。

  • ID3:迭代二分器

      ID3(Iterative Dichotomiser,迭代的二分器)算法与CART是同一时期产生的,其最大的特点在于自变量的挑选标准是:基于信息增益的度量选择具有最高信息增益的属性作为节点的分裂(分割)属性,其结果就是对分割后的结点进行分类所需的信息量最小,这也是一种划分纯度的思想。至于之后发展起来的C4.5可以理解为ID3的发展版(后继版),两者的主要区别在于C4.5采用信息增益表(Gain Ratio)代表了ID3中的信息增益度量,如此替换的主要原因是信息增益度有个缺点,就是倾向于选择具有大量值的属性。这里给个极端的例子,对于Member_Id的划分,每个ID都是一个最纯的组,但是这样的划分没有任何实际意义。而C4.5所采用的信息增量率就可以较好的客服这个缺点,它在信息增益的基础上,增加了一个分裂信息(SplitInformation)对其进行规范化约束。

    决策树技术在数据化运营中的主要用途体现在:作为分类,预测问题的典型支持技术,它在用户划分、行为预测、规则数理等方面具有广泛的应用前景,决策树甚至可以作为其他建模技术前期进行变量筛选的一种方法,及通过决策树的分割来筛选有效地输入自变量。

四、决策树的应用优势

  • 决策树模型非常直观易懂,生成一系列“如果.......那么.......”的逻辑判断很容易让人理解和应用。

  • 决策树搭建和应用的速度比较快,并且可以处理区间型变量和类别型变量。但是要强调的是“可以处理区间型变量”不代表“快速处理区间型变量”,如果输入变量只是类别型或次序型变量,决策树的搭建是非常快的,但是如果加上了区间型变量,视数据规模,其模型搭建速度可能有所不同。
  • 决策树对数据分布没有特别严格的要求。
  • 对缺失值很宽容,几乎不做任何处理就可以应用。
  • 不容易受异常值的影响。
  • 可以同时对付数据中线性和非线性的关系。
  • 决策树通常还可以作为有效工具来帮助其他模型算法挑选自变量。决策树不仅本身对于数据的前期处理和清洗没有什么特别的要求和限制,它还会帮助别的模型算法去挑选自变量。因此决策树算法里节点的自变量选择方法完全适用于其他算法模型,包括卡方检验、Gini指数、信息增益等。
  • 决策树算法使用信息原理对大样本的属性进行信息量分析,并计算各属性的信息量,找出反映类别的重要属性,可准确、高效地发现哪些属性对分类最具有意义。这一点对于区间变量的分享操作非常重要。

五、决策树的缺点

  • 决策树最大的缺点就是其原理中的贪心算法。贪心算法总是做出在当前看来最好的选择,却并不从整体上思考最优的划分,因此,它所做的选择只能是某种意义上的最优选择。
  • 如果目标变量是连续型变量,那就不适宜用决策树了,最好改用线性回归去解决。
  • 决策树缺乏像回归或聚类那样的丰富多彩的检测标准和评价方法。
  • 当某些自变量的类别数量比较多,或者自变量是区间型变量时,决策树过度拟合的危险性会增加。针对这种情况,数据分析师需要进行数据转换,比如分箱和多次模型验证和测试,确保其具有稳定性。
  • 决策树对区间型变量进行分箱操作室,无论是否考虑了顺序因素,都可能会丧失某些重要的信息。尤其是当分箱钱的区间型变量与目标变量有明显的线性关系室,这种分箱操作所造成的信息损失更为明显。
posted @ 2014-07-30 00:45  chenyn68  阅读(2830)  评论(0编辑  收藏  举报