利用随机森林对特征重要性进行评估(公式原理)
本文參考來(lái)源于:
楊凱, 侯艷, 李康. 隨機(jī)森林變量重要性評(píng)分及其研究進(jìn)展[J]. 2015.
碼字不易,各位看官大大的贊是我更細(xì)的動(dòng)力!
一、引言
隨機(jī)森林(randomforest,RFrandom\;\; forest,RFrandomforest,RF)由BreimanBreimanBreiman等人在2001年提出。
RFRFRF具有很高的預(yù)測(cè)準(zhǔn)確率,對(duì)異常值和噪聲有很強(qiáng)的容忍度,能夠處理高維數(shù)據(jù)(變量個(gè)數(shù)遠(yuǎn)大于觀測(cè)個(gè)數(shù)),有效地分析非線性、具有共線性和交互作用的數(shù)據(jù), 并能夠在分析數(shù)據(jù)的同時(shí)給出變量重要性評(píng)分(variableimportancemeasures,VIMvariableimportance\;\;measures,VIMvariableimportancemeasures,VIM)。這些特點(diǎn)使得RFRFRF特別適用于高維組學(xué)數(shù)據(jù)的研究,即在對(duì)疾病進(jìn)行分類的同時(shí)通過(guò)VIMVIMVIM值篩選出潛在的生物標(biāo)志物,研究疾病發(fā)生、發(fā)展的生物學(xué)機(jī)制。然而, 由于在實(shí)際中由RF篩選變量使用的統(tǒng)計(jì)量不同,可能會(huì)使結(jié)果有較大的差異,為此本文在簡(jiǎn)單介紹RFRFRF篩選變量的基礎(chǔ)上,擬針對(duì)目前隨機(jī)森林變量重要性評(píng)分的不同計(jì)算方法和新近提出的改進(jìn)方法, 說(shuō)明其在高維組學(xué)數(shù)據(jù)分析中的應(yīng)用。
二、隨機(jī)森林的基本原理
了解決策樹(shù)的算法,那么隨機(jī)森林是相當(dāng)容易理解的。隨機(jī)森林的算法可以用如下幾個(gè)步驟概括:
1.用有抽樣放回的方法(bootstrap)從樣本集中選取nnn個(gè)樣本作為一個(gè)訓(xùn)練集;
2.用抽樣得到的樣本集生成一棵決策樹(shù)。在生成的每一個(gè)結(jié)點(diǎn):
(1)隨機(jī)不重復(fù)地選擇ddd個(gè)特征
(2)利用這ddd個(gè)特征分別對(duì)樣本集進(jìn)行劃分,找到最佳的劃分特征(可用基尼系數(shù)、增益率或者信息增益判別)
3.重復(fù)步驟1到步驟2共kkk次,kkk即為隨機(jī)森林中決策樹(shù)的個(gè)數(shù)。
4.用訓(xùn)練得到的隨機(jī)森林對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),并用投票法決定預(yù)測(cè)的結(jié)果。
下圖比較直觀地展示了隨機(jī)森林算法:
圖片來(lái)源:
楊凱, 侯艷, 李康. 隨機(jī)森林變量重要性評(píng)分及其研究進(jìn)展[J]. 2015.
RFRFRF中的每一棵分類樹(shù)為二叉樹(shù),根節(jié)點(diǎn)包含全部訓(xùn)練自助樣本,按照一定的原則,在每個(gè)節(jié)點(diǎn)從一組隨機(jī)選取的變量中選擇使分枝后節(jié)點(diǎn)“不純度” 最小的變量作為分枝變量,分裂為左節(jié)點(diǎn)和右節(jié)點(diǎn), 它們分別包含訓(xùn)練數(shù)據(jù)的一個(gè)子集, 分裂后的節(jié)點(diǎn)按照同樣規(guī)則繼續(xù)分裂, 直到滿足分枝停止規(guī)則而停止生長(zhǎng), 具體過(guò)程見(jiàn)圖 1。
“不純度” 的衡量標(biāo)準(zhǔn)包括GiniGiniGini不純度、 熵和錯(cuò)誤率等。 變量篩選使用VIMVIMVIM統(tǒng)計(jì)量。
三、隨機(jī)森林常規(guī)的變量重要性評(píng)分
現(xiàn)假定有變量X1,X2,L,XMX_1\;,\;X_2\;,\;L\;,\;X_MX1?,X2?,L,XM?,需要計(jì)算出MMM個(gè)VIMVIMVIM得分統(tǒng)計(jì)量。
RFRFRF常規(guī)的VIMVIMVIM計(jì)算方法分為兩種,即根據(jù)GiniGiniGini指數(shù)和袋外數(shù)據(jù)(OOBOOBOOB) 錯(cuò)誤率計(jì)算得到, 變量XjX_jXj?的得分統(tǒng)計(jì)量分別用VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?和VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?表示。
2.1 Gini指數(shù)
統(tǒng)計(jì)量VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?表示第jjj個(gè)變量在RFRFRF所有樹(shù)中節(jié)點(diǎn)分裂不純度的平均改變量。GiniGiniGini指數(shù)的計(jì)算公式為:
GIm=∑k=1Kp^mk(1?p^mk)(1)GI_{m}=\sum_{k=1}^K\hat{p}_{mk}(1-\hat{p}_{mk})\;\;\;\;(1) GIm?=k=1∑K?p^?mk?(1?p^?mk?)(1)
KKK為自助樣本集的類別數(shù),p^mk\hat{p}_{mk}p^?mk?為節(jié)點(diǎn)mmm樣本屬于第kkk類的概率估計(jì)值,當(dāng)樣本為二分類數(shù)據(jù)時(shí)(K=2K=2K=2) ,節(jié)點(diǎn)mmm的GiniGiniGini指數(shù)為:
GIm=2p^m(1?p^m)(2)GI_{m}=2\hat{p}_{m}(1-\hat{p}_{m})\;\;\;\;(2) GIm?=2p^?m?(1?p^?m?)(2)
p^m\hat{p}_{m}p^?m?為樣本在節(jié)點(diǎn)mmm屬于任意一類的概率估計(jì)值。
變量XjX_jXj?在節(jié)點(diǎn)mmm的重要性,即節(jié)點(diǎn)mmm分枝前后GiniGiniGini指數(shù)變化量為:
VIMjm(Gini)=GIm?GIl?GIr(3)VIM_{jm}^{(Gini)}=GI_{m}-GI_{l}-GI_{r}\;\;\;\;(3) VIMjm(Gini)?=GIm??GIl??GIr?(3)
GIlGI_{l}GIl?和GIrGI_{r}GIr?分別表示由節(jié)點(diǎn)mmm分裂的兩新節(jié)點(diǎn)的GiniGiniGini指數(shù)。
如果變量XjX_jXj?在第iii棵樹(shù)中出現(xiàn)MMM次,則變量XjX_jXj?在第iii棵樹(shù)的重要性為:
VIMij(Gini)=∑m=1MVIMjm(Gini)(4)VIM_{ij}^{(Gini)}=\sum_{m=1}^MVIM_{jm}^{(Gini)}\;\;\;\;(4) VIMij(Gini)?=m=1∑M?VIMjm(Gini)?(4)
變量XjX_jXj?在RFRFRF中的GiniGiniGini重要性定義為:
VIMj(Gini)=1n∑i=1nVIMij(Gini)(5)VIM_{j}^{(Gini)}=\frac{1}{n}\sum_{i=1}^nVIM_{ij}^{(Gini)}\;\;\;\;(5) VIMj(Gini)?=n1?i=1∑n?VIMij(Gini)?(5)
其中,nnn為RFRFRF中分類樹(shù)的數(shù)量。
2.2 OOB 錯(cuò)誤率
VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?的定義為:在RFRFRF的每棵樹(shù)中,使用隨機(jī)抽取的訓(xùn)練自助樣本建樹(shù),并計(jì)算袋外數(shù)據(jù)(OOBOOBOOB)的預(yù)測(cè)錯(cuò)誤率,然后隨機(jī)置換變量XjX_jXj?的觀測(cè)值后再次建樹(shù)并計(jì)算OOBOOBOOB的預(yù)測(cè)錯(cuò)誤率,最后計(jì)算兩次OOBOOBOOB錯(cuò)誤率的差值經(jīng)過(guò)標(biāo)準(zhǔn)化處理后在所有樹(shù)中的平均值即為變量XjX_jXj?的置換重要性(VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?)。
變量XjX_jXj?在第iii棵樹(shù)的VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?為:
VIMj(OOB)=∑p=1noiI(Yp=Ypi)noi?∑p=1noiI(Yp=Yp,πji)noiVIM_{j}^{(OOB)}=\frac{\sum_{p=1}^{n_o^i}I(Y_p=Y_p^i)}{n_o^i}-\frac{\sum_{p=1}^{n_o^i}I(Y_p=Y_{p,\pi_j}^i)}{n_o^i} VIMj(OOB)?=noi?∑p=1noi??I(Yp?=Ypi?)??noi?∑p=1noi??I(Yp?=Yp,πj?i?)?
其中,noin_o^inoi?為第iii棵樹(shù)OOBOOBOOB數(shù)據(jù)的觀測(cè)例數(shù),I(g)I(g)I(g)為指示函數(shù),即兩值相等時(shí)取1,不等時(shí)取0;Yp∈{0,1}Y_p\in\{0,1\}Yp?∈{0,1}為第ppp個(gè)觀測(cè)的真實(shí)結(jié)果,Ypi∈{0,1}Y_p^i\in\{0,1\}Ypi?∈{0,1}為隨機(jī)置換前第iii棵樹(shù)對(duì)OOBOOBOOB數(shù)據(jù)第ppp個(gè)觀測(cè)的預(yù)測(cè)結(jié)果,Yp,πji∈{0,1}Y_{p,\pi_j}^i\in\{0,1\}Yp,πj?i?∈{0,1}為隨機(jī)置換后第iii棵樹(shù)對(duì)OOBOOBOOB數(shù)據(jù)第ppp個(gè)觀測(cè)的預(yù)測(cè)結(jié)果。
當(dāng)變量jjj沒(méi)有在第iii棵樹(shù)中出現(xiàn)時(shí),VIMij(OOB)=0VIM_{ij}^{(OOB)}=0VIMij(OOB)?=0
變量XjX_jXj?在RFRFRF中的置換重要性定義為:
VIMj(OOB)=∑i=1nVIMij(OOB)nVIM_{j}^{(OOB)}=\frac{\sum_{i=1}^nVIM_{ij}^{(OOB)}}{n} VIMj(OOB)?=n∑i=1n?VIMij(OOB)??
其中,nnn為RFRFRF中分類樹(shù)的數(shù)量。
2.3 常規(guī)變量重要性評(píng)分的優(yōu)缺點(diǎn)
VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?在數(shù)據(jù)挖掘中估計(jì)變量重要性時(shí)有著廣泛的應(yīng)用。 當(dāng)變量為連續(xù)型變量且互不相關(guān)時(shí),VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?的估計(jì)是無(wú)偏的;
當(dāng)信噪比較低時(shí),VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?的準(zhǔn)確性也高于VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?,因此,VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?有更高的穩(wěn)定性。
然而, 當(dāng)同時(shí)存在連續(xù)變量和分類變量或者分類變量的水平數(shù)不同時(shí),VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?估計(jì)則不夠準(zhǔn)確。由于KKK個(gè)水平的分類變量在節(jié)點(diǎn)處可以有2K?1?12^{K-1}-12K?1?1種分割, 連續(xù)變量在節(jié)點(diǎn)處可以有b?1b-1b?1種分割(bbb為樣本量)。在備選分割較多時(shí), 即使變量沒(méi)有分類作用, 也可能使GiniGiniGini指數(shù)降低, 從而更容易被選為分枝變量, 即VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?被高估。 實(shí)際上, 由于GiniGiniGini指數(shù)的計(jì)算問(wèn)題, 水平數(shù)多的分類變量的GiniGiniGini指數(shù)降低會(huì)大于水平數(shù)少的分類變量。
當(dāng)分類變量水平數(shù)相同時(shí), 如果不同變量的水平間差別不同, 容易過(guò)高估計(jì)水平間差別大的變量的VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)? 。 在 SNP 數(shù)據(jù)分析中, Nicodemus 等人指出當(dāng)所有 SNP 都不具有分類能力時(shí),不相關(guān) SNP 的VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?高于高度相關(guān) SNP 的VIMj(Gini)VIM_{j}^{(Gini)}VIMj(Gini)?
事實(shí)上,VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?在實(shí)際中的應(yīng)用范圍更加廣泛。 由于VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?是通過(guò)OOBOOBOOB數(shù)據(jù)計(jì)算的, 因此可以看作變量具有的分類能力, 沒(méi)有分類能力的變量在觀測(cè)值置換前后的OOBOOBOOB錯(cuò)誤率不會(huì)發(fā)生改變, 即數(shù)學(xué)期望E(VIMj(OOB))=0E(VIM_{j}^{(OOB)})=0E(VIMj(OOB)?)=0,此外,VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?不僅能夠衡量變量單獨(dú)的分類能力, 還能夠衡量變量間交互作用的分類能力。
當(dāng)同時(shí)存在連續(xù)變量和分類變量或者分類變量水平數(shù)不同時(shí), 并不會(huì)影響VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?準(zhǔn)確性。VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?是通過(guò)隨機(jī)置換變量觀測(cè)值前后OOBOOBOOB錯(cuò)誤率的差值計(jì)算的, 即使沒(méi)有分類作用, 水平數(shù)多的變量也更容易被選為分枝變量, 但置換前后并不會(huì)影響OOBOOBOOB錯(cuò)誤率,同時(shí)會(huì)使VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?的變異增大。
在分類數(shù)據(jù)不平衡時(shí),VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?的準(zhǔn)確性會(huì)受到一定影響。例如多數(shù)為正常人, 無(wú)論變量是否置換, 大部分的數(shù)據(jù)都會(huì)被預(yù)測(cè)為正常, 雖然OOBOOBOOB錯(cuò)誤率受到的影響可能不大,但卻會(huì)嚴(yán)重低估所有變量的VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?。
當(dāng)單棵樹(shù)的預(yù)測(cè)準(zhǔn)確率較低時(shí)(如OOBOOBOOB錯(cuò)誤率達(dá)到 50%) , 會(huì)低估變量的VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?
當(dāng)置換前OOBOOBOOB錯(cuò)誤率已經(jīng)很大時(shí), 置換變量觀測(cè)值使得 OOB 錯(cuò)誤率變大的可能性降低, 從而低估變量的VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?
當(dāng)沒(méi)有分類能力的變量與有分類能力的變量相關(guān)時(shí), 可能低估相關(guān)有分類能力變量的VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?,且估計(jì)方差變異增加, 而此時(shí)沒(méi)有分類能力變量的VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?則被高估。
組學(xué)數(shù)據(jù)中存在大量的噪聲變量, 當(dāng)變量數(shù)目巨大而具有分類能力的變量所占比例很小時(shí),RFRFRF建模容易受到大量噪聲變量的干擾, 使變量的VIMVIMVIM計(jì)算受到影響, 變量篩選的結(jié)果不可信。
2.4 變量重要性( VIM ) 的顯著性檢驗(yàn)
VIMVIMVIM給出了變量的重要性排序, 但無(wú)法在變量篩選時(shí)給出顯著性假設(shè)檢驗(yàn)的閾值。 事實(shí)上, 當(dāng)所有變量都沒(méi)有分類能力時(shí),VIMVIMVIM也會(huì)給出變量重要性排序, 篩選出不具有分類能力的變量; 而當(dāng)有分類能力的變量很多時(shí), 僅通過(guò)變量的排序進(jìn)行變量篩選, 可能漏掉一些具有分類能力的變量。
BreimanBreimanBreiman等人提出通過(guò)ZZZ值直接計(jì)算VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?的顯著性, 即:
Z=VIMj(OOB)/(σ^/n)Z=VIM_{j}^{(OOB)}/(\hat{\sigma}/\sqrt{n}) Z=VIMj(OOB)?/(σ^/n?)
其中,σ^\hat{\sigma}σ^為RFRFRF中各棵樹(shù)VIMj(OOB)VIM_{j}^{(OOB)}VIMj(OOB)?的標(biāo)準(zhǔn)差,nnn為隨機(jī)森林(RFRFRF)中樹(shù)的數(shù)量。 然而,StroblStroblStrobl等人通過(guò)模擬實(shí)驗(yàn)表明:ZZZ值的檢驗(yàn)效能與樣本量bbb及樹(shù)的數(shù)量nnn有很大的關(guān)系, 當(dāng)樣本量bbb很大而樹(shù)的數(shù)量nnn小時(shí), 檢驗(yàn)效能接近于0。
總結(jié)
以上是生活随笔為你收集整理的利用随机森林对特征重要性进行评估(公式原理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: echarts 折线图高于目标显示绿色低
- 下一篇: 初三错题归纳