提升樹

提升樹是以分類樹或迴歸樹爲基本分類器的提升方法,提升樹被認爲是統計學習中性能最好的方法之一。

提升樹模型

提升樹採用向前分步算法,首先確定初始提升樹f0(x) = 0,第m步的模型是:
fm(x) = fm-1(x)+T(x;θm)(CART)
其中,fm-1(x)爲當前模型,通過經驗風險極小化確定下一顆決策樹的參數θm:
在這裏插入圖片描述
參數θ表示書的區域劃分和個區域上的常數。J是迴歸樹的複雜度即葉節點個數。(在這裏找了好久樹的參數是什麼意思看書的時候太大意了,還以爲書中沒提,後來纔看到。。)
迴歸問題的提升樹算法爲:
輸入:訓練數據集T = {(x1,y1),(x2,y2),…,(xN,yN)},
在這裏插入圖片描述
輸出:提升樹fM(x).
(1)初始化f0(x) = 0.
(2)對m = 1,2,…,M.
(a)計算殘差:
在這裏插入圖片描述
(b)擬合殘差通過殘差學習一個迴歸樹,得到T(x;θm)。
©更新fm(x) = fm-1(x)+T(x;θm)
(3)得到迴歸問題提升樹:
在這裏插入圖片描述
例子:
有這樣的數據集:在這裏插入圖片描述
學習這個迴歸樹問題的提升樹模型。
在這裏插入圖片描述
以上這些都是教怎麼去擬合第一顆迴歸樹模型爲CART裏面的ms我的理解爲他就是找到損失最小的區域以及使得最小損失區域的切分點。
在這裏插入圖片描述
根據各切分點算ms,並找到最小的ms。
在這裏插入圖片描述
通過最小的ms擬合第一個迴歸樹T1(x)
f1(x) = T1(x) + f0(x)
到此纔開始提升樹算法的步驟
在這裏插入圖片描述
計算殘差
在這裏插入圖片描述
算平方誤差,需要知道每個迴歸模型的誤差,同時也作爲一個判斷作爲迭代結束的條件。
第二步求T2(x),方法與求T1(x)相同只是擬合的是殘差表中的數據。
同樣需要計算ms,這個ms根據擬合殘差得到的迴歸樹計算,同樣找到最小的ms作爲切分點以及最小誤差切分點劃分的區域,得到第二棵擬合的迴歸樹,在根據加法模型將f1(x)與T2(x)相加得到f2(x),可以看到f2(x)劃分更精確,算出平方損失誤差爲0.79更低了。
繼續更新得到:
T3(X),T4(X),T5(X),T6(X)相加在一起算出平方損失誤差爲0.17
此時我們在之前設一個閾值比如爲0.18誤差小於0.18則不再迭代。最終得到最後的迴歸樹。
在這裏插入圖片描述
最後還有個問題,就是閾值我們設多少爲好,越小就會過擬合,設的大了當然還不好,因此有個想法爲可以有一個測試集進行測試,這樣就可以判別迴歸樹是否可以。但還需考證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章