CART決策樹剪枝個人理解

2021-09-14 06:13:58 字數 1983 閱讀 5803

@cart決策樹剪枝個人理解

在看統計學習方法關於cart樹的剪枝是,感覺書上講得很迷惑,因此基於其他部落格以及書上內容得出自己的理解。

首先確定cart樹的損失函式:c∂(t) = c(t)+∂|t|;式中c(t)表示**的精度,即子樹t的錯誤數量/測試集數量,|t|表示子樹t的葉子節點數量;c∂(t)表示子樹t的整體損失。

c∂(t) = c(t)+∂ 表示以樹t為根節點的子樹t被剪枝之後的損失函式,樹t被剪枝之後只剩乙個葉節點,因此,為這個。

c∂(tt) = c(tt)+∂|tt| 表示以樹t為根節點的子樹tt未被剪枝時的損失函式

對於cart樹而言,當∂很小時,趨近於0,則可認為樹的複雜度對整體損失函式無影響,因此為保證樹的精度,採取不剪枝的操作,即這裡可認為:c∂(tt) <c∂(t)

對於cart樹而言,當∂很大時,趨近於正無窮,則可認為樹的複雜度對整體損失函式而言佔主要影響,因此為保證樹的精度,採取剪枝的操作,即這裡可認為:c∂(tt) >c∂(t)

所以:在∂由0—>∞的變化時,對於某乙個以t為根節點的子樹tt總有乙個∂會使c∂(tt) =c∂(t) ;現在,就求使c∂(tt) =c∂(t)的 ∂

c(t)+∂ = c(tt)+∂|tt| ==》∂ =(c(t)−c(tt))/(|t|−1)

即:對於以t為根節點的子樹tt,當∂>(c(t)−c(tt))/(|t|−1) 時,就可進行對以t為根節點的子樹的剪枝了。即將子節點t變為其所含例項最多的類別。或者對於回歸樹而言,變為在t時刻求均值;對其求誤差,也是求取其對應的均方差。

下一步:剪枝之後的子樹向上遞迴對於下乙個節點,分析其c∂(t)與c∂(tt) 的大小關係。

因此對於訓練集生成的cart樹,其剪枝的思想是:

初始化子樹t0,找到cart樹最下面的以t為根節點的子樹tt,判斷其是否需要剪枝

剪枝後的整體損失函式:c∂(t) = c(t)+∂

剪枝前的整體損失函式:c∂(tt) = c(tt)+∂|tt|

隨著∂的0—>∞的變化過程,有c∂(tt)< c∂(t) ====》c∂(tt)= c∂(t) ====》c∂(tt)>c∂(t)的變化。

令g(t)=(c(t)−c(tt))/(|t|−1),並將g(t)賦值給∂1,

所以,當∂>∂1時,則可認為對以t為根節點的子樹tt進行剪枝,生成新的決策樹t1。並又重新觀察剪枝後的cart樹,對於新的以t為根節點的子樹tt,又需要判斷剪枝前與剪枝後的整體損失函式之間的大小關係。

對於新的以t為根節點的子樹tt,隨著∂的∂1—>∞的變化過程,存在c∂(tt)< c∂(t) ====》c∂(tt)= c∂(t) ====》c∂(tt)>c∂(t)的變化。

令g(t)=(c(t)−c(tt))/(|t|−1),並將g(t)賦值給∂2。且由於隨著∂的增加,c∂(tt)與c∂(t)都在不斷增加。所以:在[∂1,∂2)之間,有∂1是對應著最小的整體損失函式。即t1是該區間內最優的cart子樹。

當∂=∂2時,在t1的基礎上最新的以t為根節點的子樹tt而言,此時剪枝與不剪枝的整體損失函式相同,因此可以把它歸為剪枝一類。當∂>∂2時,判定為對t1進行剪枝,得到新的cart子樹t2

隨著∂的∂2—>∞的變化過程,對於t2而言,又存在乙個新的最小的以t為根節點的子樹tt,分析其剪枝前與剪枝後的整體損失函式:又有:c∂(tt)< c∂(t) ====》c∂(tt)= c∂(t) ====》c∂(tt)>c∂(t)的變化。

因此,對該新的t又基於∂3=(c(t)−c(tt))/(|t|−1) 可以得到t3

在判定t3之前,在[∂2,∂3)之間,對於t2而言,是需要剪枝的,對於t3而言,不需要剪枝,此時t3可視為等於t2。c∂(t)與 c∂(tt)都是隨著∂的增大而增大;因此可認為t2是[∂2,∂3)之間最優的子樹。

隨著∂的逐漸增加,cart決策樹不斷對最低的子節點判斷是否需要剪枝。因此可以確定在不同區間[∂i,∂i+1)內的最優子樹ti,對於最後:原始的cart樹最終變為只有根節點的單樹tn,沒有分叉,此時對應的區間為[∂n,∞)。

上述得到了一系列的子樹[t0,t1,……,tn],選擇所有子樹中整體損失函式最低的子樹,其對應的∂i因此也可以確定。

cart決策樹剪枝的個人理解

先說好前面部分我引用自以下這篇文章的,我不想寫了 我們這裡用的是代價複雜度剪枝演算法。首先我們將一顆充分生長的樹稱為t0 我們希望減少樹的大小來防止過擬化,但又擔心去掉一些節點後 的誤差會增大,那麼如何達到這兩個變數之間的平衡則是問題的關鍵,因此我們用乙個變數 來平衡,因此損失函式定義為如下 t為任...

決策樹的剪枝和CART演算法

在資料探勘中,決策樹主要有兩種型別 分類樹的輸出是樣本的類標。針對y是離散變數。回歸樹的輸出是乙個實數 例如房子的 病人呆在醫院的時間等 針對y是連續變數。cart與id3區別 cart中用於選擇變數的不純性度量是gini指數 如果目標變數是標稱的,並且是具有兩個以上的類別,則cart可能考慮將目標...

決策樹的補充 剪枝與CART樹

1.剪枝 預剪枝顯著減少了決策樹的訓練時間,但另一方面,預剪枝本質上禁止這些分支展開,所以可能帶來欠擬合的風險。通常採用留出法進行驗證,將一部分訓練集劃分為驗證集。後剪枝決策樹的欠擬合風險小,泛化能力往往優於預剪枝,但是後剪枝過程是在生成決策樹之後進行的,所以訓練時間肯定比預 剪枝高出很多。2.ca...