決策樹的預剪枝和後剪枝,連續值與缺失值

預剪枝是指在決策樹生成過程中,對每個結點在劃分前先進行估計,若當前結點的劃分不能帶來決策樹泛化性能提升,則停止劃分並將當前結點標記爲葉子結點。

優點:算法簡單,效率高,適合解決大規模問題

缺點:有欠擬合的風險

 

後剪枝是先從訓練集生成一顆完整的決策樹,然後自底向上地對非葉子結點進行考察,若將該結點對應的子樹替換爲葉子結點能帶來決策樹泛化性能提升,則將該子樹替換爲葉子結點。

優點:相比於預剪枝,泛化能力強

缺點:時間開銷大

 

連續值處理:最簡單的策略是採用二分法對連續屬性進行處理,這是C4.5決策樹算法採用的機制。

 

缺失值處理:

「紋理」在所有屬性中的信息增益值最大,因此,「紋理」被選爲劃分屬性,用於對根節點進行劃分。劃分結果爲:「紋理=稍糊」分支:{7,9,13,14,17},「紋理=清晰」分支:{1,2,3,4,5,6,15},「紋理=模糊」分支:{11,12,16}。如下圖所示:

    那麼問題來了,編號爲{8,10}的樣本在「紋理」這個屬性上是缺失的,該被劃分到哪個分支裏?前面講過了,這兩個樣本會同時進入到三個分支裏,只不過進入到每個分支後權重會被調整(前面也說過,在剛開始時每個樣本的權重都初始化爲1)。編號爲8的樣本進入到三個分支裏後,權重分別調整爲5/15,7/15 和 3/15;編號爲10的樣本同樣的操作和權重。因此,經過第一次劃分後的決策樹如下圖所示: