第九章 樹回歸(代碼)
-
樹回歸算法的優(yōu)缺點
優(yōu)點:可以對復(fù)雜和非線性的問題建模.
缺點:結(jié)果不容易理解.
適用數(shù)據(jù)類型:數(shù)值型和標(biāo)稱型.
-
樹回歸和分類樹的思路類似,且方法如下
-
收集數(shù)據(jù)
- 采用任意方法收集數(shù)據(jù).
-
準(zhǔn)備數(shù)據(jù)
- 需要數(shù)值型的數(shù)據(jù),標(biāo)稱型數(shù)據(jù)應(yīng)該映射成為二值型數(shù)據(jù).
-
分析數(shù)據(jù)
- 匯出數(shù)據(jù)的二維可視化顯示結(jié)果,以字典方式生成樹
-
訓(xùn)練算法
- 大部分時間都花費在葉節(jié)點樹模型的構(gòu)建上.
-
測試算法
- 使用測試數(shù)據(jù)上的R*R值來分析模型的效果.
-
使用算法
- 使用訓(xùn)練出的樹做預(yù)測,預(yù)測結(jié)果還可以來做很多事情.
-
-
連續(xù)和離散型特征的樹的構(gòu)建
-
在樹的構(gòu)建過程中,需要使用到字典,該字典包含以下4個元素
帶切分的特征
待切分的特征值
右子樹
左子樹
-
構(gòu)建樹的偽代碼
找到最佳的待切分特征
如果該節(jié)點不能再分,將該節(jié)點存為葉節(jié)點
執(zhí)行二元切分
在右子樹調(diào)用方法
在左子樹調(diào)用方法
-
-
將CART算法用于回歸
-
在構(gòu)建樹種新增偽代碼
對每個特征
對每個特征值
將數(shù)據(jù)切成兩份
計算切分的誤差
如果當(dāng)前誤差小于當(dāng)前最小誤差,那么將切分設(shè)定為最佳切分并且更新最小誤差
-
-
樹剪枝
一棵樹如果節(jié)點過多,就會出現(xiàn)“過擬合”
通過降低決策樹的復(fù)雜度來避免過擬合的過程稱為剪枝-
預(yù)剪枝方法
定義一個高度,當(dāng)決策樹達到該高度的時候就停止決策樹的增長
達到某個節(jié)點的實例具有相同的特征向量,即使這些實例不屬于同一類,也可以停止決策樹的生長,這個方法對處理數(shù)據(jù)沖突的時候比較有效
定義一個閥值,當(dāng)某個節(jié)點樹小于閥值的時候就可以停止
定義一個閥值,通過計算每次擴張對系統(tǒng)性能的增益,并比較增益值與該閥值大小來決定是否停止決策樹的增長
-
后剪枝方法
-
REP(錯誤率降低剪枝)
刪除以此節(jié)點為根的子樹
使其成為葉子節(jié)點
賦予該節(jié)點關(guān)聯(lián)的訓(xùn)練數(shù)據(jù)的最常見分類
當(dāng)修剪后的樹對于驗證集合的性能不會比原來的樹差時,才真正刪除該節(jié)點
-
PEP(悲觀錯誤剪枝)
根據(jù)剪枝前后錯誤率來判定子樹的修剪。彌補了REP種的缺陷,在評價子樹的訓(xùn)練錯誤公式中添加了一個常數(shù),假定每個葉子節(jié)點都動自動對實例的某個部分進行錯誤的分類
-
缺陷
PEP算法使用的從上往下的剪枝策略,會導(dǎo)致剪枝過度
會出現(xiàn)剪枝失敗的情況
-
CCP(代價復(fù)雜度剪枝)
- 根據(jù)真實的誤差估計選擇最佳決策樹
-
EBP(基于錯誤剪枝)
計算葉節(jié)點的錯分類樣本率估計的置信區(qū)上線為U
計算葉節(jié)點的預(yù)測分類樣本數(shù)
判斷是否剪枝以及如何剪枝
-
-
以下是集中剪枝的方法比較
| REP | PEP | CCP | |
|---|---|---|---|
| 剪枝方式 | 自底向上 | 自頂向下 | 自底向上 |
| 計算復(fù)雜度 | o(n) | o(n) | o(n)*o(n) |
| 誤差估計 | 剪枝集上誤差估計 | 使用連續(xù)糾正 | 標(biāo)準(zhǔn)誤差 |
-
小節(jié)
CART算法可以用于構(gòu)建二元樹并處理離散型和連續(xù)型的切分,該算法構(gòu)建出的樹會傾向于對數(shù)據(jù)過擬合。