决策树进阶——剪枝处理
剪枝處理
? ? 決策樹剪枝的基本策略有“預剪枝”和“后剪枝”。
預剪枝,是指在決策樹生成過程中,對每個節(jié)點在劃分前先進行估計,若當前的節(jié)點劃分不能帶來決策樹泛化的提升,則停止劃分并將當前節(jié)點標記為葉子節(jié)點。
后剪枝,是指先從訓練數(shù)據(jù)集中生成一課完整的決策樹,然后自底向上對非葉子節(jié)點進行考察,若將該節(jié)點對應的子樹替換為葉子結點能夠帶來決策樹泛化能力的提升,則將該節(jié)點替換為葉子節(jié)點。
預剪枝
? ??在某個節(jié)點的預剪枝的估計建立在已經(jīng)確定最優(yōu)劃分屬性的前提之上,要不要以該屬性對當前節(jié)點進行劃分,還得先計算泛化能力是否有提高。
在預剪枝中,泛化能力的計算依賴于驗證數(shù)據(jù)集。驗證精度的計算是將驗證數(shù)據(jù)集輸入決策樹模型進行判別,取正例樣本數(shù)量與驗證集樣本數(shù)量的比值(百分比)。劃分前驗證精度由上一步計算給出。泛化能力的提高與否,要對比劃分前后驗證集的大小。
預剪枝基于“貪心”本質(zhì)禁止這些分支的展開,給預剪枝決策樹帶來欠擬合的風險。
后剪枝
? ? 將驗證集輸入到?jīng)Q策樹算法,計算出剪枝前的驗證精度。然后,找到最底下的非葉子結點,(模擬)將其領先的分支去除,取其中數(shù)量最大的分類作為該節(jié)點的判別標記。然后計算剪枝后的驗證精度。通過對比剪枝前后的驗證精度,來確定是否需要進行剪枝。
例子:
? ??
? ? 我們拿臍部作為節(jié)點進行說明,臍部的好瓜有{4,5,8}共3個,壞瓜有{9,11,12,13}共4個,準確率為3/7,大概為42.9%。
分枝后我們有凹陷,稍凹,平坦三個屬性。我們認為凹陷與稍凹是好的,平坦是壞的。凹陷有{4,5,13}共3個,其中2個判斷正確。稍凹有{8,9}共2個,1個判斷正確。平坦有{11,12}共2個,2個判斷正確。故最終準確率為5/7,大概為71.4%,大于42.9%,故該節(jié)點進行分枝操作。
?
剪枝處理總結;
? ? 后剪枝決策樹通常比預剪枝決策樹保留更多的分支,一般情形下,后剪枝決策樹的欠擬合風險小,泛化能力往往優(yōu)于預剪枝。但后剪枝決策樹訓練開銷比預剪枝大得多。
總結
以上是生活随笔為你收集整理的决策树进阶——剪枝处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 揭秘!一篇文章为你全盘剖析健身房管理软件
- 下一篇: CentOS 7安装使用bind9(域名