機(jī)器學(xué)習(xí)系列7:CART樹(shù)和剪枝

一、剪枝

1. 為什么要剪枝

在決策樹(shù)生成的時(shí)候仗岸,更多考慮的是訓(xùn)練數(shù)據(jù)允耿,而不是未知數(shù)據(jù),這會(huì)導(dǎo)致過(guò)擬合扒怖,使樹(shù)過(guò)于復(fù)雜较锡,對(duì)于未知的樣本不準(zhǔn)確。

2. 剪枝的依據(jù)——通過(guò)極小化決策樹(shù)的損失函數(shù)

定義:
設(shè)樹(shù)T的葉節(jié)點(diǎn)個(gè)數(shù)為|T|盗痒,
t 是樹(shù)T的葉節(jié)點(diǎn)蚂蕴,該葉節(jié)點(diǎn)有N_t個(gè)樣本,
其中屬于k類(lèi)的樣本點(diǎn)有N_{tk}個(gè),k = 1,2俯邓,....骡楼,K
H_t(T)是葉節(jié)點(diǎn)的經(jīng)驗(yàn)熵
\alpha \ge 0是超參數(shù)

損失函數(shù)的定義為:C_\alpha(T)=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T|
經(jīng)驗(yàn)熵為:H_t(T)=-\sum_k\frac{N_{tk}}{N_t}log \frac{N_{tk}}{N_t}
代入簡(jiǎn)化:
令:C(T)=\sum_{t=1}^{|T|}N_tH_t(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}log\frac{N_{tk}}{N_t}
則:C_\alpha(T)=C(T)+\alpha|T|

\alpha的作用:

  • 控制著預(yù)測(cè)誤差和樹(shù)復(fù)雜度之間的平衡
  • \alpha大,促使選擇更為簡(jiǎn)單的樹(shù)
  • \alpha小稽鞭,選擇更為復(fù)雜的樹(shù)
  • \alpha = 0鸟整, 只考慮模型與訓(xùn)練數(shù)據(jù)的擬合程度,不考慮復(fù)雜度

3. 剪枝算法

  • 輸入:未剪枝的決策樹(shù)T朦蕴,超參數(shù)\alpha
  • 輸出: 修剪好的樹(shù)T_\alpha
    (1)計(jì)算每個(gè)葉節(jié)點(diǎn)的經(jīng)驗(yàn)熵篮条。
    (2)遞歸的從樹(shù)的葉節(jié)點(diǎn)向上回溯弟头。 設(shè)一組葉節(jié)點(diǎn)回溯到其父節(jié)點(diǎn)之前和之后的整體樹(shù)分別為T_BT_A,若他們的損失函數(shù):C_\alpha(T_A)\le C_\alpha (T_B)即若修剪后的子樹(shù)的損失函數(shù)比原來(lái)更小涉茧,則進(jìn)行剪枝赴恨,將父節(jié)點(diǎn)作為新的葉節(jié)點(diǎn)。
    (3)返回(2)伴栓,知道不能繼續(xù)進(jìn)行伦连,得到損失函數(shù)最小的子樹(shù)T_\alpha

二钳垮、基尼指數(shù)

分類(lèi)過(guò)程中惑淳,假設(shè)有K個(gè)類(lèi),樣本點(diǎn)屬于第k個(gè)類(lèi)的概率為Pk扔枫,則概率分布的基尼指數(shù)定義為:\operatorname{Gini}(p)=\sum_{k=1}^{m} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{K} p_{k}^{2}
對(duì)于二分類(lèi)的問(wèn)題汛聚,若k=1時(shí),概率是p短荐,k=2時(shí)倚舀,概率是(1-p),則:Gini(p)=p(1-p)+(1-p)p=2p-2p^2
對(duì)于給定的樣本集合D忍宋,其基尼指數(shù)為:\operatorname{Gini}(D)=1-\sum_{k=1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2}

三痕貌、CART樹(shù)

CART樹(shù)全稱(chēng)是 classification and regression tree,既可以分類(lèi)(離散數(shù)據(jù))糠排,也可以用于回歸(連續(xù)數(shù)據(jù))舵稠。

3.1 分類(lèi)樹(shù)

如果數(shù)據(jù)集D根據(jù)特征A在某一取值a上進(jìn)行分割,得到D1,D2兩部分后入宦,那么在特征A下集合D的基尼系數(shù)如下所示哺徊。\operatorname{Gini}(D, A)=\frac{|D 1|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{|D 2|}{|D|} \operatorname{Gini}\left(D_{2}\right)
其中基尼系數(shù)Gini(D)表示集合D的不確定性,基尼系數(shù)Gini(D,A)表示A=a分割后集合D的不確定性乾闰÷渥罚基尼指數(shù)越大,樣本集合的不確定性越大涯肩。這一點(diǎn)與熵相似轿钠。

對(duì)于屬性A,分別計(jì)算任意屬性值將數(shù)據(jù)集劃分為兩部分之后的Gini病苗,選取其中的最小值疗垛,作為屬性A得到的最優(yōu)二分方案。然后對(duì)于訓(xùn)練集S硫朦,計(jì)算所有屬性的最優(yōu)二分方案贷腕,選取其中的最小值,作為樣本及S的最優(yōu)二分方案。\begin{array}{c}{\min _{i \in A}\left( \operatorname{Gini}(D, A)\right)} \\ {\min _{A \in \text {Atribute}}\left(\min _{i \in A}\left( \operatorname{Gini}(D, A)\right)\right)}\end{array}

實(shí)例詳解


針對(duì)上述離散型數(shù)據(jù)花履,按照體溫為恒溫和非恒溫進(jìn)行劃分芽世。其中恒溫時(shí)包括哺乳類(lèi)5個(gè)、鳥(niǎo)類(lèi)2個(gè)诡壁,非恒溫時(shí)包括爬行類(lèi)3個(gè)、魚(yú)類(lèi)3個(gè)荠割、兩棲類(lèi)2個(gè)妹卿,如下所示我們計(jì)算D1,D2的基尼指數(shù)。然后計(jì)算得到特征體溫下數(shù)據(jù)集的Gini指數(shù)蔑鹦,最后我們選擇Gini最小的特征和相應(yīng)的劃分夺克。

3.2 回歸樹(shù)

CART回歸樹(shù)預(yù)測(cè)回歸連續(xù)型數(shù)據(jù),假設(shè)X與Y分別是輸入和輸出變量嚎朽,并且Y是連續(xù)變量铺纽。在訓(xùn)練數(shù)據(jù)集所在的輸入空間中,遞歸的將每個(gè)區(qū)域劃分為兩個(gè)子區(qū)域并決定每個(gè)子區(qū)域上的輸出值哟忍,構(gòu)建二叉決策樹(shù)狡门。D=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right),\left(x_{3}, y_{3}\right), \ldots\left(x_{n}, y_{n}\right)\right\}選擇最優(yōu)切分變量j與切分點(diǎn)s:遍歷變量j,對(duì)規(guī)定的切分變量j掃描切分點(diǎn)s锅很,選擇使下式得到最小值時(shí)的(j,s)對(duì)其馏。其中Rm是被劃分的輸入空間,cm是空間Rm對(duì)應(yīng)的固定輸出值爆安。
\min _{j, s}\left[\min _{c_{1}} \sum_{x_{i} \in R_{i}(j, s)}\left(y_{i}-c_{1}\right)^{2}+\min _{c_{2}} \sum_{x_{i} \in R_{i}(j, s)}\left(y_{i}-c_{1}\right)^{2}\right]用選定的(j,s)對(duì)叛复,劃分區(qū)域并決定相應(yīng)的輸出值\begin{array}{c}{R_{1}(j, s)=\left\{x | x^{(j)} \leq s\right\}, R_{2}(j, s)=\left\{x | x^{(j)}>s\right\}} \\ {\hat{c}_{m}=\frac{1}{N_{m}} \sum_{x_{i} \in R_{m}(j, s)} y_{i}} \\ {x \in R_{m}, m=1,2}\end{array}
繼續(xù)對(duì)兩個(gè)子區(qū)域調(diào)用上述步驟,將輸入空間劃分為M個(gè)區(qū)域R1,R2,…,Rm扔仓,生成決策樹(shù)褐奥。f(x)=\sum_{m=1}^{M} \hat{c}_{m} I\left(x \epsilon R_{m}\right)
當(dāng)輸入空間劃分確定時(shí),可以用平方誤差來(lái)表示回歸樹(shù)對(duì)于訓(xùn)練數(shù)據(jù)的預(yù)測(cè)方法翘簇,用平方誤差最小的準(zhǔn)則求解每個(gè)單元上的最優(yōu)輸出值撬码。\sum_{x_{i} \in R_{m}}\left(y_{i}-f\left(x_{i}\right)\right)^{2}

實(shí)例詳解

image.png

考慮如上所示的連續(xù)性變量,根據(jù)給定的數(shù)據(jù)點(diǎn)缘揪,考慮1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5切分點(diǎn)耍群。對(duì)各切分點(diǎn)依次求出R1,R2,c1,c2及m(s),例如當(dāng)切分點(diǎn)s=1.5時(shí)找筝,得到R1={1},R2={2,3,4,5,6,7,8,9,10}蹈垢,其中c1,c2,m(s)如下所示。c_{1}=\frac{1}{N_{m}} \sum_{x_{i} \in R_{m}(j, s)} y_{i}=\frac{1}{1} \sum_{x_{i} \in R_{1}(1,1.5)} 5.56=5.56 c_{2}=\frac{1}{N_{m}} \sum_{x_{i} \in R_{m}(j, s)} y_{i}=\frac{1}{9} \sum_{x_{i} \in R_{2}(1,1,5)}(5.70+5.91+\ldots+9.05)=7.50 m(s)=\min _{j, s}\left[\min _{c_{1}} \sum_{x_{i} \in R_{i}(j, s)}\left(y_{i}-c_{1}\right)^{2}+\min _{c_{2}} \sum_{x_{i} \in R_{i}(j, s)}\left(y_{i}-c_{1}\right)^{2}\right]=0+15.72=15.72
依次改變(j,s)對(duì)袖裕,可以得到s及m(s)的計(jì)算結(jié)果曹抬,如下表所示。

當(dāng)x=6.5時(shí)急鳄,此時(shí)R1={1,2,3,4,5,6},R2={7,8,9,10},c1=6.24,c2=8.9谤民⊙吣穑回歸樹(shù)T1(x)為 當(dāng)輸入空間的劃分確定時(shí),可以用平方誤差來(lái)表示回歸樹(shù)對(duì)于訓(xùn)練數(shù)據(jù)的誤差张足。
我們利用f1(x)擬合訓(xùn)練數(shù)據(jù)的殘差(將原始訓(xùn)練數(shù)據(jù)減去f1(X))触创,如下表所示:

接下來(lái)繼續(xù)對(duì)兩個(gè)子區(qū)域重復(fù)調(diào)用上述步驟,直到平方差滿足要求為止为牍。
最后哼绑,將輸入空間分為M個(gè)子區(qū)域R1...Rm,生成決策樹(shù):

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碉咆,一起剝皮案震驚了整個(gè)濱河市抖韩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疫铜,老刑警劉巖茂浮,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異壳咕,居然都是意外死亡席揽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)囱井,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)驹尼,“玉大人,你說(shuō)我怎么就攤上這事庞呕⌒卖幔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵住练,是天一觀的道長(zhǎng)地啰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)讲逛,這世上最難降的妖魔是什么亏吝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮盏混,結(jié)果婚禮上蔚鸥,老公的妹妹穿的比我還像新娘。我一直安慰自己许赃,他們只是感情好止喷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著混聊,像睡著了一般弹谁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天预愤,我揣著相機(jī)與錄音沟于,去河邊找鬼。 笑死植康,一個(gè)胖子當(dāng)著我的面吹牛旷太,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播销睁,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼泳秀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了榄攀?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤金句,失蹤者是張志新(化名)和其女友劉穎檩赢,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體违寞,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贞瞒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了趁曼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片军浆。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挡闰,靈堂內(nèi)的尸體忽然破棺而出乒融,到底是詐尸還是另有隱情,我是刑警寧澤摄悯,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布赞季,位于F島的核電站,受9級(jí)特大地震影響奢驯,放射性物質(zhì)發(fā)生泄漏申钩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一瘪阁、第九天 我趴在偏房一處隱蔽的房頂上張望撒遣。 院中可真熱鬧,春花似錦管跺、人聲如沸义黎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)轩缤。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間火的,已是汗流浹背壶愤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留馏鹤,地道東北人征椒。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像湃累,于是被迫代替她去往敵國(guó)和親勃救。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容