認(rèn)真的聊一聊決策樹和隨機(jī)森林


隨機(jī)森林是一種簡(jiǎn)單又實(shí)用的機(jī)器學(xué)習(xí)算法。

“隨機(jī)“表示2種隨機(jī)性,即每棵樹的訓(xùn)練樣本、訓(xùn)練特征隨機(jī)選取。

多棵決策樹組成了一片“森林”,計(jì)算時(shí)由每棵樹投票或取均值的方式來決定最終結(jié)果,體現(xiàn)了三個(gè)臭皮匠頂個(gè)諸葛亮的中國傳統(tǒng)民間智慧。

那我們?cè)撊绾卫斫鉀Q策樹和這種集成思想呢?

1、決策樹

以分類任務(wù)為代表的決策樹模型,是一種對(duì)樣本特征構(gòu)建不同分支的樹形結(jié)構(gòu)。

決策樹由節(jié)點(diǎn)和有向邊組成,其中節(jié)點(diǎn)包括內(nèi)部節(jié)點(diǎn)(圓)和葉節(jié)點(diǎn)(方框)。內(nèi)部節(jié)點(diǎn)表示一個(gè)特征或?qū)傩裕~節(jié)點(diǎn)表示一個(gè)具體類別。

預(yù)測(cè)時(shí),從最頂端的根節(jié)點(diǎn)開始向下搜索,直到某一個(gè)葉子節(jié)點(diǎn)結(jié)束。下圖的紅線代表了一條搜索路線,決策樹最終輸出類別C。

決策樹的特征選擇

假如有為青年張三想創(chuàng)業(yè),但是摸摸口袋空空如也,只好去銀行貸款。

銀行會(huì)綜合考量多個(gè)因素來決定是否給他放貸。例如,可以考慮的因素有性別、年齡、工作、是否有房、信用情況、婚姻狀況等等。

這么多因素,哪些是重要的呢?

這就是特征選擇的工作。特征選擇可以判別出哪些特征最具有區(qū)分力度(例如“信用情況”),哪些特征可以忽略(例如“性別”)。特征選擇是構(gòu)造決策樹的理論依據(jù)。

不同的特征選擇,生成了不同的決策樹。

決策樹的特征選擇一般有3種量化方法:信息增益、信息增益率、基尼指數(shù)

信息增益

在信息論中,表示隨機(jī)變量不確定性的度量。假設(shè)隨機(jī)變量X有有限個(gè)取值,取值xi對(duì)應(yīng)的概率為pi,則X的熵定義為:

如果某件事一定發(fā)生(太陽東升西落)或一定不發(fā)生(釣魚島是日本的),則概率為1或0,對(duì)應(yīng)的熵均為0

如果某件事可能發(fā)生可能不發(fā)生(天要下雨,娘要嫁人),概率介于0到1之間,熵大于0。

由此可見,熵越大,隨機(jī)性越大,結(jié)果越不確定

我們?cè)賮砜匆豢?strong>條件熵,表示引入隨機(jī)變量Y對(duì)于消除X不確定性的程度。假如X、Y相互獨(dú)立,則X的條件熵和熵有相同的值;否則條件熵一定小于熵。

明確了這兩個(gè)概念,理解信息增益就比較方便了。現(xiàn)在我們有一份數(shù)據(jù)集D(例如貸款信息登記表)和特征A(例如年齡),則A的信息增益就是D本身的熵與特征A給定條件下D的條件熵之差,即:

數(shù)據(jù)集D的熵是一個(gè)常量。信息增益越大,表示條件熵越小,A消除D的不確定性的功勞越大。

所以要優(yōu)先選擇信息增益大的特征,它們具有更強(qiáng)的分類能力。由此生成決策樹,稱為ID3算法

信息增益率

當(dāng)某個(gè)特征具有多種候選值時(shí),信息增益容易偏大,造成誤差。引入信息增益率可以校正這一問題。

信息增益率為信息增益與數(shù)據(jù)集D的熵之比:

同樣,我們優(yōu)先選擇信息增益率最大的特征,由此生成決策樹,稱為C4.5算法。

基尼指數(shù)

基尼指數(shù)是另一種衡量不確定性的指標(biāo)。

假設(shè)數(shù)據(jù)集D有K個(gè)類,樣本屬于第K類的概率為pk,則D的基尼指數(shù)定義為:

其中:

Ck是D中屬于第k類的樣本子集。

如果數(shù)據(jù)集D根據(jù)特征A是否取某一可能值a被分割成D1和D2兩部分,則在給定特征A的條件下,D的基尼指數(shù)為:

容易證明基尼指數(shù)越大,樣本的不確定性也越大,特征A的區(qū)分度越差。

我們優(yōu)先選擇基尼指數(shù)最小的特征,由此生成決策樹,稱為CART算法

決策樹剪枝

決策樹生成算法遞歸產(chǎn)生一棵決策樹,直到結(jié)束劃分。什么時(shí)候結(jié)束呢?

  • 樣本屬于同一種類型
  • 沒有特征可以分割

這樣得到的決策樹往往對(duì)訓(xùn)練數(shù)據(jù)分類非常精準(zhǔn),但是對(duì)于未知數(shù)據(jù)表現(xiàn)比較差。

原因在于基于訓(xùn)練集構(gòu)造的決策樹過于復(fù)雜,產(chǎn)生過擬合。所以需要對(duì)決策樹簡(jiǎn)化,砍掉多余的分支,提高泛化能力。

決策樹剪枝一般有兩種方法:

  • 預(yù)剪枝:在樹的生成過程中剪枝。基于貪心策略,可能造成局部最優(yōu)
  • 后剪枝:等樹全部生成后剪枝。運(yùn)算量較大,但是比較精準(zhǔn)

決策樹剪枝往往通過極小化決策樹整體的損失函數(shù)實(shí)現(xiàn)

假設(shè)樹T有|T|個(gè)葉子節(jié)點(diǎn),某一個(gè)葉子節(jié)點(diǎn)t上有Nt個(gè)樣本,其中k類的樣本有 Ntk個(gè),Ht(T)為葉子節(jié)點(diǎn)t的熵,alpha是參數(shù),則決策樹的損失函數(shù)定義為:

其中熵為:

損失函數(shù)第一項(xiàng)為訓(xùn)練誤差,第二項(xiàng)為模型復(fù)雜度,用參數(shù)alpha來衡量二者的比重。

CART算法

CART表示分類回歸決策樹,同樣由特征選擇、樹的生成及剪枝組成,可以處理分類和回歸任務(wù)。

相比之下,ID3和C4.5算法只能處理分類任務(wù)

CART假設(shè)決策樹是二叉樹,內(nèi)部結(jié)點(diǎn)特征的取值為“是”和“否”,依次遞歸地二分每個(gè)特征。

CART 對(duì)回歸樹采用平方誤差最小化準(zhǔn)則,對(duì)分類樹用基尼指數(shù)最小化準(zhǔn)則

2、bagging集成

機(jī)器學(xué)習(xí)算法中有兩類典型的集成思想:bagging和bossting。

bagging是一種在原始數(shù)據(jù)集上,通過有放回抽樣分別選出k個(gè)新數(shù)據(jù)集,來訓(xùn)練分類器的集成算法。分類器之間沒有依賴關(guān)系。

隨機(jī)森林屬于bagging集成算法。通過組合多個(gè)弱分類器,集思廣益,使得整體模型具有較高的精確度和泛化性能

3、隨機(jī)森林

我們將使用CART決策樹作為弱學(xué)習(xí)器的bagging方法稱為隨機(jī)森林

隨機(jī)森林

由于隨機(jī)性,隨機(jī)森林對(duì)于降低模型方差效果顯著。故隨機(jī)森林一般不需要額外剪枝,就能取得較好的泛化性能。

相對(duì)而言,模型對(duì)于訓(xùn)練集的擬合程度就會(huì)差一些,相比于基于boosting的GBDT模型,偏差會(huì)大一些。

另外,隨機(jī)森林中的樹一般會(huì)比較深,以盡可能地降低偏差;而GBDT樹的深度會(huì)比較淺,通過減少模型復(fù)雜度來降低方差(面試考點(diǎn))

最后,我們總結(jié)一下隨機(jī)森林都有哪些優(yōu)點(diǎn):

  • 采用了集成算法,精度優(yōu)于大多數(shù)單模型算法
  • 在測(cè)試集上表現(xiàn)良好,兩個(gè)隨機(jī)性的引入降低了過擬合風(fēng)險(xiǎn)?
  • 樹的組合可以讓隨機(jī)森林處理非線性數(shù)據(jù)
  • 訓(xùn)練過程中能檢測(cè)特征重要性,是常見的特征篩選方法?
  • 每棵樹可以同時(shí)生成,并行效率高,訓(xùn)練速度快
  • 可以自動(dòng)處理缺省值?

如果您覺得這篇文章對(duì)您有幫助,歡迎點(diǎn)贊,讓更多的人也能看到這篇內(nèi)容 ??

關(guān)注公眾號(hào)「NLP情報(bào)局」,第一時(shí)間閱讀自然語言處理、機(jī)器學(xué)習(xí)算法熱乎干貨~

參考資料

[1] 隨機(jī)森林原理介紹與適用情況(綜述篇)

[2] 李航《統(tǒng)計(jì)學(xué)習(xí)方法》第二版,第五章 決策樹.(p67-p88)

推薦閱讀

[1] 從BERT、XLNet到MPNet,細(xì)看NLP預(yù)訓(xùn)練模型發(fā)展變遷史

[2] 文本匹配利器:從孿生網(wǎng)絡(luò)到Sentence-BERT綜述

[3] 萬萬沒想到,BERT學(xué)會(huì)寫SQL了

[4] 天池NLP賽道top指南

[5] 如何通俗易懂地讓女朋友明白什么是語言模型?

[6] K近鄰算法哪家強(qiáng)?KDTree、Annoy、HNSW原理和使用方法介紹

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,570評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評(píng)論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,786評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,219評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,438評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,971評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,796評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,995評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,230評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,697評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,991評(píng)論 2 374

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