(15)監(jiān)督學(xué)習(xí)-分類問(wèn)題-集成學(xué)習(xí)

? ? 集成多個(gè)弱分類器來(lái)改善分類器的泛化性能和魯棒性。多個(gè)弱分類器線性組合成一個(gè)強(qiáng)分類器??梢允遣煌惴ǖ募?,也可以是同一算法不同設(shè)置,還可以是數(shù)據(jù)集不同部分分配給不同分類器后的集成。

????工業(yè)上一般喜歡使用集成模型,雖然需要耗費(fèi)更多時(shí)間,但是可以獲得更好的性能(抵抗過(guò)你和)和穩(wěn)定性。

????如果弱分類器之間有很強(qiáng)的相關(guān)性,只能串行生成的方法——boost

????如果弱分類器之間沒(méi)有很強(qiáng)的相關(guān)性,可以并行的生成的方法——bagging和隨機(jī)森林

? ??Boosting主要關(guān)注降低偏差,因此Boosting能基于泛化性能相當(dāng)弱的學(xué)習(xí)器構(gòu)建出很強(qiáng)的集成;Bagging主要關(guān)注降低方差,因此它在不剪枝的決策樹(shù)、神經(jīng)網(wǎng)絡(luò)等學(xué)習(xí)器上效用更為明顯。偏差指的是算法的期望預(yù)測(cè)與真實(shí)預(yù)測(cè)之間的偏差程度,反應(yīng)了模型本身的擬合能力;方差度量了同等大小的訓(xùn)練集的變動(dòng)導(dǎo)致學(xué)習(xí)性能的變化,刻畫(huà)了數(shù)據(jù)擾動(dòng)所導(dǎo)致的影響。

? ??Bagging 有放回抽樣,各個(gè)分類器權(quán)重相同。如隨機(jī)深林;主要關(guān)注降低方差;各分類器之間并行。

????Boosting 無(wú)放回 集中關(guān)注被錯(cuò)分的數(shù)據(jù) 各個(gè)分類器權(quán)重不同 ,其權(quán)重表示上一輪迭代過(guò)程中的成功度。如AdaBoost(adaptive boost 自適應(yīng) boost);主要關(guān)注降低偏差。各分類器之間串行。通過(guò)迭代過(guò)程對(duì)分類器的輸入輸出進(jìn)行加權(quán)處理。

? ? 可參見(jiàn):https://blog.csdn.net/qq_28031525/article/details/70207918

(1)Bagging

????Bagging 采取的基分類器,最好是本身對(duì)樣本分布較為敏感的,即所謂不穩(wěn)定的分類器。線性分類器或者K-近鄰都是較為穩(wěn)定的分類器,本身方差就不大,可能因?yàn)閎agging采樣,導(dǎo)致在訓(xùn)練中難以收斂。

(2)隨機(jī)森林

????隨機(jī)森林為啥隨機(jī)?

????隨機(jī)森林是選擇n棵不相關(guān)的決策樹(shù),每棵樹(shù)隨機(jī)的有放回的選取m個(gè)數(shù)據(jù),最后通過(guò)投票法則來(lái)進(jìn)行決斷。因此可以概括RF包括四個(gè)部分:1、隨機(jī)選擇樣本(放回抽樣);2、隨機(jī)選擇特征;3、構(gòu)建決策樹(shù);4、隨機(jī)森林投票(平均)。

????隨機(jī)森林的優(yōu)點(diǎn)較多,簡(jiǎn)單總結(jié):1、在數(shù)據(jù)集上表現(xiàn)良好,相對(duì)于其他算法有較大的優(yōu)勢(shì)(訓(xùn)練速度、預(yù)測(cè)準(zhǔn)確度);2、能夠處理很高維的數(shù)據(jù),并且不用特征選擇,而且在訓(xùn)練完后,給出特征的重要性;3、容易做成并行化方法。

????RF的缺點(diǎn):在噪聲較大的分類或者回歸問(wèn)題上回過(guò)擬合。

(3)Adaboost

? ? ? ? Adaboost 是Adaptive Boost的縮寫(xiě)。在訓(xùn)練過(guò)程中,訓(xùn)練數(shù)據(jù)的每一個(gè)樣本,都被賦予一個(gè)權(quán)重。開(kāi)始時(shí),這些權(quán)重被初始化成了相等值。首先在一個(gè)弱分類器上訓(xùn)練,計(jì)算該分類器的錯(cuò)誤率,然后再在相同數(shù)據(jù)集上再次訓(xùn)練。上次分對(duì)的數(shù)據(jù)的權(quán)重減弱,分錯(cuò)的數(shù)據(jù)上的權(quán)重增加。同時(shí)每個(gè)分類器都有一個(gè)權(quán)重\alpha ,這個(gè)權(quán)重基于弱分類器的錯(cuò)誤率計(jì)算出來(lái)\varepsilon 。\alpha  = \frac{1}{2} \ln \frac{1-\varepsilon }{\varepsilon } 當(dāng)多個(gè)弱分類器差距比較大時(shí),可以緩解過(guò)擬合問(wèn)題。


adaptive boost

(4)?GBDT

????梯度提升與梯度下降算法,兩者都在每一輪的迭代中,利用損失函數(shù)相對(duì)于模型的負(fù)梯度方向的信息來(lái)對(duì)當(dāng)前模型進(jìn)行更新。不同的是,在梯度下降中,模型是以參數(shù)化形式表示,而模型的更新等于參數(shù)的更新。在梯度提升中,模型并不需要進(jìn)行參數(shù)化表示,而是定義在函數(shù)空間中,從而大大提升了可以使用的模型種類。

????其優(yōu)點(diǎn)是:

????樹(shù)與樹(shù)之間可并行化計(jì)算;泛化能力較好;不需要對(duì)數(shù)據(jù)進(jìn)行歸一化等

????其缺點(diǎn)是:

????在高維稀疏的數(shù)據(jù)集上和文本特征問(wèn)題上,效果不好;訓(xùn)練過(guò)程需要串行訓(xùn)練。

????其公式為:f_{M}(x) = \sum_{m=1}^MT(x;\vartheta _{m} )  ,即決策樹(shù)的加法模型。

? ? 提升樹(shù)算法采用前向分步算法,首先確定提升樹(shù)f_{0} (x) = 0,第m步的模型為f_{m} (x) = f_{m-1} (x) + T(x;\vartheta _{m} );其中f_{m-1} (x) 為當(dāng)前模型,通過(guò)經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化確定下一棵決策樹(shù)的參數(shù)\vartheta _{m} ,即\tilde{\vartheta } _{m} = arg min\sum_{i=1}^N L(y_{i},f_{m-1}(x_{i} )+T(x_{i};\vartheta  _{m})  )

? ? 當(dāng)采用平方差損失函數(shù)時(shí),L(y,f(x)) = (y-f(x))^2 ,,并采用梯度下降法進(jìn)行優(yōu)化,其一階導(dǎo)即為y-f(x),即當(dāng)前模型的殘差。

(5)GDBT與隨機(jī)森林的區(qū)別

????GBDT是以決策樹(shù)為基學(xué)習(xí)器的迭代算法,注意GBDT里的決策樹(shù)都是回歸樹(shù)而不是分類樹(shù)。Boost是”提升”的意思,一般Boosting算法都是一個(gè)迭代的過(guò)程,每一次新的訓(xùn)練都是為了改進(jìn)上一次的結(jié)果。

????GBDT的核心就在于:每一棵樹(shù)學(xué)的是之前所有樹(shù)結(jié)論和的殘差,這個(gè)殘差就是一個(gè)加預(yù)測(cè)值后能得真實(shí)值的累加量。比如A的真實(shí)年齡是18歲,但第一棵樹(shù)的預(yù)測(cè)年齡是12歲,差了6歲,即殘差為6歲。那么在第二棵樹(shù)里我們把A的年齡設(shè)為6歲去學(xué)習(xí),如果第二棵樹(shù)真的能把A分到6歲的葉子節(jié)點(diǎn),那累加兩棵樹(shù)的結(jié)論就是A的真實(shí)年齡;如果第二棵樹(shù)的結(jié)論是5歲,則A仍然存在1歲的殘差,第三棵樹(shù)里A的年齡就變成1歲,繼續(xù)學(xué)習(xí)。

????隨機(jī)森林采用的bagging思想,而GBDT采用的boosting思想。但二者的區(qū)別在于:Bagging采用有放回的均勻取樣,而B(niǎo)oosting根據(jù)錯(cuò)誤率來(lái)取樣(Boosting初始化時(shí)對(duì)每一個(gè)訓(xùn)練樣例賦相等的權(quán)重1/n,然后用該算法對(duì)訓(xùn)練集訓(xùn)練t輪,每次訓(xùn)練后,對(duì)訓(xùn)練失敗的樣例賦以較大的權(quán)重),因此Boosting的分類精度要優(yōu)于Bagging。Bagging的訓(xùn)練集的選擇是隨機(jī)的,各訓(xùn)練集之間相互獨(dú)立,弱分類器可并行,而B(niǎo)oosting的訓(xùn)練集的選擇與前一輪的學(xué)習(xí)結(jié)果有關(guān),是串行的。

????組成隨機(jī)森林的樹(shù)可以是分類樹(shù),也可以是回歸樹(shù);而GBDT只能由回歸樹(shù)組成。

????組成隨機(jī)森林的樹(shù)可以并行生成;而GBDT只能是串行生成。

????對(duì)于最終的輸出結(jié)果而言,隨機(jī)森林采用多數(shù)投票等;而GBDT則是將所有結(jié)果累加起來(lái),或者加權(quán)累加起來(lái)。

????隨機(jī)森林對(duì)異常值不敏感;GBDT對(duì)異常值非常敏感。

????隨機(jī)森林對(duì)訓(xùn)練集一視同仁;GBDT是基于權(quán)值的弱分類器的集成。

????隨機(jī)森林是通過(guò)減少模型方差提高性能;GBDT是通過(guò)減少模型偏差提高性能。

(6)?XGBOOST

????有專門(mén)的包,可在python環(huán)境下直接使用。

????特征選擇時(shí)的并行、缺失值、異常值等的處理。

????GBDT只用到了一階導(dǎo)數(shù);XGBOOST用到了二階導(dǎo)樹(shù)。

????使用了正則項(xiàng)。加速方法的使用。

????XGBOOST支持多種基分類器。

????其防止過(guò)擬合的方法——增加樣本、減少特征、

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容