隨機(jī)森林-GBDT-XGBOOST

首先需要說一下決策樹:

三個主要步驟:特征選擇——決策樹生成——決策樹修剪

ID3和C4.5分類樹镇眷,CART樹即可分類也可以回歸咬最。

在進(jìn)行特征選擇時(shí)翎嫡,各個算法采用的選擇分裂準(zhǔn)則不同:

ID3算法使用信息增益準(zhǔn)則,選擇信息增益最大(互信息永乌、熵最小)的特征作為分裂屬性惑申。

C4.5算法使用信息增益比準(zhǔn)則,選擇信息增益比最大的特征作為分裂屬性翅雏。

CART算法使用基尼指數(shù)準(zhǔn)則圈驼,選擇基尼指數(shù)最小的特征作為分裂屬性。

但當(dāng)CART算法用于回歸的時(shí)候望几,用平方誤差最小化準(zhǔn)則绩脆。故又稱為最小二乘回歸樹生成算法。

信息熵:熵越大橄抹,隨機(jī)變量的不確定性就越大靴迫,分類能力就越低.

信息熵
信息增益:標(biāo)簽的信息熵減去特征的信息熵
信息增益
基尼系數(shù)
基尼指數(shù)公式

剪枝主要為了防止過擬合:分為預(yù)剪枝和后剪枝

預(yù)剪枝:在構(gòu)建決策樹中,提前終止決策樹生長楼誓。但這種方法不常用玉锌,因?yàn)槲覀儫o法判斷什么時(shí)候終止生長。

后剪枝:在決策樹構(gòu)成后剪枝疟羹。包括:PEP悲觀錯誤剪枝主守;MEP最小錯誤剪枝;CCP:代價(jià)復(fù)雜度剪枝(CART樹度量每減少一個葉節(jié)點(diǎn)所得到的平均錯誤)榄融;EBP:基于錯誤的剪枝参淫。

決策樹的優(yōu)點(diǎn):訓(xùn)練時(shí)間復(fù)雜度較低,預(yù)測的過程比較快速愧杯,模型容易展示(容易將得到的決策樹做成圖片展示出來)等涎才。

在工業(yè)應(yīng)用中,決策樹比較多民效,在kangle比賽中憔维,基于決策樹的XBOOST效果優(yōu)異涛救。在于決策樹特征不用歸一化,速度快业扒,非線性检吆,適合已加工過的高維特征。

bagging與boost:

但是程储,決策樹也存在一些缺點(diǎn)蹭沛,容易過擬合,雖然有剪枝的操作章鲤,但是還是不夠摊灭。由多個弱決策樹分類器,加權(quán)或投票的得到一個強(qiáng)分類器败徊、

組合模型(bagging 與 boost),這些算法最終的結(jié)果是生成N(可能會有幾百棵以上)棵樹帚呼,這樣可以大大的減少單決策樹帶來的毛病。

Bootstrap是一種有放回的抽樣方法思想皱蹦。兩方面:bagging和boosting

雖然都是有放回的抽樣煤杀,但二者的區(qū)別在于:Bagging采用有放回的均勻取樣,而Boosting根據(jù)錯誤率來取樣(Boosting初始化時(shí)對每一個訓(xùn)練例賦相等的權(quán)重1/n沪哺,然后用該學(xué)算法對訓(xùn)練集訓(xùn)練t輪沈自,每次訓(xùn)練后,對訓(xùn)練失敗的訓(xùn)練例賦以較大的權(quán)重)辜妓,因此Boosting的分類精度要優(yōu)于Bagging枯途。Bagging的訓(xùn)練集的選擇是隨機(jī)的,各輪訓(xùn)練集之間相互獨(dú)立籍滴,而Boostlng的各輪訓(xùn)練集的選擇與前面各輪的學(xué)習(xí)結(jié)果有關(guān)酪夷。

boost:最初為每個樣例賦予相同的權(quán)重,通過迭代的方式异逐,對每一次分類錯誤的樣例給予更高的權(quán)重捶索。進(jìn)行N次迭代,得到N個分類器灰瞻,再將它們組合起來(加權(quán)或投票)腥例,最終得到結(jié)果 .

隨機(jī)森林是在bagging基礎(chǔ)上,有放回的采樣酝润,隨機(jī)選取K個特征燎竖,同時(shí)獨(dú)立的建立N個決策樹,最后由投票表決的方式?jīng)Q定最后的結(jié)果要销。并行

GBDT(Gradient Boost Decision Tree 梯度提升決策樹)构回,GBDT的核心就在于:每一棵樹學(xué)的是之前所有樹結(jié)論和的殘差,迭代、串行纤掸。將決策樹結(jié)果累加的得到最后的結(jié)果脐供。故可知,GBDT基于回歸樹(CART樹)借跪。

xgboos也是以(CART)為基學(xué)習(xí)器的GB算法政己,但是擴(kuò)展和改進(jìn)了GDBT。相比GBDT的優(yōu)點(diǎn)有:

(1)xgboost在代價(jià)函數(shù)里自帶加入了正則項(xiàng)掏愁,用于控制模型的復(fù)雜度歇由。

(2)特征抽樣采樣并行(xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能進(jìn)行下一次迭代的(第t次迭代的代價(jià)函數(shù)里包含了前面t-1次迭代的預(yù)測值)果港。xgboost的并行是在特征粒度上的沦泌。),xgboost在進(jìn)行節(jié)點(diǎn)的分裂時(shí)辛掠,支持各個特征多線程進(jìn)行增益計(jì)算谢谦,因此算法更快,準(zhǔn)確率也相對高一些公浪。

(3)優(yōu)化時(shí)他宛,GBDT梯度下降一階求導(dǎo),xgboost是二階泰勒級數(shù)展開欠气。

(4)傳統(tǒng)GBDT以CART作為基分類器,xgboost還支持線性分類器镜撩,這個時(shí)候xgboost相當(dāng)于帶L1和L2正則化項(xiàng)的邏輯斯蒂回歸(分類問題)或者線性回歸(回歸問題)预柒。

XGBOOST參數(shù):https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/


Adaboost(自適應(yīng)增強(qiáng))是一種迭代算法,其核心思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類器(弱分類器)袁梗,然后把這些弱分類器集合起來宜鸯,構(gòu)成一個更強(qiáng)的最終分類器(強(qiáng)分類器)。在訓(xùn)練集的不同子集上遮怜,多次調(diào)用弱學(xué)習(xí)算法淋袖,最終按加權(quán)方式聯(lián)合多次弱學(xué)習(xí)算法的預(yù)測結(jié)果就可得到最終學(xué)習(xí)結(jié)果。

與Boosting算法不同的是锯梁,adaboost算法不需要預(yù)先知道弱學(xué)習(xí)算法學(xué)習(xí)正確率的下限即弱分類器的誤差即碗,并且最后得到的強(qiáng)分類器的分類精度依賴于所有弱分類器的分類精度,

Adaboost(Adaptive Boosting)算法陌凳,對于boosting算法剥懒,存在兩個問題:

1. 如何調(diào)整訓(xùn)練集,使得在訓(xùn)練集上訓(xùn)練的弱分類器得以進(jìn)行合敦;

2. 如何將訓(xùn)練得到的各個弱分類器聯(lián)合起來形成強(qiáng)分類器初橘。

針對以上兩個問題,adaboost算法進(jìn)行了調(diào)整:

1. 使用加權(quán)后選取的訓(xùn)練數(shù)據(jù)代替隨機(jī)選取的訓(xùn)練樣本,這樣將訓(xùn)練的焦點(diǎn)集中在比較難分的訓(xùn)練數(shù)據(jù)樣本上保檐;

2. 將弱分類器聯(lián)合起來耕蝉,使用加權(quán)的投票機(jī)制代替平均投票機(jī)制。讓分類效果好的弱分類器具有較大的權(quán)重夜只,而分類效果差的分類器具有較小的權(quán)重赔硫。


RandomForest 與 GBDT 的區(qū)別:

相同點(diǎn):

1.都由很多棵樹組成

2.最終的結(jié)果是由多棵樹一起決定的

不同點(diǎn):

1.RandomForest中的樹可以是分類樹,也可以是回歸樹,而GBDT只能由回歸樹(CART)組成,這也說明GBDT各個樹相加是有意義的

2.RandomForest中的樹是并行生成的套么,而GBDT是串行生成的晓猛,GBDT中下一顆樹要去擬合前一顆樹的殘差,所以GBDT中的樹是有相關(guān)關(guān)系的喻旷,而RandomForest中的樹的相關(guān)性依賴于Boostrap生成的樣本子集的相關(guān)性

3.RandomForest 對異常值不敏感,GBDT敏感

4.RandomForest是通過降低模型方差來提高性能的,而GBDT是通過降低偏差來提高性能

GBDT 與 XGBOOST的比較:

1.傳統(tǒng)的GBDT以CART樹作為基分類器耘成,而XGBOOST還支持線性分類器,此時(shí)的線性分類器自帶正則項(xiàng)

2.傳統(tǒng)的GBDT在優(yōu)化時(shí)驹闰,只用到了loss function的一階導(dǎo)信息瘪菌,而XGBOOST對loss function做了Taylor展開,用到了二階導(dǎo)信息

3.XGBOOST在loss function中引入了正則項(xiàng)嘹朗,防止過擬合师妙,正則項(xiàng)里包含葉節(jié)點(diǎn)數(shù)以及每個葉節(jié)點(diǎn)上的score的L2的平方和

在計(jì)算劃分增益時(shí),如果gain < gamma, 不劃分屹培,gain> gamma默穴,劃分,這相當(dāng)于決策樹的預(yù)剪枝褪秀。 gamma是葉節(jié)點(diǎn)個數(shù)的參數(shù)

4.XGBOOST還借用了RandomForest中的列抽樣思想蓄诽,也支持在劃分節(jié)點(diǎn)時(shí),只考慮部分屬性

(現(xiàn)狀sklearn中的GBDT也實(shí)現(xiàn)了列抽樣)

5.XGBOOST可以自動學(xué)習(xí)出缺失值的分裂方向媒吗,論文中的default direction

(具體做法時(shí)仑氛,遍歷的嘗試將所有的缺失值分裂到所有方向{left or right},split and default directions with max gain)

6.XGBOOST實(shí)現(xiàn)了并行化闸英,這個并行化是特征粒度上的并行化:劃分節(jié)點(diǎn)時(shí)锯岖,每個特征并行計(jì)算,同時(shí)每個特征的劃分節(jié)點(diǎn)也是并行計(jì)算(這是加速最猛的處理)

7.XGBOOST提出了block的概念自阱,簡單的說將排序后的特征值放在block中嚎莉,以后劃分特征的時(shí)候,只需要遍歷一次即可沛豌,因?yàn)闆Q策樹在處理屬性值時(shí)趋箩,需要將屬性值先排序赃额,這是最耗時(shí)的步驟,而block預(yù)先存儲了排序的特征值叫确,在后續(xù)過程中可以重復(fù)利用這個結(jié)構(gòu)中的數(shù)據(jù)跳芳,同時(shí),計(jì)算每個特征的劃分增益可以并行處理了

Collecting statistics for each column can be parallelized,giving us a?parallel algorithm for split finding!!

8.貪心算法在選擇最佳劃分方式時(shí)需要遍歷所有的劃分點(diǎn)子集竹勉,在數(shù)據(jù)非常大時(shí)飞盆,這會非常低效,xgboost提出了近似直方圖計(jì)算次乓,根據(jù)數(shù)據(jù)的二階導(dǎo)信息進(jìn)行排序吓歇,提出一些候選劃分點(diǎn)子集

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市票腰,隨后出現(xiàn)的幾起案子城看,更是在濱河造成了極大的恐慌,老刑警劉巖杏慰,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件测柠,死亡現(xiàn)場離奇詭異,居然都是意外死亡缘滥,警方通過查閱死者的電腦和手機(jī)轰胁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朝扼,“玉大人赃阀,你說我怎么就攤上這事∫魉埃” “怎么了凹耙?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肠仪。 經(jīng)常有香客問我,道長提佣,這世上最難降的妖魔是什么吮蛹? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮拌屏,結(jié)果婚禮上潮针,老公的妹妹穿的比我還像新娘。我一直安慰自己倚喂,他們只是感情好每篷,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布瓣戚。 她就那樣靜靜地躺著,像睡著了一般焦读。 火紅的嫁衣襯著肌膚如雪子库。 梳的紋絲不亂的頭發(fā)上仑嗅,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機(jī)與錄音张症,去河邊找鬼仓技。 笑死,一個胖子當(dāng)著我的面吹牛俗他,可吹牛的內(nèi)容都是我干的郭变。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼涯保,長吁一口氣:“原來是場噩夢啊……” “哼诉濒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起夕春,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤未荒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后及志,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體片排,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年速侈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了率寡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡倚搬,死狀恐怖冶共,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情每界,我是刑警寧澤捅僵,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站眨层,受9級特大地震影響庙楚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜趴樱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一馒闷、第九天 我趴在偏房一處隱蔽的房頂上張望酪捡。 院中可真熱鬧,春花似錦窜司、人聲如沸沛善。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽金刁。三九已至,卻和暖如春议薪,著一層夾襖步出監(jiān)牢的瞬間尤蛮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工斯议, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留产捞,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓哼御,卻偏偏與公主長得像坯临,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恋昼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

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