[監督式]Decision tree(決策樹)

Decision tree(決策樹)

決策樹可以分為回歸樹或分類樹,決策樹容易overfitting。
常決策樹主要有三種實現,分別是ID3算法,CART算法和C4.5算法。

連續數據

離散數據

這邊我們用data science from scratch的例子來講講決策樹,首先我們有一組數據,這是來應徵者的應徵資料(feature特徵)及面試後是否被錄用(label標籤)。

我們想從過往數據經由特徵將它正確分類到各種標籤,未來依據特徵判斷是否錄用,在決策樹中我們會建立決策路徑來表示樹的結構。

我們如何建立決策路徑呢?首先會先決定一個問題,例如""它們的應徵職等是甚麼,那就是分成3種Junior、Mid、Senior"",然後將資料依問題劃分成不同群組,如果問完問題還沒不同群組中如果還有不同類別(錄用、不錄用)混再一起則再決定一個問題進行切分,直到所有群組都能各自被分為標籤(錄用、不錄用)為止。
樹中每個問題叫做決策節點(decision node)、被已分類的標籤叫做葉節點(leaf node)。

決策樹


CART算法

CART決策樹的生成就是遞歸地構建二叉決策樹的過程,對回歸樹用平方誤差最小化準則,對分類樹用基尼指數最小化準則,進行特徵選擇,生成二叉樹。
CART是一種二分遞歸分割技術,把當前樣本劃分為兩個子樣本,使得生成的每個非葉子結點都有兩個分支,因此CART算法生成的決策樹是結構簡潔的二叉樹。
由於CART構成的是一個二叉樹,它在每一步的決策時只能是「是」或者「否」,把數據分為兩部分。
在CART算法中主要分為兩個步驟:

  1. 將樣本遞歸劃分進行建樹
  2. 用驗證數據進行剪枝

  • 離散型變量如何進行遞歸建立二叉樹?
  1. 選一個自變量,再選取的一個值,把維空間劃分為兩部分,對非連續變量來說屬性值的取值只有兩個,即等於該值或不等於該值。
    ps. 如果特徵有多類別將割成多份各自分為"是某類"與"不是某類"。

  2. 貪婪演算法會選擇不純度或亂度最小的劃分

首先我們要知道如何衡量劃分好壞,我們可以使用entropy(熵)或Gini(不純度),不純度或亂度越低越好。

Gini(不純度):假設我們有K個類,樣本點屬於第k個類的概率為p_k

計算資料的不純度,p_k=第k類在所有樣本中的總數(c_k) / 所有樣本數 (D)。

資料(D)樣本數切分後為(D_1)樣本數與(D_2)樣本數,A表示某切分法(例如以職等切分),我們將切分後資料各自計算不純度後再各自乘以他們資料在總資料的比例,最後加總起來的值就為切分不純度。

而我們就是要找到切分後不純度為最小的A(切分方法)。

我們用phd(是否為博士)做切分來計算,先算D1(phd=yes)、D2(phd=no)
D_1(phd=yes)= (3/14)^2(false) + (3/14)^2(true) = 9/98 =0.0918
D_2(phd=no)= (2/14)^2(false) + (6/14)^2(true) = 10/49 = 0.2041
切分後不純度 = (5/14)*(9/98) + (9/14)*(10/49) = 225/1372 = 0.1640

  1. 遞歸處理,將上面得到的兩部分按步驟(1)(2)重新選取一個屬性繼續劃分,直到把整個空間都劃分完。

  • 連續型變量如何進行遞歸建立二叉樹?
    我們希望劃分後的數據集盡的值可能是集中的,接近訓練樣本的y值(標籤),所以我們對切分後的兩個集合做的y與切分數據的平均y值(c)做MSE,加總起來求最小值,平均值越集中loss越低。
  1. 遍歷變量j(特徵的中的一個連續值變量,例如身高),對固定的切分變量j掃描切分點s,選擇使式子最小的(j,s)。

Rm是被劃分的後輸入空間(劃分後的資料集合)
cmRm中對應標籤的平均值。

  1. 用選定的對(j,s)劃分區域並決定相應的輸出值,繼續對兩個子區域調用步驟(1),(2),直至滿足停止條件。

範例推薦參考
推薦參考


CART回歸樹的生成是一個貪心選擇最優分割點的過程,這種貪心策略在一定程度上使得最開始生成的CART樹具有很多缺點,這表現在樹容易將噪聲也擬合進去,出現過擬合,以及訓練容易陷入局部最優等。為此,需要在樹生成後進行一定的處理,這就是剪枝的目的。

剪枝

實際使用CART樹時,常常將訓練數據分為訓練集和剪枝的數據集

  1. 預剪枝(Pre-Pruning):
    通過調整樹停止生長的策略,如提前終止樹生長(通過調整均方誤差下降的最小值實現)等可實現。
  2. 後剪枝(Post-Pruning):
    將數據根據訓練好的樹模型將數據集遞歸地分割到葉子結點,然後考慮減去葉子和不剪去葉子兩種情況下數據集的均方誤差值,如果剪枝使得該值變小,則剪之,否則放棄。遍歷所有結點,剪去所有冗餘的枝條,就實現了後剪枝。

實作

sklearn Decision Trees

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,583评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,669评论 2 374
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,684评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,682评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,533评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,396评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,814评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,458评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,745评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,789评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,565评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,410评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,828评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,050评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,342评论 1 253
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,793评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,010评论 2 337

推荐阅读更多精彩内容