日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

boosting家族之综合理论篇

發(fā)布時(shí)間:2024/9/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 boosting家族之综合理论篇 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄
概述
先驗(yàn)知識(shí)
集成學(xué)習(xí)
boosting家族簡(jiǎn)述
boosting家族——AdaBoosting
boosting家族——GBDT
boosting家族——XGBoost
RandomForest 與 GBDT 的區(qū)別
參考
概述
boosting往上了說(shuō),是集成學(xué)習(xí)的分支。往下分,有AdaBoost和GBDT以及xgboost和lightBgm。此文是我這個(gè)boosting小白對(duì)boosting家族的理論知識(shí)的學(xué)習(xí)的的大致學(xué)習(xí)記錄。

先驗(yàn)知識(shí)
先驗(yàn)知識(shí)中,線(xiàn)性回歸、決策樹(shù)以及基本的特征工程相關(guān)的知識(shí)就不贅述了。主要學(xué)習(xí)下集成學(xué)習(xí)的來(lái)龍去脈。

集成學(xué)習(xí)
集成學(xué)習(xí)適合機(jī)器學(xué)習(xí)的幾乎所有的領(lǐng)域:回歸、分類(lèi)、推薦、排序等等。
后文中:

1.什么是集成學(xué)習(xí)?

在機(jī)器學(xué)習(xí)的有監(jiān)督學(xué)習(xí)算法中,我們的目標(biāo)是學(xué)習(xí)出一個(gè)穩(wěn)定的且在各個(gè)方面表現(xiàn)都較好的模型,但實(shí)際情況往往不會(huì)這么理想。可能模型A在某個(gè)方面變現(xiàn)優(yōu)于模型B,但模型B又不是處處都表現(xiàn)不好。也就是說(shuō):每個(gè)弱分類(lèi)器具備一定的“準(zhǔn)確性”,分類(lèi)器之間具備“差異性”。
上面提到的模型A、B常被稱(chēng)為基學(xué)習(xí)器(注意,基學(xué)習(xí)器與弱學(xué)習(xí)器(weak learner)其實(shí)并不是同等概念,基學(xué)習(xí)器范圍大于弱學(xué)習(xí)器)。
構(gòu)建并結(jié)合多個(gè)學(xué)習(xí)器來(lái)完成學(xué)習(xí)任務(wù),被稱(chēng)為集成學(xué)習(xí)。
集成學(xué)習(xí)潛在的思想是即便某一個(gè)弱分類(lèi)器得到了錯(cuò)誤的預(yù)測(cè),其他的弱分類(lèi)器也可以將錯(cuò)誤糾正回來(lái)。
2.為什么理論上集成學(xué)習(xí)效果會(huì)更好?

形象的說(shuō):集成學(xué)習(xí)的結(jié)果通過(guò)投票法(voting)產(chǎn)生,“少數(shù)服從多數(shù)”。也就是說(shuō),假設(shè)有5個(gè)若學(xué)習(xí)器,對(duì)于啊a,b,c三個(gè)事物的分類(lèi),分別有四個(gè)學(xué)習(xí)器結(jié)果相同,一個(gè)不相同。我們假設(shè)正確結(jié)果掌握在絕大多數(shù)“人”手中,那么投票會(huì)使得正確率由80%提升到100%。
抽象的說(shuō):【“西瓜”書(shū)P172、P173】
總結(jié):也就是我們常說(shuō)的“博采眾長(zhǎng)”。
3.集成學(xué)習(xí)的思路、核心點(diǎn)、要點(diǎn)

思路:通過(guò)迭代地訓(xùn)練一系列的分類(lèi)器,每個(gè)分類(lèi)器采用的樣本的選擇方式都和上一輪的學(xué)習(xí)結(jié)果有關(guān)。具體是如何關(guān)聯(lián)的,不同的集成學(xué)習(xí)算法有不同的實(shí)現(xiàn)。
集成學(xué)習(xí)的一個(gè)主要假設(shè)是:基學(xué)習(xí)器的誤差相互獨(dú)立。但是這可能嗎?同一任務(wù)中的不同基學(xué)習(xí)器的目標(biāo)是一樣的,再次再次它們的誤差也不可能相互獨(dú)立。所以說(shuō),事實(shí)上每個(gè)基學(xué)習(xí)器的“準(zhǔn)確率”和多樣性是沖突的。如何產(chǎn)生并結(jié)合“好而不同”的基學(xué)習(xí)器,就是集成學(xué)習(xí)研究的核心。
-可通過(guò)為每個(gè)基學(xué)習(xí)器拆分相互有一定交叉的子集,使得誤差盡量大一些(但是不可完全獨(dú)立的拆分子集)
要點(diǎn):
每個(gè)基學(xué)習(xí)器好于“隨機(jī)猜測(cè)”
基學(xué)習(xí)器盡量誤差相互獨(dú)立
基學(xué)習(xí)器各有優(yōu)點(diǎn),要有差異(Diversity)
選用不同的基學(xué)習(xí)器
4.集成學(xué)習(xí)的大致陣營(yíng)

主要可以分為三大類(lèi),Boosting、Bagging、Stacking。
強(qiáng)依賴(lài)關(guān)系、必須串行生成的順序方法(順序構(gòu)建多個(gè)學(xué)習(xí)器):Boosting(主要關(guān)注降低偏差)為代表
不存在強(qiáng)依賴(lài)關(guān)系、可同時(shí)生成的并行化方法(主要是減少運(yùn)算時(shí)間):Bagging(主要關(guān)注降低方差)、Stacking
Boosting的代表有AdaBoost, GBDT, XGBoost。而B(niǎo)agging的代表則是隨機(jī)森林 (Random Forest)。Stacking的
當(dāng)模型越復(fù)雜時(shí),擬合的程度就越高,模型的訓(xùn)練偏差就越小。但此時(shí)如果換一組數(shù)據(jù)可能模型的變化就會(huì)很大,即模型的方差很大。所以模型過(guò)于復(fù)雜的時(shí)候會(huì)導(dǎo)致過(guò)擬合。當(dāng)模型越簡(jiǎn)單時(shí),即使我們?cè)贀Q一組數(shù)據(jù),最后得出的學(xué)習(xí)器和之前的學(xué)習(xí)器的差別就不那么大,模型的方差很小。還是因?yàn)槟P秃?jiǎn)單,所以偏差會(huì)很大。
(作者:于菲 鏈接:https://www.zhihu.com/question/45487317/answer/99153174)

5.集成學(xué)習(xí)之結(jié)合策略
參考[7]

6.集成學(xué)習(xí)的缺點(diǎn)

計(jì)算復(fù)雜度大
一般而言,所得到的模型比較難解釋
boosting家族簡(jiǎn)述
在順序方法中,我們順序地構(gòu)建多個(gè)學(xué)習(xí)器。在構(gòu)建后面的學(xué)習(xí)器中,我們它能夠“糾正”前面的學(xué)習(xí)器的錯(cuò)誤,從而提高聚合后的準(zhǔn)確度。
基于圖形的理解見(jiàn)參考[3]

思路:
從初始訓(xùn)練集得到基學(xué)習(xí)器,根據(jù)其表現(xiàn),對(duì)訓(xùn)練樣本進(jìn)行調(diào)整,后續(xù)計(jì)算中,之前分類(lèi)錯(cuò)誤的樣本有較高的可能性被選到。(就像錯(cuò)題集,但是這里是把你的錯(cuò)題給其他人做,其他人多了,總會(huì)有人做對(duì)的。)然后拿調(diào)整后的樣本訓(xùn)練下一個(gè)基學(xué)習(xí)器,直到達(dá)到預(yù)設(shè)的基學(xué)習(xí)器個(gè)數(shù),最后再對(duì)這些個(gè)基學(xué)習(xí)器的結(jié)果進(jìn)行加權(quán)求和。
重采樣與重賦權(quán):
1.Boosting算法要求基學(xué)習(xí)器能對(duì)特定數(shù)據(jù)分布進(jìn)行學(xué)習(xí),這可以通過(guò)”重賦權(quán)法“或者”重采樣法“來(lái)處理。即在訓(xùn)練過(guò)程的每一輪中,根據(jù)樣本分布為每個(gè)訓(xùn)練樣本重新賦予一個(gè)權(quán)重。對(duì)于無(wú)法接受帶權(quán)重樣本的基學(xué)習(xí)算法,可以通過(guò)“重采樣法”來(lái)處理,即在每一輪學(xué)習(xí)中,根據(jù)樣本分布對(duì)訓(xùn)練集合重新進(jìn)行采樣,再用重采樣而得的樣本集對(duì)基學(xué)習(xí)器進(jìn)行訓(xùn)練。
2.Boosting算法在訓(xùn)練的每一輪都要檢查當(dāng)前生成的基學(xué)習(xí)器是否滿(mǎn)足設(shè)置的基本條件,如果不滿(mǎn)足就直接拋棄當(dāng)前基學(xué)習(xí)器,且學(xué)習(xí)過(guò)程停止。在這種情形下,初始設(shè)置的學(xué)習(xí)輪數(shù)T也許還遠(yuǎn)未達(dá)到,可能導(dǎo)致最終集成中只包含很少的基學(xué)習(xí)器而性能不佳。若采用“重采樣”則可能獲得**“重啟動(dòng)”的機(jī)會(huì)以避免訓(xùn)練過(guò)程過(guò)早停止**。即在拋棄不滿(mǎn)足條件的當(dāng)前基學(xué)習(xí)器之后,可以根據(jù)當(dāng)前分布重新對(duì)訓(xùn)練樣本進(jìn)行采樣,再基于新的采樣結(jié)果重新訓(xùn)練出基學(xué)習(xí)器,從而使學(xué)習(xí)過(guò)程可以持續(xù)到預(yù)設(shè)的T輪完成
從偏差-方差角度來(lái)看,Boosting主要關(guān)注降低偏差(廣義的偏差(bias)描述的是預(yù)測(cè)值和真實(shí)值之間的差異,方差(variance)描述距的是預(yù)測(cè)值作為隨機(jī)變量的離散程度)。因此Boosting能基于泛化性能相當(dāng)弱的學(xué)習(xí)器構(gòu)建出很強(qiáng)的集成。
Boosting方法的學(xué)習(xí)思想和模型結(jié)構(gòu)上可以保證其不容易產(chǎn)生過(guò)擬合(除非Weak Learner本身出現(xiàn)過(guò)擬合)

boosting家族——AdaBoosting
1995年由Freund和Schapire提出。

算法推理:“西瓜”書(shū)175,或者此鏈接

整體思路之圖片版:借用下涵子涵的圖(兄dei,要不再練練字。。。)


整體思路之文字版:http://www.52caml.com/head_first_ml/ml-chapter6-boosting-family/

最終模型的產(chǎn)出:

加大 分類(lèi)誤差率小 的弱分類(lèi)器的權(quán)值,使其在表決中起較大的作用;減小分類(lèi)誤差率大的弱分類(lèi)器的權(quán)值,使其在表決中起較小的作用。

boosting家族——GBDT
梯度提升決策樹(shù)(Gradient Boosting Decison Tree, 以下簡(jiǎn)稱(chēng)GBDT)
boosting tree(提升樹(shù))+ gradient boost(梯度提升算法)【提升樹(shù)是迭代多棵回歸樹(shù)來(lái)共同決策。】

概述:
1.GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一種迭代的決策樹(shù)算法,該算法由多棵決策樹(shù)組成,所有樹(shù)的結(jié)論累加起來(lái)做最終答案。它在被提出之初就和SVM一起被認(rèn)為是泛化能力較強(qiáng)的算法。GBDT中的樹(shù)是回歸樹(shù)(不是分類(lèi)樹(shù)),GBDT用來(lái)做回歸預(yù)測(cè),調(diào)整后也可以用于分類(lèi)。
2.回顧下Adaboost,其利用前一輪迭代弱學(xué)習(xí)器的誤差率來(lái)更新訓(xùn)練集的權(quán)重,這樣一輪輪的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱學(xué)習(xí)器限定了只能使用CART(分類(lèi)與回歸樹(shù))模型,同時(shí)迭代思路和Adaboost也有所不同。
**參考[5]和參考[6]**真的寫(xiě)得很不錯(cuò),我的實(shí)力“造”不出那樣的輪子,推薦多次閱讀
**參考[5]和參考[6]**真的寫(xiě)得很不錯(cuò),我的實(shí)力“造”不出那樣的輪子,推薦多次閱讀
**參考[5]和參考[6]**真的寫(xiě)得很不錯(cuò),我的實(shí)力“造”不出那樣的輪子,推薦多次閱讀

要點(diǎn)
GBDT中的回歸樹(shù)的每一個(gè)節(jié)點(diǎn)都會(huì)得一個(gè)預(yù)測(cè)值
提升樹(shù)是迭代多棵回歸樹(shù)來(lái)共同決策
提升樹(shù)利用加法模型和前向分步算法實(shí)現(xiàn)學(xué)習(xí)的優(yōu)化過(guò)程。
boosting家族——XGBoost
與gbdt相比,具體的優(yōu)點(diǎn)有:

1.損失函數(shù)是用泰勒展式二項(xiàng)逼近,而不是像gbdt里就是一階導(dǎo)數(shù)
2.對(duì)樹(shù)的結(jié)構(gòu)進(jìn)行了正則化約束,防止模型過(guò)度復(fù)雜,降低了過(guò)擬合的可能性
3.節(jié)點(diǎn)分裂的方式不同,gbdt是用的gini系數(shù),xgboost是經(jīng)過(guò)優(yōu)化推導(dǎo)后的

gboost中的基學(xué)習(xí)器除了可以是CART(gbtree)也可以是線(xiàn)性分類(lèi)器(gblinear)。下面所有的內(nèi)容來(lái)自原始paper,包括公式。

。。。我真的看不下去了。。。
還是改天慢慢看參考[5]

這兩天先具體的實(shí)踐下XGBoost,實(shí)踐調(diào)優(yōu)的過(guò)程中慢慢回來(lái)補(bǔ)這部分的博客。

RandomForest 與 GBDT 的區(qū)別
相同點(diǎn):

1.都由很多棵樹(shù)組成

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

不同點(diǎn):

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

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

3.RandomForest 對(duì)異常值不敏感,GBDT敏感

4.RandomForest是通過(guò)降低模型方差來(lái)提高性能的,而GBDT是通過(guò)降低偏差來(lái)提高性能

參考
[1].《機(jī)器學(xué)習(xí)》-周志華
[2].《實(shí)用機(jī)器學(xué)習(xí)》-孫亮/黃倩
[3].博客園——機(jī)器學(xué)習(xí)中的數(shù)學(xué)(3)-模型組合(Model Combining)之Boosting與Gradient Boosting
[4]建議閱讀此文,綜合
[5]集成學(xué)習(xí)總結(jié),綜合
[6]博客園——梯度提升樹(shù)(GBDT)原理小結(jié)
[7]博客園——集成學(xué)習(xí)的結(jié)合策略
[8]博客園——使用sklearn進(jìn)行集成學(xué)習(xí)——理論
————————————————
版權(quán)聲明:本文為CSDN博主「haixwang」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/HaixWang/article/details/79949195

總結(jié)

以上是生活随笔為你收集整理的boosting家族之综合理论篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。