隨機(jī)森林是一種簡(jiǎn)單又實(shí)用的機(jī)器學(xué)習(xí)算法获诈。
“隨機(jī)“表示2種隨機(jī)性救斑,即每棵樹(shù)的訓(xùn)練樣本换淆、訓(xùn)練特征隨機(jī)選取哗总。
多棵決策樹(shù)組成了一片“森林”,計(jì)算時(shí)由每棵樹(shù)投票或取均值的方式來(lái)決定最終結(jié)果倍试,體現(xiàn)了三個(gè)臭皮匠頂個(gè)諸葛亮的中國(guó)傳統(tǒng)民間智慧讯屈。
那我們?cè)撊绾卫斫鉀Q策樹(shù)和這種集成思想呢?
1县习、決策樹(shù)
以分類任務(wù)為代表的決策樹(shù)模型涮母,是一種對(duì)樣本特征構(gòu)建不同分支的樹(shù)形結(jié)構(gòu)。
決策樹(shù)由節(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)開(kāi)始向下搜索,直到某一個(gè)葉子節(jié)點(diǎn)結(jié)束样勃。下圖的紅線代表了一條搜索路線吠勘,決策樹(shù)最終輸出類別C性芬。
決策樹(shù)的特征選擇
假如有為青年張三想創(chuàng)業(yè)峡眶,但是摸摸口袋空空如也剧防,只好去銀行貸款。
銀行會(huì)綜合考量多個(gè)因素來(lái)決定是否給他放貸辫樱。例如峭拘,可以考慮的因素有性別、年齡狮暑、工作鸡挠、是否有房、信用情況搬男、婚姻狀況等等拣展。
這么多因素,哪些是重要的呢缔逛?
這就是特征選擇的工作备埃。特征選擇可以判別出哪些特征最具有區(qū)分力度(例如“信用情況”),哪些特征可以忽略(例如“性別”)褐奴。特征選擇是構(gòu)造決策樹(shù)的理論依據(jù)按脚。
不同的特征選擇,生成了不同的決策樹(shù)敦冬。
決策樹(shù)的特征選擇一般有3種量化方法:信息增益辅搬、信息增益率、基尼指數(shù)脖旱。
信息增益
在信息論中堪遂,熵表示隨機(jī)變量不確定性的度量。假設(shè)隨機(jī)變量X有有限個(gè)取值萌庆,取值xi對(duì)應(yīng)的概率為pi蚤氏,則X的熵定義為:
如果某件事一定發(fā)生(太陽(yáng)東升西落)或一定不發(fā)生(釣魚(yú)島是日本的),則概率為1或0踊兜,對(duì)應(yīng)的熵均為0竿滨。
如果某件事可能發(fā)生可能不發(fā)生(天要下雨,娘要嫁人)捏境,概率介于0到1之間于游,熵大于0。
由此可見(jiàn)垫言,熵越大贰剥,隨機(jī)性越大,結(jié)果越不確定筷频。
我們?cè)賮?lái)看一看條件熵蚌成,表示引入隨機(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)的分類能力奶镶。由此生成決策樹(shù)迟赃,稱為ID3算法。
信息增益率
當(dāng)某個(gè)特征具有多種候選值時(shí)实辑,信息增益容易偏大捺氢,造成誤差。引入信息增益率可以校正這一問(wèn)題剪撬。
信息增益率為信息增益與數(shù)據(jù)集D的熵之比:
同樣摄乒,我們優(yōu)先選擇信息增益率最大的特征,由此生成決策樹(shù)残黑,稱為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ù)最小的特征,由此生成決策樹(shù)摩钙,稱為CART算法罢低。
決策樹(shù)剪枝
決策樹(shù)生成算法遞歸產(chǎn)生一棵決策樹(shù),直到結(jié)束劃分胖笛。什么時(shí)候結(jié)束呢网持?
- 樣本屬于同一種類型
- 沒(méi)有特征可以分割
這樣得到的決策樹(shù)往往對(duì)訓(xùn)練數(shù)據(jù)分類非常精準(zhǔn)宜岛,但是對(duì)于未知數(shù)據(jù)表現(xiàn)比較差。
原因在于基于訓(xùn)練集構(gòu)造的決策樹(shù)過(guò)于復(fù)雜功舀,產(chǎn)生過(guò)擬合萍倡。所以需要對(duì)決策樹(shù)簡(jiǎn)化,砍掉多余的分支日杈,提高泛化能力遣铝。
決策樹(shù)剪枝一般有兩種方法:
- 預(yù)剪枝:在樹(shù)的生成過(guò)程中剪枝佑刷。基于貪心策略莉擒,可能造成局部最優(yōu)
- 后剪枝:等樹(shù)全部生成后剪枝。運(yùn)算量較大瘫絮,但是比較精準(zhǔn)
決策樹(shù)剪枝往往通過(guò)極小化決策樹(shù)整體的損失函數(shù)實(shí)現(xiàn)涨冀。
假設(shè)樹(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ù)定義為:
其中熵為:
損失函數(shù)第一項(xiàng)為訓(xùn)練誤差翅帜,第二項(xiàng)為模型復(fù)雜度,用參數(shù)alpha來(lái)衡量二者的比重命满。
CART算法
CART表示分類回歸決策樹(shù)涝滴,同樣由特征選擇、樹(shù)的生成及剪枝組成胶台,可以處理分類和回歸任務(wù)歼疮。
相比之下,ID3和C4.5算法只能處理分類任務(wù)诈唬。
CART假設(shè)決策樹(shù)是二叉樹(shù)韩脏,內(nèi)部結(jié)點(diǎn)特征的取值為“是”和“否”,依次遞歸地二分每個(gè)特征铸磅。
CART 對(duì)回歸樹(shù)采用平方誤差最小化準(zhǔn)則赡矢,對(duì)分類樹(shù)用基尼指數(shù)最小化準(zhǔn)則。
2阅仔、bagging集成
機(jī)器學(xué)習(xí)算法中有兩類典型的集成思想:bagging和bossting吹散。
bagging是一種在原始數(shù)據(jù)集上,通過(guò)有放回抽樣分別選出k個(gè)新數(shù)據(jù)集霎槐,來(lái)訓(xùn)練分類器的集成算法送浊。分類器之間沒(méi)有依賴關(guān)系。
隨機(jī)森林屬于bagging集成算法丘跌。通過(guò)組合多個(gè)弱分類器袭景,集思廣益唁桩,使得整體模型具有較高的精確度和泛化性能。
3耸棒、隨機(jī)森林
我們將使用CART決策樹(shù)作為弱學(xué)習(xí)器的bagging方法稱為隨機(jī)森林荒澡。
由于隨機(jī)性,隨機(jī)森林對(duì)于降低模型方差效果顯著与殃。故隨機(jī)森林一般不需要額外剪枝单山,就能取得較好的泛化性能。
相對(duì)而言幅疼,模型對(duì)于訓(xùn)練集的擬合程度就會(huì)差一些米奸,相比于基于boosting的GBDT模型,偏差會(huì)大一些爽篷。
另外悴晰,隨機(jī)森林中的樹(shù)一般會(huì)比較深,以盡可能地降低偏差逐工;而GBDT樹(shù)的深度會(huì)比較淺铡溪,通過(guò)減少模型復(fù)雜度來(lái)降低方差。(面試考點(diǎn))
最后泪喊,我們總結(jié)一下隨機(jī)森林都有哪些優(yōu)點(diǎn):
- 采用了集成算法棕硫,精度優(yōu)于大多數(shù)單模型算法
- 在測(cè)試集上表現(xiàn)良好,兩個(gè)隨機(jī)性的引入降低了過(guò)擬合風(fēng)險(xiǎn)?
- 樹(shù)的組合可以讓隨機(jī)森林處理非線性數(shù)據(jù)
- 訓(xùn)練過(guò)程中能檢測(cè)特征重要性袒啼,是常見(jiàn)的特征篩選方法?
- 每棵樹(shù)可以同時(shí)生成哈扮,并行效率高,訓(xùn)練速度快
- 可以自動(dòng)處理缺省值?
如果您覺(jué)得這篇文章對(duì)您有幫助瘤泪,歡迎點(diǎn)贊灶泵,讓更多的人也能看到這篇內(nèi)容 ??
關(guān)注公眾號(hào)「NLP情報(bào)局」,第一時(shí)間閱讀自然語(yǔ)言處理对途、機(jī)器學(xué)習(xí)算法熱乎干貨~
參考資料
[2] 李航《統(tǒng)計(jì)學(xué)習(xí)方法》第二版赦邻,第五章 決策樹(shù).(p67-p88)
推薦閱讀
[1] 從BERT、XLNet到MPNet实檀,細(xì)看NLP預(yù)訓(xùn)練模型發(fā)展變遷史
[2] 文本匹配利器:從孿生網(wǎng)絡(luò)到Sentence-BERT綜述
[3] 萬(wàn)萬(wàn)沒(méi)想到惶洲,BERT學(xué)會(huì)寫(xiě)SQL了
[4] 天池NLP賽道top指南