機器學習-決策樹理論詳解


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

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

 

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

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

樹葉

    2.1 熵(entropy)概念

         信息和抽象該如何來度量?

    1948年香農提出“信息熵(entropy)”的概念

    一條信息的信息量大小和他的不確定性有直接的關系,要搞清楚一件非常非常不確定的事情,或者是我們一無所知的事情需要了解大量信息==》信息量的度量就等於不確定性的多少

    例如:猜世界杯冠軍,假如是一無所知,需要猜多少次?每個隊奪冠的幾率不是相等的

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

  

        

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

  2.2 決策樹歸納算法(ID3)

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

        選擇屬性判斷結點

        信息獲取量(Information Gain):Gain(A) = Info(D)-Infor_A(D)     (沒有A時的信息熵-有A之后的信息熵)

        通過A來作為節點分類獲取了多少信息

 

          沒有按照年齡來分時的信息熵

 

          按照年齡來分的信息熵

    通過年齡分類的信息獲取量

         類似的,Gain(income)=0.029,Gain(student)=0.151,Gain(credit_rating)=0.048,所以選擇age作為第一個根節點。

    重復。。。

2.3 算法總結:

1) 樹以代表訓練樣本的單個結點開始(步驟1)

2) 如果樣本都在同一個類,則該結點成為樹葉,並用該類標號(步驟2,3)

3) 否則,算法使用稱為信息增益的基於熵的度量作為啟發信息,選擇能夠最好地將樣本分類的屬性(步驟6)。該屬性成為該結點的“測試”或者“判定”屬性(步驟7)。所有的屬性都是分類的,即離散值。連續屬性必須離散化。

4) 對測試屬性的每個已知的值創建一個分枝,並據此划分樣本(步驟8-10)。

5) 算法使用相同的過程,遞歸形成每個划分上的樣本判定樹。一旦一個屬性出現在一個結點上,就不必該結點的任何后代上考慮它(步驟13)

遞歸划分步驟僅當下列條件之一成立停止:

   a.給定結點的所有樣本屬於同一類(步驟2,3)

   b.沒有剩余屬性可以用來進一步划分樣本(步驟4)。在此情況下使用多數表決(步驟5)。這涉及將給定的結點轉化為樹葉,並用樣本中的多數所在的類標記它。

   c.分枝 test_attribute = a,沒有樣本(步驟11).在這種情況下,以samples中的多數類創建一個樹葉(步驟12)

2.4 其他算法

  C4.5 :Quinlan 

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

  共同點:都是貪心算法,自上而下

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

  對於連續性變量的屬性采用離散化處理

3. 樹剪枝葉(避免overfiting)

   3.1 先剪枝

   3.2 后剪枝

4. 決策樹的優點

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

5. 決策樹的缺點

     處理連續型變量不好

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

     可規模性一般

 


免責聲明!

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



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