RF想邦、GBDT、XGBoost面試級整理

http://blog.csdn.net/qq_28031525/article/details/70207918

RF委刘、GBDT和XGBoost都屬于集成學習(Ensemble Learning)丧没,集成學習的目的是通過結合多個基學習器的預測結果來改善單個學習器的泛化能力和魯棒性。?

根據(jù)個體學習器的生成方式锡移,目前的集成學習方法大致分為兩大類:即個體學習器之間存在強依賴關系呕童、必須串行生成的序列化方法,以及個體學習器間不存在強依賴關系淆珊、可同時生成的并行化方法夺饲;前者的代表就是Boosting,后者的代表是Bagging和“隨機森林”(Random Forest)。

1往声、RF

1.1 原理

提到隨機森林擂找,就不得不提Bagging,Bagging可以簡單的理解為:放回抽樣浩销,多數(shù)表決(分類)或簡單平均(回歸),同時Bagging的基學習器之間屬于并列生成贯涎,不存在強依賴關系。?

Random Forest(隨機森林)是Bagging的擴展變體慢洋,它在以決策樹 為基學習器構建Bagging集成的基礎上塘雳,進一步在決策樹的訓練過程中引入了隨機特征選擇,因此可以概括RF包括四個部分:1普筹、隨機選擇樣本(放回抽樣)败明;2、隨機選擇特征太防;3妻顶、構建決策樹;4蜒车、隨機森林投票(平均)盈包。?

隨機選擇樣本和Bagging相同,隨機選擇特征是指在樹的構建中醇王,會從樣本集的特征集合中隨機選擇部分特征,然后再從這個子集中選擇最優(yōu)的屬 性用于劃分崭添,這種隨機性導致隨機森林的偏差會有稍微的增加(相比于單棵不隨機樹)寓娩,但是由于隨機森林的‘平均’特性,會使得它的方差減小呼渣,而且方差的減小補償了偏差的增大棘伴,因此總體而言是更好的模型。?

(As a result of this randomness, the bias of the forest usually slightly increases (with respect to the bias of a single non-random tree) but, due to averaging, its variance also decreases, usually more than compensating for the increase in bias, hence yielding an overall better model.)?

在構建決策樹的時候屁置,RF的每棵決策樹都最大可能的進行生長而不進行剪枝焊夸;在對預測輸出進行結合時,RF通常對分類問題使用簡單投票法蓝角,回歸任務使用簡單平均法阱穗。?

RF的重要特性是不用對其進行交叉驗證或者使用一個獨立的測試集獲得無偏估計,它可以在內(nèi)部進行評估使鹅,也就是說在生成的過程中可以對誤差進行無偏估計揪阶,由于每個基學習器只使用了訓練集中約63.2%的樣本,剩下約36.8%的樣本可用做驗證集來對其泛化性能進行“包外估計”患朱。?

RF和Bagging對比:RF的起始性能較差鲁僚,特別當只有一個基學習器時,隨著學習器數(shù)目增多,隨機森林通常會收斂到更低的泛化誤差冰沙。隨機森林的訓練效率也會高于Bagging侨艾,因為在單個決策樹的構建中,Bagging使用的是‘確定性’決策樹拓挥,在選擇特征劃分結點時唠梨,要對所有的特征進行考慮,而隨機森林使用的是‘隨機性’特征數(shù)撞叽,只需考慮特征的子集姻成。

1.2 優(yōu)缺點

隨機森林的優(yōu)點較多,簡單總結:1愿棋、在數(shù)據(jù)集上表現(xiàn)良好科展,相對于其他算法有較大的優(yōu)勢(訓練速度、預測準確度)糠雨;2才睹、能夠處理很高維的數(shù)據(jù),并且不用特征選擇甘邀,而且在訓練完后琅攘,給出特征的重要性;3松邪、容易做成并行化方法坞琴。?

RF的缺點:在噪聲較大的分類或者回歸問題上回過擬合。

2逗抑、GBDT

提GBDT之前剧辐,談一下Boosting,Boosting是一種與Bagging很類似的技術邮府。不論是Boosting還是Bagging荧关,所使用的多個分類器類型都是一致的。但是在前者當中褂傀,不同的分類器是通過串行訓練而獲得的忍啤,每個新分類器都根據(jù)已訓練的分類器的性能來進行訓練。Boosting是通過關注被已有分類器錯分的那些數(shù)據(jù)來獲得新的分類器仙辟。?

由于Boosting分類的結果是基于所有分類器的加權求和結果的同波,因此Boosting與Bagging不太一樣,Bagging中的分類器權值是一樣的欺嗤,而Boosting中的分類器權重并不相等参萄,每個權重代表對應的分類器在上一輪迭代中的成功度。

2.1 原理

GBDT與傳統(tǒng)的Boosting區(qū)別較大煎饼,它的每一次計算都是為了減少上一次的殘差讹挎,而為了消除殘差校赤,我們可以在殘差減小的梯度方向上建立模型,所以說,在GradientBoost中筒溃,每個新的模型的建立是為了使得之前的模型的殘差往梯度下降的方法马篮,與傳統(tǒng)的Boosting中關注正確錯誤的樣本加權有著很大的區(qū)別。?

在GradientBoosting算法中怜奖,關鍵就是利用損失函數(shù)的負梯度方向在當前模型的值作為殘差的近似值浑测,進而擬合一棵CART回歸樹。?

GBDT的會累加所有樹的結果歪玲,而這種累加是無法通過分類完成的迁央,因此GBDT的樹都是CART回歸樹,而不是分類樹(盡管GBDT調(diào)整后也可以用于分類但不代表GBDT的樹為分類樹)滥崩。

2.2 優(yōu)缺點

GBDT的性能在RF的基礎上又有一步提升岖圈,因此其優(yōu)點也很明顯,1钙皮、它能靈活的處理各種類型的數(shù)據(jù)蜂科;2、在相對較少的調(diào)參時間下短条,預測的準確度較高导匣。?

當然由于它是Boosting,因此基學習器之前存在串行關系茸时,難以并行訓練數(shù)據(jù)贡定。

3、XGBoost

3.1 原理

XGBoost的性能在GBDT上又有一步提升可都,而其性能也能通過各種比賽管窺一二厕氨。坊間對XGBoost最大的認知在于其能夠自動地運用CPU的多線程進行并行計算,同時在算法精度上也進行了精度的提高汹粤。?

由于GBDT在合理的參數(shù)設置下,往往要生成一定數(shù)量的樹才能達到令人滿意的準確率田晚,在數(shù)據(jù)集較復雜時嘱兼,模型可能需要幾千次迭代運算。但是XGBoost利用并行的CPU更好的解決了這個問題贤徒。?

其實XGBoost和GBDT的差別也較大芹壕,這一點也同樣體現(xiàn)在其性能表現(xiàn)上,詳見XGBoost與GBDT的區(qū)別接奈。

4踢涌、區(qū)別

4.1 GBDT和XGBoost區(qū)別

傳統(tǒng)的GBDT以CART樹作為基學習器,XGBoost還支持線性分類器序宦,這個時候XGBoost相當于L1和L2正則化的邏輯斯蒂回歸(分類)或者線性回歸(回歸)睁壁;

傳統(tǒng)的GBDT在優(yōu)化的時候只用到一階導數(shù)信息,XGBoost則對代價函數(shù)進行了二階泰勒展開,得到一階和二階導數(shù)潘明;

XGBoost在代價函數(shù)中加入了正則項行剂,用于控制模型的復雜度。從權衡方差偏差來看钳降,它降低了模型的方差厚宰,使學習出來的模型更加簡單,放置過擬合遂填,這也是XGBoost優(yōu)于傳統(tǒng)GBDT的一個特性铲觉;

shrinkage(縮減),相當于學習速率(XGBoost中的eta)吓坚。XGBoost在進行完一次迭代時撵幽,會將葉子節(jié)點的權值乘上該系數(shù),主要是為了削弱每棵樹的影響凌唬,讓后面有更大的學習空間并齐。(GBDT也有學習速率);

列抽樣客税。XGBoost借鑒了隨機森林的做法况褪,支持列抽樣,不僅防止過 擬合更耻,還能減少計算测垛;

對缺失值的處理。對于特征的值有缺失的樣本秧均,XGBoost還可以自動 學習出它的分裂方向食侮;

XGBoost工具支持并行。Boosting不是一種串行的結構嗎?怎么并行 的目胡?注意XGBoost的并行不是tree粒度的并行锯七,XGBoost也是一次迭代完才能進行下一次迭代的(第t次迭代的代價函數(shù)里包含了前面t-1次迭代的預測值)。XGBoost的并行是在特征粒度上的誉己。我們知道眉尸,決策樹的學習最耗時的一個步驟就是對特征的值進行排序(因為要確定最佳分割點),XGBoost在訓練之前巨双,預先對數(shù)據(jù)進行了排序噪猾,然后保存為block結構,后面的迭代 中重復地使用這個結構筑累,大大減小計算量袱蜡。這個block結構也使得并行成為了可能,在進行節(jié)點的分裂時慢宗,需要計算每個特征的增益坪蚁,最終選增益最大的那個特征去做分裂奔穿,那么各個特征的增益計算就可以開多線程進行。

5迅细、參考資料

周志華機器學習

scikit-learn官方文檔

機器學習實戰(zhàn)

李航統(tǒng)計學習方法

wepon大神blog?http://wepon.me/

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巫橄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子茵典,更是在濱河造成了極大的恐慌湘换,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件统阿,死亡現(xiàn)場離奇詭異彩倚,居然都是意外死亡,警方通過查閱死者的電腦和手機扶平,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門帆离,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人结澄,你說我怎么就攤上這事哥谷。” “怎么了麻献?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵们妥,是天一觀的道長。 經(jīng)常有香客問我勉吻,道長监婶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任齿桃,我火速辦了婚禮惑惶,結果婚禮上,老公的妹妹穿的比我還像新娘短纵。我一直安慰自己带污,他們只是感情好,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布香到。 她就那樣靜靜地躺著刮刑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪养渴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天泛烙,我揣著相機與錄音理卑,去河邊找鬼。 笑死蔽氨,一個胖子當著我的面吹牛藐唠,可吹牛的內(nèi)容都是我干的帆疟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼宇立,長吁一口氣:“原來是場噩夢啊……” “哼踪宠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妈嘹,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤柳琢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后润脸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柬脸,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年毙驯,在試婚紗的時候發(fā)現(xiàn)自己被綠了倒堕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡爆价,死狀恐怖垦巴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铭段,我是刑警寧澤骤宣,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站稠项,受9級特大地震影響涯雅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜展运,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一活逆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拗胜,春花似錦蔗候、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勘畔,卻和暖如春所灸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炫七。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工爬立, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人万哪。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓侠驯,卻偏偏與公主長得像抡秆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吟策,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

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