Decision Tree決策樹

先來看個例子
一個女孩的母親要給這個女孩介紹男朋友,于是有了下面的對話:
女兒:多大年紀了?
母親:26。
女兒:長的帥不帥?
母親:挺帥的。
女兒:收入高不?
母親:不算很高,中等情況。
女兒:是公務員不?
母親:是,在稅務局上班呢。
女兒:那好,我去見見。


這個女孩的決策過程就是典型的分類樹決策。相當于通過年齡、長相、收入和是否公務員對將男人分為兩個類別:見和不見。假設這個女孩對男人的要求是:30歲以下、長相中等以上并且是高收入者或中等以上收入的公務員,那么這個可以用下圖表示女孩的決策邏輯


決策樹(decision tree)是一個樹結構(可以是二叉樹或非二叉樹)。其每個非葉節點表示一個特征屬性上的測試,每個分支代表這個特征屬性在某個值域上的輸出,而每個葉節點存放一個類別。使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特征屬性,并按照其值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作為決策結果。本質上來講,決策樹就是基于已知數據中總結出來的一組分類規則。

可以看到,決策樹的決策過程非常直觀,容易被人理解。目前決策樹已經成功運用于醫學、制造產業、天文學、分支生物學以及商業等諸多領域。知道了決策樹的定義以及其應用方法,下面介紹決策樹的構造算法。


問題描述

從給定的訓練數據集中,依據特征選擇的準則,遞歸的選擇最優劃分特征,并根據此特征將訓練數據進行分割,使得各子數據集有一個最好的分類的過程。

  • 輸入:訓練數據集 D = {(x1,y1),(x2,y2),..,(xN,yN)}

    xi = (xi(1),xi(2),...,xi(n))為輸入實例(特征向量)
    n為特征個數
    yi ∈ {1,2,...,K}為類標記
    N為樣本容量

  • 算法三要素:

    1. 特征選擇 (準則:信息增益,信息增益率,基尼指數)
    2. 決策樹生成 ( 使用滿足劃分準則的特征不斷的將數據集劃分為純度更高,不確定性更小的子集的過程。)
    3. 決策樹剪枝
  • 輸出:一組分類規則

  • 損失函數:正則化的極大似然函數

  • 學習策略:以損失函數為目標函數的最小化

特征選擇準則:
目的:使用某特征對數據集劃分之后,各數據子集的純度要比劃分前的數據集D的純度高(不確定性要比劃分前數據集D的不確定性低。)
注意:
1. 劃分后的純度為各數據子集的純度的加和(子集占比×子集的經驗熵)。
2. 度量劃分前后的純度變化用子集的純度之和與劃分前的數據集D的純度進行對比。

特征選擇的準則就是度量樣本集合不確定性以及純度的方法。本質相同,定義不同而已。


熵就是用來度量隨機變量的不確定性(純度)。
定義:假設隨機變量X的可能取值有x1,x2, ... , xn
對于每一個可能的取值xi,其概率 P(X=xi) = pi , i = 1,2, ... , n。則,隨機變量X的熵:


對于樣本集合D來說,隨機變量X是樣本的類別,即,假設樣本有k個類別,每個類別的概率是

其中|Ck|表示類別k的樣本個數,|D|表示樣本總數
則對于樣本集合D來說熵(經驗熵)為:


決策樹構造

1.信息增益( ID3算法 )

定義: 以某特征劃分數據集前后的熵的差值

在熵那部分提到了,熵可以表示樣本集合的不確定性,熵越大,樣本的不確定性就越大。因此可以使用劃分前后集合熵的差值來衡量使用當前特征對于樣本集合D劃分效果的好壞。

劃分前樣本集合D的熵是一定的 ,entroy(前),
使用某個特征A劃分數據集D,計算劃分后的數據子集的熵entroy(后)
信息增益 = entroy(前) - entroy(后)
書中公式:

做法:計算使用所有特征劃分數據集D,得到多個特征劃分數據集D的信息增益,從這些信息增益中選擇最大的,因而當前結點的劃分特征便是使信息增益最大的劃分所使用的特征。

信息增益的理解:對于待劃分的數據集D,其 entroy(前)是一定的,但是劃分之后的熵 entroy(后)是不定的,entroy(后)越小說明使用此特征劃分得到的子集的不確定性越小(也就是純度越高),因此 entroy(前) - entroy(后)差異越大,說明使用當前特征劃分數據集D的話,其純度上升的更快。而我們在構建最優的決策樹的時候總希望能更快速到達純度更高的集合,這一點可以參考優化算法中的梯度下降算法,每一步沿著負梯度方法最小化損失函數的原因就是負梯度方向是函數值減小最快的方向。同理:在決策樹構建的過程中我們總是希望集合往最快到達純度更高的子集合方向發展,因此我們總是選擇使得信息增益最大的特征來劃分當前數據集D。

  • 缺點:信息增益偏向取值較多的特征
  • 原因:當特征的取值較多時,根據此特征劃分更容易得到純度更高的子集,因此劃分之后的熵更低,由于劃分前的熵是一定的,因此信息增益更大,因此信息增益比較 偏向取值較多的特征。

2.信息增益比( C4.5算法 )

信息增益比 = 懲罰參數 * 信息增益
書中公式:


注意:其中的HA(D),對于樣本集合D,將當前特征A作為隨機變量(取值是特征A的各個特征值),求得的經驗熵。
(之前是把集合類別作為隨機變量,現在把某個特征作為隨機變量,按照此特征的特征取值對集合D進行劃分,計算熵HA(D))

信息增益比本質: 是在信息增益的基礎之上乘上一個懲罰參數。特征個數較多時,懲罰參數較小;特征個數較少時,懲罰參數較大。
懲罰參數:數據集D以特征A作為隨機變量的熵的倒數,即:將特征A取值相同的樣本劃分到同一個子集中(之前所說數據集的熵是依據類別進行劃分的)

  • 缺點:信息增益比偏向取值較少的特征
  • 原因: 當特征取值較少時HA(D)的值較小,因此其倒數較大,因而信息增益比較大。因而偏向取值較少的特征。
  • 使用信息增益比:基于以上缺點,并不是直接選擇信息增益率最大的特征,而是現在候選特征中找出信息增益高于平均水平的特征,然后在這些特征中再選擇信息增益率最高的特征。

3.基尼指數( CART算法 ---分類樹)

基尼指數(Gini不純度)表示在樣本集合中一個隨機選中的樣本被分錯的概率

注意:Gini指數越小表示集合中被選中的樣本被分錯的概率越小,也就是說集合的純度越高,反之,集合越不純。

即 基尼指數(基尼不純度)= 樣本被選中的概率 * 樣本被分錯的概率

書中公式:



樣本集合D的Gini指數 : 假設集合中有K個類別,則:


基于特征A劃分樣本集合D之后的基尼指數:

需要注意:CART是個二叉樹,也就是當使用某個特征劃分樣本集合只有兩個集合:1. 等于給定的特征值 的樣本集合D1 , 2 不等于給定的特征值 的樣本集合D2

實際上是對擁有多個取值的特征的二值處理

舉個例子,假設現在有特征 “學歷”,此特征有三個特征取值: “本科”,“碩士”, “博士”,當使用“學歷”這個特征對樣本集合D進行劃分時,劃分值分別有三個,因而有三種劃分的可能集合,劃分后的子集如下:

  • 劃分點: “本科”,劃分后的子集合 : {本科},{碩士,博士}
  • 劃分點: “碩士”,劃分后的子集合 : {碩士},{本科,博士}
  • 劃分點: “博士”,劃分后的子集合 : {博士},{本科,碩士}

對于上述的每一種劃分,都可以計算出基于 劃分特征= 某個特征值 將樣本集合D劃分為兩個子集的純度:


因而對于一個具有多個取值(超過2個)的特征,需要計算以每一個取值作為劃分點,對樣本D劃分之后子集的純度Gini(D,Ai),(其中Ai 表示特征A的可能取值)

然后從所有的可能劃分的Gini(D,Ai)中找出Gini指數最小的劃分,這個劃分的劃分點,便是使用特征A對樣本集合D進行劃分的最佳劃分點。


剪枝

在實際構造決策樹時,通常要進行剪枝,這時為了處理由于數據中的噪聲和離群點導致的過分擬合問題,即減少決策樹模型的復雜度。

剪枝有兩種:

  • 先剪枝——在構造過程中,當某個節點滿足剪枝條件,則直接停止此分支的構造。
  • 后剪枝——先構造完成完整的決策樹,再通過某些條件遍歷樹進行剪枝。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容

  • 快過年了,下著雪,家的感覺更是溫暖。各家各戶把屋前的雪清掃到兩旁成小雪堆,晶瑩的白雪顯得有些不那么剔透,讓人并...
    BabyVan閱讀 221評論 0 0
  • 目 錄 上一章 數學競賽如期舉行 第二十七章 靜待家長會 柳如煙正在學校大門等待路一鳴放學出來時,卻...
    青梅夢語閱讀 492評論 9 25
  • 笛聲悠揚蕩蓮中 水波流轉望晴空 彼岸花開鳥飛過 平淡是真最從容
    溪水音閱讀 319評論 11 12
  • 彤最近總有事沒事聯系我,這讓我不大自在。 我們相過親,說實話,我壓根沒瞧上他。目光總是斜著,像做了壞事,不敢正眼看...
    迷霧中奔跑閱讀 350評論 0 0
  • 【讀書心語】日常生活創造人的品性,磨煉人的感性。一個人的素顏和本質都可以在日常中體現,所以要用“美”為標準,確立我...
    佛前的那朵青蓮閱讀 269評論 0 1