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. 決策樹的缺點
處理連續型變量不好
類別較多時,錯誤增加的比較快
可規模性一般