用熵決策樹問題的最基本思想:
我們一般可以通過信息熵來描述分類的混亂程度,如果標註的種類繁雜,說明信息非常混亂,如果標註就只有一種,或者大部分標註相同,那麼說明這個數據集的信息比較整齊。用熵決策樹的基本思想就是通過不斷的劃分數據集(通過用特徵細化),是的信息熵儘量變小,也就是所謂的增大信息增益。通過不同的特徵值來劃分數據集,得到的信息增益是肯定不同的,熵決策樹的目標就是找出最優的劃分方法,此處的最優不僅僅只是最優增益的問題,還有過/欠擬合等問題,以後慢慢談到
ID3:
ID3就是上述思想最簡單的實現(具體算法可以見上一篇博文),通過比較用哪個特徵劃分樣本得到的信息增益最大來構建決策樹,有一點貪心算法的意思~
具體的構建樹的僞代碼如下:
在此有幾個問題可以解答一下:
1.遞歸停止條件:沒有多餘的特徵可以劃分,或者樣本標註皆相同(也可以理解成信息熵爲0),這二者都最爲遞歸建樹的結束條件
2.計算信息增益時候,我們需要計算未劃分節點時候的信息熵麼?
答:不需要,因爲大家都一樣的,我們選擇信息熵最小的來劃分樣本也就等於選取了信息增益最大的劃分樣本特徵值了。
3.過欠擬合問題:
答:ID3算法面臨着很嚴重的這類問題,如下圖:
其實氣溫的少量變化對我的動作沒有很大的影響,但在上述例子中會造成很大偏差,因爲ID3算法非常偏重於那些特徵值很多的特徵。這個問題在C4.5裏面的到了較好的解決。
解決過擬合的方法:
1.預剪枝:在邊生成決策樹是就把多餘的決策枝減去,如:到了第十層就實在沒有必要繼續下去了
2.後剪枝:用測試集合來將不符合事實的多餘決策枝減去
3.我們可以分處測實集合,通過訓練和測試集合來檢測我們剪枝後決策樹的準確度
C4.5算法
C4.5在ID3之上做了什麼改進呢?主要在以下幾個方面
1.C4.5不再以信息增益作爲評價標準,而改進以信息增益率來評價,從而解決了ID3對特徵取值多的特徵的偏愛問題。
具體如何是實現的呢,其實就是增加了一個信息分裂的度量,在增益率的基礎上除以信息分裂度量,如下所示:
2.C4.5可以處理連續的數據
3.C4.5在邊構造決策樹時候就邊開始剪枝了
4.可以處理特徵丟失的數據
C5.0
先給出幾個參考資料
http://archive.ics.uci.edu/ml/ 實驗數據集
http://www.rulequest.com/see5-info.html 開源的軟件C5.0
http://www.rulequest.com/download.html C5.0源碼
http://www.rulequest.com/see5-unix.html C5.0幫助文檔
說說C5.0好處:
C5.0是C4.5的威力加強版,用於處理大數據集,採用boosting方法處理數據(以後討論),又稱boostingTree,內存消耗小,處理數據快