決策樹(shù)的理解與應(yīng)用

背景

決策樹(shù)??是一種基本的分類(lèi)和回歸的方法【以前總是下意識(shí)以為決策樹(shù)只能用于分類(lèi)谅阿,事實(shí)上還可以用于回歸】抗愁。在分類(lèi)問(wèn)題中闸餐,決策樹(shù)基于特征對(duì)實(shí)例進(jìn)行分類(lèi)茬高,這個(gè)分類(lèi)過(guò)程可以認(rèn)為是if-then的規(guī)則集合,也可以認(rèn)為是特征空間與類(lèi)空間上的條件概率分布吧凉。

NOTE:
if—then規(guī)則集合具有一個(gè)重要的特征:互斥且完備隧出,即每個(gè)實(shí)例都被一條路徑或者一條規(guī)則所覆蓋,而且只能被一條路徑或一條規(guī)則所覆蓋

優(yōu)點(diǎn):簡(jiǎn)單易理解客燕、分類(lèi)速度快

過(guò)程:利用損失函數(shù)最小化原則對(duì)訓(xùn)練集進(jìn)行建模鸳劳,再利用建立好的模型進(jìn)行分類(lèi)。決策樹(shù)的學(xué)習(xí)算法通常是遞歸地選擇最優(yōu)特征也搓,并根據(jù)特征對(duì)訓(xùn)練集進(jìn)行分割赏廓,最終形成從【根結(jié)點(diǎn)->葉子結(jié)點(diǎn)】的樹(shù)模型,但是這樣生成的樹(shù)可以容易發(fā)生過(guò)擬合傍妒,所以需要自底向上修剪?

決策樹(shù)學(xué)習(xí)包括三個(gè)步驟:特征選擇幔摸、決策樹(shù)生成、決策樹(shù)修剪
1.當(dāng)特征數(shù)量較多時(shí)颤练,在學(xué)習(xí)之前先進(jìn)行特征選擇
2.決策樹(shù)生成對(duì)應(yīng)局部最優(yōu)
3.決策樹(shù)修剪對(duì)應(yīng)全局最優(yōu)

目標(biāo):選擇一個(gè)與訓(xùn)練數(shù)據(jù)矛盾較小的決策樹(shù)既忆,同時(shí)具有很好的泛化能力。


特征選擇

通常嗦玖,特征選擇的準(zhǔn)則是信息增益或者信息增益比

先介紹基本概念:


  1. 熵用來(lái)表示隨機(jī)變量不確定的程度患雇,熵越大,不確定程度越大宇挫。
    設(shè)X是一個(gè)取有限值的隨機(jī)變量苛吱,概率分布為P(X=x_i)=p_i,i=1,2,...,n
    那么熵定義為:
    H(X)=-\sum_{i=1}^{n}p_ilogp_i,i=1,2,...,n
    NOTE:
    熵只依賴(lài)X的分布,與X的取值無(wú)關(guān)器瘪,定義0log0=0翠储。

  2. 條件熵
    條件熵H(Y|X)表示在已知隨機(jī)變量X的條件下隨機(jī)變量Y的不確定性。
    定義為:H(Y|X)=\sum_{i=1}^{n}P(X=x_i)H(Y|X=x_i),i=1,2,...,n

  3. 經(jīng)驗(yàn)熵和經(jīng)驗(yàn)條件熵
    當(dāng)熵和條件熵中的概率是由數(shù)據(jù)估計(jì)而得到的橡疼,所對(duì)應(yīng)的熵和條件熵被稱(chēng)為經(jīng)驗(yàn)熵和經(jīng)驗(yàn)條件熵

  4. 信息增益
    特征A對(duì)訓(xùn)練集D的信息增益g(D,A),定義為集合D的經(jīng)驗(yàn)熵與在給定條件AD的經(jīng)驗(yàn)條件熵H(D|A)之差援所,即
    g(D,A)=H(D)-H(D|A)
    特征選擇過(guò)程:對(duì)訓(xùn)練集計(jì)算每個(gè)特征的信息增益,并比較信息增益的大小欣除,選擇信息增益最大是特征住拭。
    算法:
    INPUT:訓(xùn)練數(shù)據(jù)集D和特征A
    OUTPUT:特征A對(duì)訓(xùn)練數(shù)據(jù)D的信息增益g(D,A)
    計(jì)算數(shù)據(jù)集D的經(jīng)驗(yàn)熵**
    H(D)=-\sum_{k=1}^{K}\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}
    計(jì)算特征A對(duì)訓(xùn)練數(shù)據(jù)D的經(jīng)驗(yàn)條件熵H(D|A):**
    H(D|A)=\sum_{i=1}^{n}\frac{|D_i|}{|D|}H(D_i)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_i|}log_2\frac{|D_{ik}|}{|D_i|}
    計(jì)算信息增益**
    g(D,A)=H(D)-H(D|A)

  5. 信息增益比
    由于以信息增益進(jìn)行選擇,那么會(huì)趨于選擇取值較多的特征历帚,所以提出使用信息增益比废酷。
    信息增益比定義為:其信息增益g(D,A)與訓(xùn)練集D關(guān)于特征A的值的熵H_A(D),即
    g_R(D,A)=\frac{g(D,A)}{H_A(D)}
    其中{H_A(D)}=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|}n是特征值A的個(gè)數(shù)抹缕。

決策樹(shù)生成

  1. ID3算法
    核心:在決策樹(shù)各個(gè)結(jié)點(diǎn)上應(yīng)用信息增益準(zhǔn)則選擇特征澈蟆,然后遞歸地構(gòu)建決策樹(shù)。
    過(guò)程:從根結(jié)點(diǎn)開(kāi)始卓研,對(duì)結(jié)點(diǎn)計(jì)算所有可能的特征的信息增益趴俘,選擇信息增益最大的特征作為結(jié)點(diǎn)的特征睹簇,由該特征的不同取值建立子結(jié)點(diǎn),再對(duì)子結(jié)點(diǎn)遞歸地調(diào)用以上方法寥闪,構(gòu)建決策樹(shù)太惠,直到所有的特征信息增益均很小或者沒(méi)有特征可以選擇為止。
    ID3相當(dāng)于用極大似然法進(jìn)行概率模型的選擇
    NOTE:
    由于ID3算法只有樹(shù)的生成疲憋,所以生成的樹(shù)模型容易產(chǎn)生過(guò)擬合現(xiàn)象凿渊。

  2. C4.5算法
    過(guò)程與ID3相似,只是對(duì)ID3進(jìn)行了改進(jìn)缚柳,使用信息增益比來(lái)選擇特征埃脏。


決策樹(shù)剪枝

決策樹(shù)的生成過(guò)程僅考慮到對(duì)訓(xùn)練數(shù)據(jù)集分類(lèi)的準(zhǔn)確性,這樣生成的樹(shù)模型容易出現(xiàn)過(guò)擬合且構(gòu)建的樹(shù)過(guò)于復(fù)雜秋忙,所以有必要對(duì)其進(jìn)行剪枝彩掐。

剪枝:從已生成的樹(shù)上裁掉一些子樹(shù)或者葉結(jié)點(diǎn),并將其根結(jié)點(diǎn)或者父結(jié)點(diǎn)作為新的葉結(jié)點(diǎn)灰追,從而簡(jiǎn)化分類(lèi)樹(shù)模型堵幽。剪枝往往是通過(guò)極小化決策樹(shù)的整體損失函數(shù)來(lái)實(shí)現(xiàn)的

定義損失函數(shù)
設(shè)樹(shù)T的葉結(jié)點(diǎn)個(gè)數(shù)為|T|,t是樹(shù)的葉結(jié)點(diǎn),該葉結(jié)點(diǎn)有N_t個(gè)樣本點(diǎn)弹澎,其中k類(lèi)的樣本點(diǎn)有N_{tk},k=1,2,...,K朴下,其中H_t(T)是葉子結(jié)點(diǎn)t的經(jīng)驗(yàn)熵,\alpha\geq 0為參數(shù)苦蒿,決策樹(shù)學(xué)習(xí)的損失函數(shù)為:
C_a(T)=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T|
其中H_t(T)=-\sum_{k=1}^{K}\frac{N_{tk}}{N_t}log\frac{N_{tk}}{N_t}
所以最終的損失函數(shù)表示為:
C_a(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}log\frac{N_{tk}}{N_t}+\alpha|T|

公式解釋?zhuān)?img class="math-inline" src="https://math.jianshu.com/math?formula=-%5Csum_%7Bt%3D1%7D%5E%7B%7CT%7C%7D%5Csum_%7Bk%3D1%7D%5E%7BK%7DN_%7Btk%7Dlog%5Cfrac%7BN_%7Btk%7D%7D%7BN_t%7D" alt="-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}log\frac{N_{tk}}{N_t}" mathimg="1">是表示模型對(duì)訓(xùn)練集的預(yù)測(cè)誤差殴胧,即模型與訓(xùn)練集的擬合程度,|T|表示模型的復(fù)雜度刽肠,葉子節(jié)點(diǎn)數(shù)越大模型越復(fù)雜,\alpha是調(diào)節(jié)參數(shù)免胃,控制模型的擬合和復(fù)雜程度音五。
當(dāng)\alpha確定時(shí),選擇損失函數(shù)最小的模型羔沙,這里定義的損失函數(shù)其實(shí)等價(jià)于正則化的極大似然估計(jì)躺涝。

算法:
INPUT: 生成算法產(chǎn)生的整個(gè)樹(shù)T,參數(shù)\alpha
OUPUT: 修剪后的子樹(shù)T_a
1.計(jì)算每個(gè)結(jié)點(diǎn)的經(jīng)驗(yàn)熵
2.遞歸地從樹(shù)的葉結(jié)點(diǎn)向上回縮
回縮前后整體樹(shù)的損失函數(shù)比較扼雏,如果回縮前的損失函數(shù)大于回縮后坚嗜,進(jìn)行剪枝。
3.重復(fù)2诗充,直到不能繼續(xù)為止苍蔬,得到損失函數(shù)最小的子樹(shù)T_a


python 代碼實(shí)現(xiàn)


后期加入


總結(jié):決策樹(shù)是一種簡(jiǎn)單快速的分類(lèi)算法,本文不僅把熵相關(guān)的概念給整理了一遍蝴蜓,文中信息增益和信息增益比也可以用于其他模型的特征選擇碟绑,而最后剪枝部分提到的決策樹(shù)的損失函數(shù)是我之前在專(zhuān)門(mén)寫(xiě)的《詳述機(jī)器學(xué)習(xí)中的損失函數(shù)》博客中沒(méi)有提到的俺猿,這里也是一個(gè)補(bǔ)充。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末格仲,一起剝皮案震驚了整個(gè)濱河市押袍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凯肋,老刑警劉巖谊惭,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侮东,居然都是意外死亡圈盔,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)苗桂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)药磺,“玉大人,你說(shuō)我怎么就攤上這事煤伟“┡澹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵便锨,是天一觀的道長(zhǎng)围辙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)放案,這世上最難降的妖魔是什么姚建? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吱殉,結(jié)果婚禮上掸冤,老公的妹妹穿的比我還像新娘。我一直安慰自己友雳,他們只是感情好稿湿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著押赊,像睡著了一般饺藤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上流礁,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天涕俗,我揣著相機(jī)與錄音,去河邊找鬼神帅。 笑死再姑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的找御。 我是一名探鬼主播询刹,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谜嫉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了凹联?” 一聲冷哼從身側(cè)響起沐兰,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔽挠,沒(méi)想到半個(gè)月后住闯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡澳淑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年比原,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杠巡。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡量窘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出氢拥,到底是詐尸還是另有隱情蚌铜,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布嫩海,位于F島的核電站冬殃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏叁怪。R本人自食惡果不足惜审葬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奕谭。 院中可真熱鬧涣觉,春花似錦、人聲如沸血柳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)混驰。三九已至攀隔,卻和暖如春皂贩,著一層夾襖步出監(jiān)牢的瞬間栖榨,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工明刷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留婴栽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓辈末,卻偏偏與公主長(zhǎng)得像愚争,于是被迫代替她去往敵國(guó)和親映皆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355