1、什麼是決策樹;(decision tree)
決策樹是一種樹型結構,其中:
每個內部的結點表示在一個屬性的測試;
每個分支代表一個測試的輸出;
每個葉節點代表一種類別;
決策樹是以實例爲基礎的歸納學習,採取的是自頂向下的遞歸方法;
其基本思想是,以信息熵爲度量構建一顆熵值下降最快的樹,到葉子結點處的熵值爲0,此時所有的葉節點的熵值都屬於同一類。
附上:葉節點的信息熵公式爲:
2、決策樹算法的整體特點:
最大的特點是,可以自學習,不要求過多的理論知識,只需要對訓練實例能進行較好的標註。
屬於有監督學習,是從一羣無序、無規則(概念)中推理出決策樹表示的分類規則。
3、生成算法的整體思路:
決策樹的關鍵在於:
Step 1、如何評估當前的狀態?
Step 2、如何確定,在當前狀態下選擇哪個屬性爲分類依據?
Step 3、如何評估決策樹模型?
Step 4、如何解決過擬合問題?
在此之前,我們先需要理清相關概念。
4、基本概念:
接下來解釋五個概念,分別有信息熵、信息增益、經驗條件熵、信息增益率、Gini係數。
4.1、信息熵:Entropy
信息熵就是平均而言發生一個事件我們得到的信息量大小。所以數學上,信息熵其實是信息量的期望。
信息熵越大,則表示目前的數據顯式更加混亂的階段。
更多信息熵的探討,可以前往:https://www.zhihu.com/question/22178202/answer/49929786
4.2、信息增益:Information Gain
特徵A對訓練集D的信息增益g(D,A),定義爲集合D的經驗信息熵H(D)與特徵A給定條件下,D的經驗條件信息熵H(D|A)之差,即爲訓練集D和特徵A的互信息。
其中,經驗熵爲集合D中的信息熵,而經驗條件信息熵,即在經過A節點屬性劃分後的信息熵。
在熵的理解那部分提到了,熵可以表示樣本集合的不確定性,熵越大,樣本的不確定性就越大。因此可以使用劃分前後集合熵的差值來衡量使用當前特徵對於樣本集合D劃分效果的好壞。
缺點:信息增益偏向取值較多的特徵
原因:當特徵的取值較多時,根據此特徵劃分更容易得到純度更高的子集,因此劃分之後的熵更低,由於劃分前的熵是一定的,因此信息增益更大,因此信息增益比較 偏向取值較多的特徵。
4.3、經驗條件信息熵H(D|A)
推導的過程中用到了條件概率公式:
整體的結論爲,H(D|A)等於在該特徵n個不同特徵值的概率乘以該特徵值的信息熵之乘積的彙總。
其中,
設訓練樣本數據集爲D,|D|表示樣本數量;
設有K個類,Ck, k=1,2,3..K, |Ck|位屬於類Ck的樣本個數,有
設特徵A有n個不同的取值,{a1,a2,..an},根據特徵A的取值,將D劃分爲n個子集,D1,D2,..,Dn,設|Di|爲Di的樣本個數,有
記子集Di中屬於類Ck的樣本集合爲Dik, |Dik|爲Dik的樣本個數
4.4 信息增益率 Information Gain Rate
信息增益比 = 懲罰參數 * 信息增益
注意:其中的HA(D),對於樣本集合D,將當前特徵A作爲隨機變量(取值是特徵A的各個特徵值),求得的經驗熵。
其中:
信息增益比本質: 是在信息增益的基礎之上乘上一個懲罰參數。特徵個數較多時,懲罰參數較小;特徵個數較少時,懲罰參數較大。通俗理解,特徵個數越多越分散,信息熵越大,懲罰參數越小。
缺點:信息增益比偏向取值較少的特徵
原因: 當特徵取值較少時HA(D)的值較小,因此其倒數較大,因而信息增益比較大。因而偏向取值較少的特徵。
用途:基於以上缺點,並不是直接選擇信息增益率最大的特徵,而是現在候選特徵中找出信息增益高於平均水平的特徵,然後在這些特徵中再選擇信息增益率最高的特徵。
4.5 基尼指數 Gini Index,基尼不純度
表示在樣本集合中一個隨機選中的樣本被分錯的概率.
Gini指數越小表示集合中被選中的樣本被分錯的概率越小,也就是說集合的純度越高,反之,集合越不純
4.6 純結點
若某結點上,只有一種類型,稱該節點爲純結點。熵值爲0。
4.7 均結點
若某結點上,所有類型佔比相同,則成爲均結點。熵值最大。
5、決策樹的學習算法:
一個屬性的信息增益(或者信息增益率、基尼係數的降低值)越大,表明屬性對於樣本的熵減少能力更強,這個屬性將數據有不確定性變爲確定性的能力越強。
5.1 ID3算法:使用信息增益(互信息)g(D,A)進行特徵選擇
選擇標準:選擇出G(D,A)最大的特徵;
缺點:信息增益偏向取值較多的特徵
原因:當特徵的取值較多時,根據此特徵劃分更容易得到純度更高的子集,因此劃分之後的熵更低,由於劃分前的熵是一定的,因此信息增益更大,因此信息增益比較 偏向取值較多的特徵。(假設前提是劃分的越多,對應的熵減越大)
5.2 C4.5算法:使用信息增益率
選擇標準:選擇信息增益率最大的特徵
缺點:信息增益比偏向取值較少的特徵
原因: 當特徵取值較少時HA(D)的值較小,因此其倒數較大,因而信息增益比較大。因而偏向取值較少的特徵。
用途:基於以上缺點,並不是直接選擇信息增益率最大的特徵,而是現在候選特徵中找出信息增益高於平均水平的特徵,然後在這些特徵中再選擇信息增益率最高的特徵。
5.3 CART算法:使用Gini係數
步驟:1、選擇特徵;2、選擇特徵劃分點;(都是選擇Gini係數最小的)
CART是個二叉樹,也就是當使用某個特徵劃分樣本集合只有兩個集合:1. 等於給定的特徵值 的樣本集合D1 , 2 不等於給定的特徵值 的樣本集合D2。
6、決策樹的評價方法:
評價方法1: 樹結構:將所有的葉節點的熵求和。
評判標準:若該值越小,則對樣本的分類越準確。
評判方法2:是否存在過擬合
過擬合的意思是,決策樹對訓練屬於很好的分類的能力,但是對於未知的測試集未必有很好的分類能力,繁華能力差。
7、如何避免決策樹的過擬合情況:
1、剪枝;2、隨機森林;
7.1 剪枝
三種決策樹的剪枝過程算法相同,只是評估標準不同;
7.1.1 剪枝的整體思路:
1、通過完全樹T0開始,剪枝部分節點得到T1,再次剪枝部分節點得到T2,直到僅剩下數根節點Tk;
2、在驗證數據集上對k個樹分別評價,選擇損失函數最小的樹Ta;
7.1.2 剪枝係數
由於原來的損失函數會傾向於生成更深的樹,所以損失函數需要重新修正:
其中|T|爲葉子的複雜度
剪枝係數alpha的確定:
對alpha有兩種極限考慮:
若alpha=0,未剪枝的決策樹損失最小;
若alpha=正無窮,單結點的決策樹損失最小;
假定當前對以r爲根的子樹剪枝,剪枝後,只保留r本身而刪掉所有的子結點。
以r爲根的子樹:
剪枝之後的損失函數:
剪枝之前的損失函數:
令兩者相等,得到剪枝係數
7.1.3 剪枝詳細步驟
1、計算完整樹T0所有內部結點的剪枝係數;2、查找最小剪枝係數的結點,剪枝得決策樹Tk;
3、重複以上步驟,直到決策樹Tk只有一個結點;
4、得到決策樹序列T0,T1,T2...Tk;
5、使用驗證樣本集選擇最優子樹。
從最小的剪枝係數開始,能最大保留樹本身的結構。
備註:使用驗證集評價的時候,公式爲:
QA:爲什麼沒有選擇加入正則化係數alpha?
主要是因爲正則化係數alpha不確定,而且建模後對樣本的熵減已經是對模型最好的評估。
Q&A:
若有發現以上博客有問題的話,歡迎大家指出,郵箱:[email protected] ,歡迎交流。