在決策樹模型中,最重要的乙個概念就是熵,熵從通俗語言來講就是資訊的不確定性,比如我有一袋5個水果,不知道是什麼水果,目前的不確定性是最大的,熵最大,如果拿出來乙個是蘋果,那麼這袋水果的不確定性就減小了,熵也減小了,再拿出乙個知道是梨子,熵進一步減小,直到取出所有水果,這時候不確定性最低,都確定了,熵也為0了。
熵的定義是:h(x) = -p(x)log p(x)
聯合熵:h(a,x)
條件熵:h(a|x)
資訊增益:gain(x) g(d,a) = h(d) - h(d|a)
資訊增益率:gr(d,a) = g(d,a)/h(a)
gini係數:gini(p)
決策樹是非常易於理解的模型,決策樹的過程在我們平常的決策中可能也都有應用,比如我決定晚上是否回家吃飯,那麼先判斷晚上是否加班,不加班情況下看食堂的飯怎麼樣,食堂飯不好然後看家裡有沒有菜,家裡有菜最終決定回家吃,其他情況都不回家吃,這是乙個很簡單的二分決策,實際情況中可能會有複雜的多份決策,但是過程了類似的。
那麼決策樹的分支選擇中,這麼多條件如何確定先選擇哪個條件作為分支,這就是決策樹的關鍵了,常用的有資訊增益,增益率、基尼係數。
id3
如上述所說,目前不同的決策樹演算法的根本區別是選擇下乙個引數的標準,id3演算法是利用資訊增益作為標準來尋找下乙個引數,資訊增益通俗來講就是選擇下乙個引數後,不確定性的減小量,也就是熵的減小量,如果不確定性減小越多,那麼就該選擇該屬性作為分類的下乙個標準。
c4.5的下乙個節點的選擇標準是資訊增益率,資訊增益率是資訊增益相對於該資訊的熵的比值,如上面的計算公式。
該分類是利用基尼係數為標準選擇下乙個資訊的標準。
乙個屬性的資訊增益(率)/gini指數越大,表明屬性對樣本的熵的減小能力更強,這個屬性使得資料由不確定性變成確定性的能力越強。
決策樹是屬於弱分類器,容易發生過擬合情況,因此可以通過剪枝來處理過擬合。
剪枝總的思路如下:
* 由完全樹t0開始,剪枝部分節點得到t1,再次剪枝部分節點得到t2,直到得到僅剩樹根的tk;
* 在驗證集資料上對這k個樹分別進行評價,選擇損失函式最小的樹ta
剪枝係數的確定
1. 從樣本集中取樣(有重複的)選出n個樣本
2. 在所有屬性上,對這n個樣本建立分類器(id3,c4.5,cart,svm,logistic回歸等)
3. 重複以上兩個步驟,即獲得m個分類器
4. 將資料放在這m個分類器上,最後根據這m個分類器的投票結果,決定資料屬於哪一類。
隨機森林
隨機森林在bagging的基礎上做了修改
1. 從樣本中用booststrap取樣選出n個樣本;
2. 從所有屬性中隨機選擇k個屬性,選擇最佳分割屬性作為節點建立cart決策樹
3. 重複以上兩步m次,即建立了m棵cart樹;
4. 這m個cart形成隨機森林,通過投票表決結果,決定資料屬於哪一類。
ML筆記 決策樹
十分有幸可以參加datawhale組隊學習活動,希望可以與datawhale的小夥伴們共同學習,共同進步。決策樹是一種常見的分類模型,在金融分控 醫療輔助診斷等諸多行業具有較為廣泛的應用。決策樹的核心思想是基於樹結構對資料進行劃分,這種思想是人類處理問題時的本能方法。例如在婚戀市場中,女方通常會先看...
機器學習之三 決策樹
決策樹通過 分而治之 的策略,採用遞迴的方式學習得到樹結構,目標為學習乙個泛化能力強的決策樹。有三種情形會導致遞迴返回 1.當前節點包含的樣本均屬於同一類別 2.當前節點屬性集為空或所有樣本在所有屬性上取值相同 3.當前節點樣本集為空 出現以上三種情況中的任意一種,該節點標記為葉節點,對1來說,該葉...
ML筆記 決策樹剪枝
無論是分類樹還是回歸樹,剪枝過程很重要,剪枝處理不當或是沒有剪枝操作,決策樹模型都是失敗的,通過剪枝,可以大大提高模型準確度,避免決策樹的過擬合。決策樹生成演算法遞迴地生成決策樹,直到不能繼續下去為止,產生的樹對於訓練集會有很好的模型準確率,但是對於未知的測試資料分類卻沒有那麼準確,因此,對書的剪枝...