第四章 決策樹

基本流程

決策樹是一種常用的機(jī)器學(xué)習(xí)方法轮傍,過程類似于樹狀結(jié)構(gòu)每一層通過對(duì)屬性進(jìn)行決策來進(jìn)行分類暂雹。

結(jié)構(gòu)主要有:根節(jié)點(diǎn)(初始的所有數(shù)據(jù)集),內(nèi)部節(jié)點(diǎn)(初步?jīng)Q策結(jié)果)创夜,葉節(jié)點(diǎn)(最終決策結(jié)果)杭跪,路徑(判定決策過程)。

決策樹學(xué)習(xí)基本算法:

輸入:訓(xùn)練集D,屬性集A={a1,a2,...,ad}
過程:函數(shù)TreeGenerate(D,A)
  生成節(jié)點(diǎn)node:
  if D中樣本全屬于統(tǒng)一類別C then
    將node標(biāo)記為C類葉節(jié)點(diǎn);return
  end if 
  if A=空集 or D中樣本在A上取值相同 then
    將node標(biāo)記為葉節(jié)點(diǎn),類別標(biāo)記為D中最多的類;return
  end if
  從A中選擇最優(yōu)劃分屬性a*;
  for a* 的每一個(gè)取值a*v do
    為node生成一個(gè)分支;另Dv表示D在a*上取值為a*v的樣本子集;
    if Dv為空 then
      將分支節(jié)點(diǎn)標(biāo)記為葉節(jié)點(diǎn)涧尿,類別標(biāo)記為D中最多的類;return
    else
      以TreeGenerate(Dv,A\{a*})為分支節(jié)點(diǎn)
    end if
  end for
輸出:以node為根節(jié)點(diǎn)的一顆決策樹

這個(gè)是一個(gè)遞歸過程系奉,其中有三種情況導(dǎo)致遞歸返回:

  • 當(dāng)前節(jié)點(diǎn)所有樣本屬于同一類,不用再劃分
  • 當(dāng)前節(jié)點(diǎn)屬性集空姑廉,不能再劃分(當(dāng)前節(jié)點(diǎn)的后驗(yàn)分布)
  • 當(dāng)前節(jié)點(diǎn)樣本集為空缺亮,不能再劃分(將父節(jié)點(diǎn)的分布當(dāng)成當(dāng)前節(jié)點(diǎn)的先驗(yàn)分布)

劃分選擇

什么樣的劃分屬性是最優(yōu)的?劃分后的結(jié)點(diǎn)中樣本的純度因該是比劃分前高的桥言。因此萌踱,引入了信息熵即度量樣本集合純度的指標(biāo),樣本集合D的信息熵定義為:
Ent(D)=-\sum^{|y|}_{k=1}p_k\log_2p_k
其中p_k為第k類樣本所占的比例号阿。信息熵的值越小并鸵,D的純度越高。

當(dāng)根據(jù)某一屬性a=\lbrace a^1,a^2,\ldots,a^V\rbrace扔涧,對(duì)D進(jìn)行劃分后园担,形成的多個(gè)子結(jié)點(diǎn)的信息熵就是Ent(D^v)。為了比較前后的信息熵變化枯夜,定義信息增益
Gain(D,a)=Ent(D)-\sum^V_{v=1}\frac{|D^v|}{|D|}Ent(D^v)
其中\frac{|D^v|}{|D|}為每個(gè)分支點(diǎn)的權(quán)重弯汰。信息增益越大,就表明通過屬性a劃分得到的子結(jié)點(diǎn)的純度提升越大卤档。

同時(shí)注意到一個(gè)問題蝙泼,信息增益作為度量的時(shí)候,對(duì)于取值數(shù)目多的屬性具有偏愛性劝枣,比如樣本序號(hào)(1汤踏,2,3舔腾,4溪胶,5),如果作為一種劃分屬性稳诚,得到的結(jié)果純度達(dá)到100\%哗脖,但是卻不具有對(duì)新樣本的預(yù)測(cè)能力。因此引入增益率:
Gain_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}
其中:
IV(a)=-\sum^V_{v=1}\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|}
但是扳还,增益率對(duì)于取值數(shù)目少的屬性具有偏愛性才避,因此長使用一種啟發(fā)式:先挑選信息增益高于平均水平的屬性,然后在選取增益率最高的屬性氨距。

CART決策樹是一種著名的決策樹學(xué)習(xí)算法桑逝,分類和回歸任務(wù)都可用。它使用“基尼指數(shù)”來選擇劃分屬性俏让。D的基尼值度量為:
Gini(D)=\sum^{|y|}{k=1}\sum_{k' \not= k}p_kp'_k
=1-\sum^{|y|}_{k=1}p_k^2
指從D中隨機(jī)抽取兩個(gè)樣本不同類的概率楞遏,越小茬暇,D的純度越高。
屬性a的基尼指數(shù)定義為:
Gini_index(D,a)=\sum_{v=1}^V \frac{|D^v|}{|D|}Gini(D^v)
使得劃分后基尼指數(shù)最小的屬性為最優(yōu)屬性寡喝。

剪枝處理

剪枝指對(duì)決策樹進(jìn)行枝干的修剪糙俗,為了應(yīng)對(duì)過擬合現(xiàn)象。分為以下兩種:

  • 預(yù)剪枝
    預(yù)剪枝是在決策樹形成的過程中预鬓,根據(jù)結(jié)點(diǎn)劃分是否提升決策樹整體的泛化性能來決定巧骚。這種方法計(jì)算量比較小,但是因?yàn)槠湄澙诽匦陨好螅赡軐?dǎo)致欠擬合(一些后續(xù)劃分提升泛化性能的枝网缝,會(huì)因?yàn)槌跏紕澐植荒芴嵘夯阅芏髿ⅲ?/li>
  • 后剪枝
    后剪枝是在決策樹形成后,自下而上蟋定,根據(jù)非葉結(jié)點(diǎn)替換為葉節(jié)點(diǎn)是否提高決策樹泛化性能來決定是否替換粉臊。這種方法計(jì)算量比較大,但是不會(huì)欠擬合驶兜,而且多數(shù)情況比預(yù)剪枝的泛化性能要強(qiáng)扼仲。

連續(xù)與缺失值

  • 連續(xù)值處理
    對(duì)于給定的數(shù)據(jù)集D,連續(xù)屬性a=\lbrace a^1,a^2, \dots,a^n\rbrace抄淑,并不能像離散指那樣直接按照取值進(jìn)行劃分屠凶。因此,將連續(xù)屬性的所有取值進(jìn)行肆资,從小到大的排序矗愧,然后a^i,a^{i+1}之間任意的取值劃分效果相同,所以候選劃分點(diǎn)集合為:
    T_a=\lbrace \frac{a^i+a^{i+1}}2|1\leq i \leq n-1\rbrace
    然后就可以按照離散屬性值一樣來考察這些劃分點(diǎn)郑原,選取最優(yōu)劃分點(diǎn)唉韭。例如:
    Gain(D,a)=max_{t \in T_a} Gain(D,a,t)
    =max_{t \in T_a} Ent(D)-\sum_{\lambda \in \lbrace -,+\rbrace}\frac{|D^{\lambda}_t|}{|D|}Ent{D_t^\lambda}
    注意,與離散值不同的是犯犁,連續(xù)屬性在劃分后的后代結(jié)點(diǎn)還可繼續(xù)劃分属愤。
  • 缺失值處理
    給定數(shù)據(jù)集D,缺失屬性a酸役,D'表示屬性a上沒有缺失值的樣本子集住诸,D'^v表示D'在屬性a上不同取值的樣本子集,D'_k表示D'中的第幾類樣本涣澡。
    問題主要是在存在屬性值缺失的情況下贱呐,選擇劃分屬性,并且進(jìn)行劃分入桂。先要進(jìn)行準(zhǔn)備工作:
    首先吼句,每個(gè)樣本初始化權(quán)重w_x(取值1),然后定義:
    \rho=\frac{\sum_{x \in D'}w_x}{\sum_{x \in D}w_x}
    p'^k=\frac{\sum_{x \in D'_k}w_x}{\sum_{x \in D'}w_x}
    r'_v=\frac{\sum_{x \in D'^v}w_x}{\sum_{x \in D'}w_x}
    根據(jù)這些式子就可以將信息增益推廣:
    Gain(D,a)=\rho \times Gain(D',a)
    =\rho \times(Ent(D')-\sum^V_{v=1}r'_vEnt(D'^v))
    其中:
    Ent(D')=-\sum_{k=1}^{|y|}p'_k \log_2 p'_k
    劃分的過程中事格,樣本在屬性a上的取值已知惕艳,直接劃分對(duì)應(yīng)的子結(jié)點(diǎn),權(quán)重保持w_x驹愚,如果未知远搪,同時(shí)劃入所有子結(jié)點(diǎn),權(quán)重調(diào)整為r'_v \cdot x_x逢捺。

多變量決策樹

多變量決策樹在劃分的時(shí)候不再是針對(duì)一個(gè)屬性谁鳍,而是針對(duì)多個(gè)屬性的組合。

我們把每個(gè)屬性看做一個(gè)坐標(biāo)軸劫瞳,d個(gè)屬性的樣本就對(duì)應(yīng)了d維空間中的一個(gè)點(diǎn)倘潜,分類就相當(dāng)與尋找一個(gè)邊界將點(diǎn)劃分開。決策樹的劃分有個(gè)特點(diǎn)就是志于,形成的劃分界面是多段與坐標(biāo)軸平行的線段組成(單每層單屬性劃分)涮因。每一段對(duì)應(yīng)了某個(gè)屬性的取值,解釋性強(qiáng)伺绽,但是運(yùn)算量比較大养泡。因此想要通過平滑的斜線來代替這些線段,這樣可以簡化模型奈应,同時(shí)達(dá)到分類效果澜掩,即每次劃分采用多屬性的組合:
\sum^d_{i-1}w_ia_i=t
其中w_i為屬性a_i的權(quán)重,t代表線性分類器杖挣,w_it都可以在該結(jié)點(diǎn)對(duì)應(yīng)樣本集和屬性集上學(xué)得肩榕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市惩妇,隨后出現(xiàn)的幾起案子株汉,更是在濱河造成了極大的恐慌,老刑警劉巖屿附,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件郎逃,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡挺份,警方通過查閱死者的電腦和手機(jī)褒翰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匀泊,“玉大人优训,你說我怎么就攤上這事「髌福” “怎么了揣非?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長躲因。 經(jīng)常有香客問我早敬,道長忌傻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任搞监,我火速辦了婚禮水孩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘琐驴。我一直安慰自己俘种,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布绝淡。 她就那樣靜靜地躺著宙刘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牢酵。 梳的紋絲不亂的頭發(fā)上悬包,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音茁帽,去河邊找鬼玉罐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛潘拨,可吹牛的內(nèi)容都是我干的吊输。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铁追,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼季蚂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起琅束,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤扭屁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后涩禀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體料滥,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年艾船,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葵腹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屿岂,死狀恐怖践宴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爷怀,我是刑警寧澤阻肩,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站运授,受9級(jí)特大地震影響烤惊,放射性物質(zhì)發(fā)生泄漏乔煞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一撕氧、第九天 我趴在偏房一處隱蔽的房頂上張望瘤缩。 院中可真熱鬧,春花似錦伦泥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至刻诊,卻和暖如春防楷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背则涯。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工复局, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粟判。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓亿昏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親档礁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子角钩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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

  • (圖片來源網(wǎng)絡(luò)) 1. 章節(jié)主要內(nèi)容 決策樹是機(jī)器學(xué)習(xí)的一類常見算法,其核心思想是通過構(gòu)建一個(gè)樹狀模型來對(duì)新樣本進(jìn)...
    閃電隨筆閱讀 5,255評(píng)論 3 14
  • 積跬步以致千里,積怠惰以致深淵 注:本篇文章在整理時(shí)主要參考了 周志華 的《機(jī)器學(xué)習(xí)》呻澜。 主要內(nèi)容 決策樹是機(jī)器學(xué)...
    指尖上的魔術(shù)師閱讀 1,394評(píng)論 0 5
  • [TOC] 分類基本概念递礼、決策樹與模型評(píng)估 基本概念 分類:確定對(duì)象屬于哪個(gè)預(yù)定義的目標(biāo)類(目標(biāo)類的總體是已知的)...
    hyfine閱讀 3,100評(píng)論 0 0
  • 第 3 章 決策樹 [TOC] 本章內(nèi)容 決策樹簡介 在數(shù)據(jù)集中度量一致性 使用遞歸構(gòu)造決策樹 使用 Matplo...
    涼秋_不見春暖閱讀 1,651評(píng)論 1 3
  • 分層的目的其實(shí)是為了當(dāng)程序某一層變動(dòng)時(shí),對(duì)其他層么有影響羹幸,這樣程序就不是一坨當(dāng)有改動(dòng)時(shí)就會(huì)很小脊髓, 其中觀察者模式就...
    freezml閱讀 361評(píng)論 0 0