R語言筆記之樹模型

本文來源於《北美數據科學家的私房課》

樹模型中幾個重要定義詞

分類樹(預測離散型結果的樹),迴歸樹(預測連續型結果的樹),分裂點,根節點,葉節點,節點的度,樹的度,修剪,樹枝(子樹),親節點和子節點。
(本人烏鴉之作,大家瞭解分類過程就好,大夥稍安勿躁~)
這裏寫圖片描述
其中長相—-根節點(分裂點),年齡和經濟狀況—–分裂點,小鮮肉所在的那些節點是終節點(葉子節點),長相節點的度爲2(2條樹枝),整顆樹的度爲4(4條樹枝),我們將王XX枝丫移除,就是修剪;長相是年齡和經濟狀況的親節點,年齡和經濟狀況是長相的子節點。

分裂準則:(對於分類樹(離散因變量))

Gini係數:
它用來衡量一個集合樣本的雜質
例:50個學生,有25個是計算機專業。其中女生30人,5個是計算機專業,男生20人,20人都是計算機專業。
我們用性別變量對計算機專業的學生劃分對應的Gini係數。
女生對應的Gini係數:1/6*5/6+5/6*1/6=5/18
男生對應的Gini係數:
0*1+1*0=0
分類總體的Gini係數:
3/5*5/18+2/5*0=1/6
原觀測的基尼係數是25/50=1/2,進過性別分裂後Gini係數降至1/6,該分裂點對降低Gini係數的貢獻是1/3.
信息增益:

純度越高的節點描述起來需要的信息更少。
對系統的無序度量叫做熵,但系統內樣本是一類是,熵是0,即不存在無序。如果各類樣本比例是50%~50%,那麼熵是1.熵越小越好!

分裂準則(對於迴歸樹)

最小化SSE:(遞歸劃分)
需要將數據集S分成兩組S1,S2,其中S1,S2的選取需要使得整體的誤差平方和達到最小。
樹的修剪:
樹模型需要防止過度擬合,實現方法如下:
1.對樹的大小進行限制
2.對樹進行修剪
通過一些參數來限制樹的大小

(1)每個節點處的最小樣本量(樣本太大,擬合不足,樣本太小,過度擬合)
(2)最大樹深度(樹生長的過深,也會過度擬合)
(3)最大終結點數目(類似於樹深度的限定。參數通常取變量個數的平方根效果最好,不過最好在變量個數的30%~40%區間進行調優)
讓樹先充分生長,再回頭移除一些不顯著的樹枝

實現方法如下:
(1)代價-複雜度調優
即在SSE基礎上加上一個關於終節點數目的罰函數,通過一個調優參數控制罰函數的權重:
2) 降低誤判率修剪
-將樹的所有分裂點都納入修剪的候選名單,對某個分裂點進行修剪意味着將該分裂點下的整個子樹都去掉,將該節點設置爲葉節點。
這裏數據集被分成3個子集:
(1) 用於訓練完整的樹
(2) 用於修剪
(3) 用於測試最終模型
若對某個節點(分裂點)進行修剪後的樹,在(2)子集上得到的準確度不小於原來完整樹(2)上的精確度,那麼久進行修剪,並將該節點設置爲葉節點。否則保留該節點。
當子集(2)的樣本量比用於訓練的子集(1)少很多時,存在過度修剪的風險。
(3) 誤判率-複雜度修剪
每個分裂節點對降低誤判率都有前潛在作用,但節點越多,樹越複雜。
這裏的方法就是使者兩者間權衡
計算公式如下:
a(t)可以看做子樹T對應價值的衡量
該修剪過程大致如下:
1.對每個分裂點計算對應的價值度量a
2.剪去價值最低 節點
3.不斷重複上面過程,產生了森林
4.在森林中選出精確度最高的樹
(4) 最小化誤判率修剪
這是一個自下而上的過程,目的在於尋找能夠最小化模型在新數據預期誤判率的樹。
修剪預期誤判率公式如下:
該修剪算法過程如下:
1.在樹的每個非葉節點處,計算該節點修剪後的預期誤判率
2.計算該節點下的子樹未經修剪得到的預期誤判率
3.如果修剪使得預期誤判率提高,那麼不修剪,否則就修剪

發佈了53 篇原創文章 · 獲贊 27 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章