Decision Tree决策树

决策树简介

  决策树是一种树形结构,由结点和有向边组成。结点有三种类型:根节点、内部结点、叶结点。内部结点表示一个特征或属性,叶结

点表示一个类。

  决策树算法是一种有监督的学习。在构建决策树的过程中采用的是自顶向下递归的方式构建,每一次递归,都会去选取在当前状态下

最优的特征来划分数据集。

  根据选取特征的方式,决策树分为ID3方法决策树、C4.5方法决策树、CART方法决策树。

  ID3方法:基于信息增益作为属性选择的度量

  C4.5方法:基于信息增益比作为属性选择的度量

  CART方法:基于基尼指数作为属性选择的度量


决策树结构

  


决策树构造举例

    原始数据:

    

    构建好的决策树(分类器/模型):

    


决策树种类

  分类树—对离散变量进行预测
  回归树—对连续变量进行预测


ID3方法选择属性

  从信息论中我们可以知道,信息增益越大,信息纯度越高。ID3方法的核心是以信息增益决定属性选择,选择分裂后信息增益最大的属性进行分裂。

  信息熵(信息量bits):不确定性越大,信息熵越大。
  

Entropy(D)=i=1np(xi)log2p(xi)

   Entropy(D) :训练数据信息熵。也就是说不按任何属性分,按class_label来分,得到的信息熵。

   p(xi) :第i个类别在整个训练数据中出现的概率。可以用此类别的数量除以总数量得到。

  假如按照特征F对训练数据进行划分,则划分之后的信息熵

EntropyF(D)=j=1vDj|D|Entropy(Dj)

   Dj :特征F下的各种情况。
   DjD :特征F下各种情况百分比。
   Entropy(Dj) :特征F下的各种情况对应的信息熵。也就是特征F下的各种情况下按class_label来分的信息熵。

  信息增益
  

Gain(F)=Entropy(D)EntropyF(D)

  第一次分裂选择最大信息增益对应的特征。然后以递归的方式构建树,一旦一个属性出现在一个节点上了,就不用再其后代节点考虑该属性。


C4.5方法选择属性

  ID3方法存在一个问题,偏向于选择多值属性作为分裂属性,按多值属性划分,纯度较高。ID3选择的是按某个属性划分后数据纯度最

高的属性来划分。可以划分充分,但这种划分对分类毫无意义。C4.5方法按照信息增益率(信息增益比)来选择最佳属性划分。

  分裂信息:分裂信息就相当于特征F(取值 F1 F2 …)各自的概率为 P1 P2 …的熵之和。如下: Pj=Dj|D|

  

SplitInformationF(D)=j=1vDj|D|log2(Dj|D|)

  增益率:信息增益/分裂信息
  
GainRatio(F)=Gain(F)SplitInformationF(D)

  采用C4.5方法选择最优属性,当某一个属性分的越来越细,C4.5方法给他的惩罚就会越来越大,最终得到的增益率就可以更好的抑

制过细的属性的增加。这样,得到的模型的泛化能力就更好。

  增益率准则对取值数目较少的属性有所偏好,C4.5并不是直接选择增益率最大的属性来划分,采用的是启发式选择:先从候选属性中

找出信息增益高于平均水平的属性,再从中选择增益率最高的。


CART方法选择属性

  CART( calssification and regression tree),分类与回归树。CART假设决策树就是二叉树,CART树的生成就是递归构建二叉树的过

程。CART对回归树用平方误差最小化准则,对分类树用GINI 指标(基尼指数) 最小化准则选择特征。这种决策树对分类和回归任务都

可用。

  最小二乘回归树

  基尼系数分类树

    样本D的基尼系数

Gini(D)=1kk=1(|Ck||D|)2

     |Ck| :该类别下的样本数。

     |D| :样本总数。

    基尼系数越大,数据的不纯度越大。同理, Gini(D) 越小,数据集D的纯度越高。

    样本D在特征F划分后的基尼系数

Gini(D,F)=|D1||D|Gini(D1)+|D2||D|Gini(D2)

     D1D2 样本D按F的某一可能值被分成的两部分, D1D2 是补集关系。特征F可能有多个值,此时 Gini(D,F) 的值就有多

个,我们选择最小的那个作为 Gini(D,F) 的基尼系数。

ΔGini(F)=Gini(D)Gini(D,F)

    我们选择 ΔGini(F) 最大的属性作为最佳分裂属性。


剪枝

    1、剪枝是决策树中解决”过拟合”的主要手段。

    2、剪枝方法:

      A、先剪枝(Pre-Pruning)

        根据一些规则,及早停止树的生长。如当前节点的划分不能带来决策树泛化性能的提升,则停止对当前节点的划分,并

      标记为叶子节点。

        A1:树的深度达到用户设置的深度

        A2:叶节点数达到用户设置的数目

      B、后剪枝(Post-Pruning)

        在树完全长成后剪去分支。就是说,生成一颗完整的决策树后,然后自底向上对非叶节点进行考察,若将该节点对应的

      子树替换为叶子节点能带来决策树泛华能力的提升,则将该子树替换为叶子节点。

        B1:用叶子节点来替换子树,叶子节点的类别由子树下边的子类决定。

        B2:用子树最常用的分支来替换子树。


决策树的优缺点

    优点:

      直观,易于理解,小规模数据集上表现良好

    缺点:

      A、连续变量处理不好,因为连续变量离散化需要确定阈值,阈值确定不好,对结果影响非常大。

      B、在大数据集上,算法复杂度较大,需要对每一个属性做判断。
  

你可能感兴趣的:(机器学习,决策树算法)