R語言筆記之樹模型

2021-08-14 14:25:48 字數 2058 閱讀 6346

本文**於《北美資料科學家的私房課》

分類樹(**離散型結果的樹),回歸樹(**連續型結果的樹),**點,根節點,葉節點,節點的度,樹的度,修剪,樹枝(子樹),親節點和子節點。

(本人烏鴉之作,大家了解分類過程就好,大夥稍安勿躁~)

其中長相—-根節點(**點),年齡和經濟狀況—–**點,小鮮肉所在的那些節點是終節點(葉子節點),長相節點的度為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)代價-複雜度調優

-將樹的所有**點都納入修剪的候選名單,對某個**點進行修剪意味著將該**點下的整個子樹都去掉,將該節點設定為葉節點。

這裡資料集被分成3個子集:

(1) 用於訓練完整的樹

(2) 用於修剪

(3) 用於測試最終模型

若對某個節點(**點)進行修剪後的樹,在(2)子集上得到的準確度不小於原來完整樹(2)上的精確度,那麼久進行修剪,並將該節點設定為葉節點。否則保留該節點。

當子集(2)的樣本量比用於訓練的子集(1)少很多時,存在過度修剪的風險。

(3) 誤判率-複雜度修剪

每個**節點對降低誤判率都有前潛在作用,但節點越多,樹越複雜。

這裡的方法就是使者兩者間權衡

計算公式如下:

a(t)可以看做子樹t對應價值的衡量

該修剪過程大致如下:

1.對每個**點計算對應的價值度量a

2.剪去價值最低 節點

3.不斷重複上面過程,產生了森林

4.在森林中選出精確度最高的樹

(4) 最小化誤判率修剪

這是乙個自下而上的過程,目的在於尋找能夠最小化模型在新資料預期誤判率的樹。

修剪預期誤判率公式如下:

該修剪演算法過程如下:

1.在樹的每個非葉節點處,計算該節點修剪後的預期誤判率

2.計算該節點下的子樹未經修剪得到的預期誤判率

3.如果修剪使得預期誤判率提高,那麼不修剪,否則就修剪

R語言筆記

賦值 x 賦多個值 x統計函式 樣本標準差 sd arg 平均數 mean arg 兩個資料間相關性 變動趨勢相關性 cor a,b 線性模型 lm formula,data data linear models 用來做線性擬合的函式 biglm 能以記憶體高效的方式實現大型資料的線性模型擬合 處理...

R語言筆記

r語言正則內容 str grep function pattern,x,ignore.case false,perl false,value false,fixed false,usebytes false invert false pattern 模式 ignore.case 是否忽略大小寫 va...

非線性模型(R語言)

首先,繪製出原資料的散點圖。試下如下 data9.3 attach data9.3 plot x,y 輸出結果為 可以看出,這時y yy與x xx之間呈現出非線性,因此需要對資料進行非線性回歸分析。實現如下 nls9.3 summary nls9.3 eebar sesse prey pybar y...