决策树(decision tree)算法

*机器学习中分类和预测算法的评估:

  • 准确率
  • 速度
  • 强壮性
  • 可规模性
  • 可解释性

1.什么是决策树/判定树(decision tree)?

       判定树是一个类似于流程图的树结:其中,每个内部节点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶节点代表类或类分布。树的最顶层是根节点。

决策树(decision tree)算法

2.熵(entropy)概念

      信息是一个抽象的概念,那应该如何度量信息呢?

      1948年,香农提出了“信息熵”的概念

      一条信息的信息量大小和他的不确定性有直接关系,要搞清楚一键非常非常不确定的事情或者是我们一无所知的事情,需要了解大量信息==>信息量的度量就等于不确定性的多少

       例子:猜世界杯冠军,假如一无所知,才多少次?

       每一个队夺冠的几率是不相等的

       比特(bit)来衡量信息的多少

       在信源中,考虑的不是某一单个符号发生的不确定性,而是要考虑这个信源所有可能发生情况的平均不确定性。若信源符号有n种取值:U1…Ui…Un,对应概率为:P1…Pi…Pn,且各种符号的出现彼此独立。这时,信源的平均不确定性应当为单个符号不确定性-logPi的统计平均值(E),可称为信息熵:

决策树(decision tree)算法

       式中对数一般取2为底,单位为比特。但是,也可以取其它对数底,采用其它相应的单位,它们间可用换底公式换算。

       变量的不确定越大,熵也就越大。

3.决策树归纳算法(ID3)

       1970-1980  J.Ross.Quinlan,ID3算法

       选择属性判断节点

       信息获取量(Information Gain):Gain(A)=  Info(D)- Infor_A(D)

       通过A来作为节点分类获取了多少信息  

决策树(decision tree)算法

决策树(decision tree)算法

决策树(decision tree)算法

决策树(decision tree)算法

  类似,Gain(income) = 0.029 ,Gain(student) = 0.151,Gain(credit_rating)=0.048

  所以,age信息获取量最大,选择age作为第一个根节点。

决策树(decision tree)算法

4.ID3算法总结 

  • 树以代表训练样本的单个结点开始(步骤1)
  • 如果样本都在同一个类,则该结点成为树叶,并用该类标号(步骤2和3)
  • 否则,算法使用成为信息增益的基于熵的地量作为启发信息,选择能够最好地将样本分类的属性(步骤6)。该属性成为该节点的“测试”或“判定”属性(步骤7)。
  • 在算法的该版本中,所有的属性都是分类的,即离散值,连续属性必须离散化。
  • 对测试属性的每个已知的值,创建一个分枝,并据此划分样本(步骤8-10)。
  • 算法使用同样的过程,递归地形成每个划分上的样本判定树,一旦一个属性出现在一个结点上,就不必该结点的任何后代上考虑它(步骤13)。
  • 递归划分步骤仅当下列条件之一成立停止:
  • (a)给定结点的所有样本属于同一类(步骤2和3)。
  • (b)没有剩余属性可以用来进一步划分样本(步骤4)。在此情况下,使用多数表决(步骤5)。
  • 这涉及将给定的结点转换成树叶,并用样本中的多数所在的类标记它。替换地,可以存放结点样本的类分布。
  • (c)分枝,test_attribute = a,没有样本(步骤11)。在这种情况下,以samples中的多数类创建一个树叶(步骤12)

5.其他算法

      C4.5 :Quinlan

      Classification and Regression Trees(CART)

      共同点:都是贪心算法,自上而下

      区别:属性选择度量方法不同(C4.5->(gain ratio),CART->(gini index),ID3->(Information Gain))

      如何避免overfitting呢?—>①先剪枝,②后剪枝

6.决策树的优点:

  • 决策树易于理解和实现,人们在在学习过程中不需要使用者了解很多的背景知识,这同时是它的能够直接体现数据的特点,只要通过解释后都有能力去理解决策树所表达的意义。
  • 对于决策树,数据的准备往往是简单或者是不必要的,而且能够同时处理数据型和常规型属性,在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
  • 易于通过静态测试来对模型进行评测,可以测定模型可信度;如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。

7.决策树的缺点:

  • 对连续性的字段比较难预测。
  • 对有时间顺序的数据,需要很多预处理的工作。
  • 当类别太多时,错误可能就会增加的比较快。
  • 一般的算法分类的时候,只是根据一个字段来分类。