決策樹


1. 什么是決策樹/判定樹(decision tree)?

  判定樹是一個類似於流程圖的樹結構:其中,每個內部結點表示在一個屬性上的測試,每個分支代表一個屬性輸出,而每個樹葉結點代表類或類分布。樹的最頂層是根結點。

2.  機器學習中分類方法中的一個重要算法

3.  構造決策樹的基本算法

 3.1 熵(entropy)概念:

  信息和抽象,如何度量?

  1948年,香農提出了 ”信息熵(entropy)“的概念:一條信息的信息量大小和它的不確定性有直接的關系,要搞清楚一件非常非常不確定的事情,或者是我們一無所知的事情,需要了解大量信息==>信息量的度量就等於不確定性的多少。

  例子:猜世界杯冠軍,假如一無所知,猜多少次?(每個隊奪冠的幾率不是相等的)比如說,有32支隊伍,問題是在不在1-16中?在不在1-8中?在不在1-4中?

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

    

  變量的不確定性越大,熵也就越大。

3.2 決策樹歸納算法 (ID3)

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

  選擇屬性判斷結點

  信息增益(Information Gain):Gain(A) = Info(D) - Infor_A(D)

  Gain(A)表示:通過A來作為節點分類獲取了多少信息

  舉例:

  

  

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

  所以,選擇age作為第一個根節點

  

算法:

  • 樹以代表訓練樣本的單個結點開始(步驟1)。
  • 如果樣本都在同一個類,則該結點成為樹葉,並用該類標號(步驟2 和3)。
  • 否則,算法使用稱為信息增益的基於熵的度量作為啟發信息,選擇能夠最好地將樣本分類的屬性(步驟6)。該屬性成為該結點的“測試”或“判定”屬性(步驟7)。在算法的該版本中,
  • 所有的屬性都是分類的,即離散值。連續屬性必須離散化。
  • 對測試屬性的每個已知的值,創建一個分枝,並據此划分樣本(步驟8-10)。
  • 算法使用同樣的過程,遞歸地形成每個划分上的樣本判定樹。一旦一個屬性出現在一個結點上,就不必該結點的任何后代上考慮它(步驟13)。
  • 遞歸划分步驟僅當下列條件之一成立停止:
  • (a) 給定結點的所有樣本屬於同一類(步驟2 和3)。
  • (b) 沒有剩余屬性可以用來進一步划分樣本(步驟4)。在此情況下,使用多數表決(步驟5)。
  • 這涉及將給定的結點轉換成樹葉,並用樣本中的多數所在的類標記它。替換地,可以存放結
  • 點樣本的類分布。
  • (c) 分枝
  • test_attribute = a i 沒有樣本(步驟11)。在這種情況下,以 samples 中的多數類
  • 創建一個樹葉(步驟12)

3.3 其他算法:

  C4.5:  Quinlan

  Classification and Regression Trees (CART): (L. Breiman, J. Friedman, R. Olshen, C. Stone)

  共同點:都是貪心算法,自上而下(Top-down approach)

  區別:屬性選擇度量方法不同: C4.5 (gain ratio), CART(gini index), ID3 (Information Gain)

  如何處理連續性變量的屬性? 離散化!

4 樹剪枝葉 (避免overfitting)

  一個假設在訓練數據上能夠獲得比其他假設更好的擬合,但是在訓練數據外的數據集上卻不能很好的擬合數據。此時我們就叫這個假設出現了overfitting的現象。出現這種現象的主要原因是訓練數據中存在噪音或者訓練數據太少。而解決overfit的方法主要有兩種:提前停止樹的增長或者對已經生成的樹按照一定的規則進行后剪枝。一般來說,有前剪枝和后剪枝兩種策略。

5 決策樹優缺點

  優點:

    直觀,便於理解,小規模數據集有效

  缺點:

    處理連續變量不好

    類別較多時,錯誤增加的比較快

    可規模性一般

 

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM