? ? 集成多個(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)重,這個(gè)權(quán)重基于弱分類器的錯(cuò)誤率計(jì)算出來(lái)
。
當(dāng)多個(gè)弱分類器差距比較大時(shí),可以緩解過(guò)擬合問(wèn)題。

(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)練。
????其公式為:,即決策樹(shù)的加法模型。
? ? 提升樹(shù)算法采用前向分步算法,首先確定提升樹(shù),第m步的模型為
;其中
為當(dāng)前模型,通過(guò)經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化確定下一棵決策樹(shù)的參數(shù)
,即
? ? 當(dāng)采用平方差損失函數(shù)時(shí),,,并采用梯度下降法進(jìn)行優(yōu)化,其一階導(dǎo)即為
,即當(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ò)擬合的方法——增加樣本、減少特征、