預剪枝
就是在決策樹生成過程中,在每次划分時,考慮是否能夠帶來決策樹性能的提升。如果可以提升決策樹的性能則會進行划分。如果不能則會停止生長。
一般的方法有如下幾種:
- 當樹的深度達到一定的規模,則停止生長。
- 達到當前節點的樣本數量小於某個閾值的時候。
- 計算每次分裂對測試集的准確性提升,當小於某個閾值,或不再提升甚至有所下降時,停止生長。
- 當信息增益,增益率和基尼指數增益小於某個閾值的時候不在生長。
優缺點
- 優點:思想簡單,算法高效,采用了貪心的思想,適合大規模問題。
- 缺點:提前停止生長,有可能存在欠擬合的風險。
后剪枝
- 錯誤率降低剪枝(REP)
- 悲觀剪枝(PEP)
- 代價復雜度剪枝(CCP)
- 最小誤差剪枝(MEP)
- CVP (Critical Value Pruning)
- OPP (Optimal Pruning)
本文以西瓜書為例,錯誤率降低剪枝(REP)。
將數據分為訓練集和測試集,用訓練集去生成一顆完整的決策樹,用測試集去剪枝。
該算法將樹上的每個節點都作為剪枝的候選對象,通過如下步驟進行剪枝操作:
- step1:刪除以此節點為根節點的樹,
- step2:使其成為葉子結點,賦予該節點最常見的分類
- step3:對比刪除前和刪除后的性能是否有所提升,如果有則進行刪除,沒有則保留。