一文詳解集成學(xué)習(xí)算法原理
一、集成學(xué)習(xí)概述
集成學(xué)習(xí)的核心思想在于“三個臭皮匠,頂個諸葛亮”,即通過結(jié)合多個相對簡單的學(xué)習(xí)器(也被稱為基學(xué)習(xí)器),使其協(xié)同工作,最終達(dá)到比單個學(xué)習(xí)器更好的預(yù)測效果。它假設(shè)基學(xué)習(xí)器之間存在一定的差異性,并且能夠通過合適的集成策略將這些差異轉(zhuǎn)化為優(yōu)勢,減少模型的偏差和方差,進(jìn)而提升整體的準(zhǔn)確性和穩(wěn)定性。
二、Bagging(Bootstrap Aggregating,自助聚集)
(一)基本原理
Bagging 的操作過程可以分為三步:
- 自助采樣:從原始訓(xùn)練數(shù)據(jù)集 中有放回地進(jìn)行抽樣,以此構(gòu)建多個不同的子數(shù)據(jù)集 (),每個子數(shù)據(jù)集的樣本數(shù)量通常和原始數(shù)據(jù)集一樣大。由于是有放回抽樣,所以有些樣本可能會在同一個子數(shù)據(jù)集中多次出現(xiàn),而有些樣本可能不會被抽到。例如,對于一個含有 個樣本的原始數(shù)據(jù)集,每次抽樣都是從這 個樣本中隨機抽取一個,重復(fù) 次來構(gòu)成一個子數(shù)據(jù)集,這樣經(jīng)過 次抽樣,就得到了
- 基學(xué)習(xí)器訓(xùn)練:基于每個子數(shù)據(jù)集 分別獨立地訓(xùn)練一個基學(xué)習(xí)器 。這里的基學(xué)習(xí)器可以是決策樹、神經(jīng)網(wǎng)絡(luò)等常見的機器學(xué)習(xí)模型。由于各個子數(shù)據(jù)集之間存在差異,所以訓(xùn)練出來的基學(xué)習(xí)器也會各有不同,它們從不同角度對數(shù)據(jù)中的模式進(jìn)行學(xué)習(xí)和捕捉。
- 集成預(yù)測:在預(yù)測階段,對于分類任務(wù),通常采用簡單投票法,也就是統(tǒng)計各個基學(xué)習(xí)器的預(yù)測類別,選擇出現(xiàn)次數(shù)最多的類別作為最終的預(yù)測結(jié)果;對于回歸任務(wù),則采用平均法,即將各個基學(xué)習(xí)器的預(yù)測值進(jìn)行平均,得到最終的預(yù)測值。
(二)理論優(yōu)勢分析
從偏差-方差分解的角度來看,Bagging 主要有助于降低模型的方差。因為每個基學(xué)習(xí)器都是基于不同的子數(shù)據(jù)集訓(xùn)練出來的,它們的波動情況(方差)會有所不同,通過集成平均或者投票的方式,可以使得整體模型的方差變小,從而提高模型的穩(wěn)定性,減少過擬合的風(fēng)險,尤其適用于那些本身方差較大、容易過擬合的基學(xué)習(xí)器,比如深度較深的決策樹。
(三)代表算法——隨機森林(Random Forest)
隨機森林是 Bagging 最具代表性的應(yīng)用,它以決策樹作為基學(xué)習(xí)器。除了遵循 Bagging 的基本流程外,在訓(xùn)練每棵決策樹時,還額外引入了特征隨機選擇的機制。即在節(jié)點分裂時,并不是從所有特征中選擇最優(yōu)特征來分裂,而是從一個隨機子集(通常是特征總量的平方根數(shù)量的特征子集)中選擇,這進(jìn)一步增加了基學(xué)習(xí)器之間的差異性,使得隨機森林在處理高維數(shù)據(jù)時能夠篩選出更重要的特征,同時也提升了模型的泛化能力,在眾多領(lǐng)域如數(shù)據(jù)挖掘、圖像識別、自然語言處理等都有著廣泛的應(yīng)用。
三、Boosting
(一)基本原理
Boosting 是一種迭代式的集成學(xué)習(xí)方法,它按順序依次訓(xùn)練基學(xué)習(xí)器,其核心步驟如下:

(二)理論優(yōu)勢分析
Boosting 方法著重于降低模型的偏差。它通過不斷地調(diào)整樣本權(quán)重,迫使后續(xù)的基學(xué)習(xí)器去關(guān)注那些難以被準(zhǔn)確分類或者預(yù)測的樣本,逐步修正前面學(xué)習(xí)器的錯誤,使得整個集成模型能夠更精準(zhǔn)地擬合訓(xùn)練數(shù)據(jù),從而降低偏差,提高模型的準(zhǔn)確性。
(三)代表算法
- AdaBoost(Adaptive Boosting,自適應(yīng)提升):它是 Boosting 算法家族中的經(jīng)典代表,在每一輪迭代中,根據(jù)基學(xué)習(xí)器的誤差率自適應(yīng)地調(diào)整樣本權(quán)重以及基學(xué)習(xí)器自身的權(quán)重。具體來說,誤差率小的基學(xué)習(xí)器會被賦予較大的權(quán)重,在最終的集成中起到更重要的作用;而誤差率大的基學(xué)習(xí)器權(quán)重則較小。通過這種方式,AdaBoost 可以有效地將多個弱分類器(準(zhǔn)確率僅略高于隨機猜測的分類器)組合成一個強分類器,在二分類以及多分類問題中都有著良好的應(yīng)用效果,例如在文本分類領(lǐng)域,能夠很好地區(qū)分不同主題的文本。
- Gradient Boosting(梯度提升):它的核心在于利用損失函數(shù)的負(fù)梯度來擬合新的基學(xué)習(xí)器。每一次迭代都是在嘗試減少之前模型的整體損失,通過計算當(dāng)前模型在訓(xùn)練數(shù)據(jù)上的損失函數(shù)的梯度(反映了損失函數(shù)下降最快的方向),然后基于這個負(fù)梯度方向去訓(xùn)練新的基學(xué)習(xí)器,使得新的基學(xué)習(xí)器能夠彌補之前模型的不足,朝著使損失更小的方向改進(jìn)。在回歸和分類任務(wù)中都展現(xiàn)出了卓越的性能,衍生出了諸如 XGBoost(eXtreme Gradient Boosting)、LightGBM 等高效的算法,這些算法在數(shù)據(jù)挖掘競賽、工業(yè)界的大數(shù)據(jù)分析等場景中被廣泛應(yīng)用,得益于其高效的計算性能、良好的可擴展性以及優(yōu)秀的預(yù)測準(zhǔn)確率。
四、Stacking(堆疊)
(一)基本原理
Stacking 的操作流程相對復(fù)雜一些,主要分為以下幾個階段:
- 數(shù)據(jù)劃分:將原始訓(xùn)練數(shù)據(jù)集 劃分為兩部分,一部分作為訓(xùn)練集 ,用于訓(xùn)練第一層的多個基學(xué)習(xí)器;另一部分作為驗證集 ,用于后續(xù)生成新的特征以及訓(xùn)練第二層的元學(xué)習(xí)器。
- 訓(xùn)練第一層基學(xué)習(xí)器:選擇多種不同類型的機器學(xué)習(xí)算法作為第一層的基學(xué)習(xí)器(例如決策樹、支持向量機、神經(jīng)網(wǎng)絡(luò)等),分別利用訓(xùn)練集 對它們進(jìn)行訓(xùn)練,得到 個基學(xué)習(xí)器 。
- 生成新特征:將訓(xùn)練好的基學(xué)習(xí)器應(yīng)用到驗證集 上,每個基學(xué)習(xí)器都會對驗證集中的樣本產(chǎn)生一個預(yù)測結(jié)果,將這些預(yù)測結(jié)果按照一定的方式進(jìn)行整理,就可以構(gòu)建出一個新的數(shù)據(jù)集 ,其特征維度就是基學(xué)習(xí)器的數(shù)量,每個樣本對應(yīng)的特征值就是各個基學(xué)習(xí)器對該樣本的預(yù)測值。這個新數(shù)據(jù)集就相當(dāng)于把各個基學(xué)習(xí)器對數(shù)據(jù)的理解和判斷整合到了一起,蘊含了不同角度的信息。
- 訓(xùn)練第二層元學(xué)習(xí)器:利用新生成的數(shù)據(jù)集
- 預(yù)測階段:對于新的測試數(shù)據(jù),首先將其輸入到第一層的各個基學(xué)習(xí)器中得到預(yù)測結(jié)果,然后將這些預(yù)測結(jié)果組成新的特征向量,再將這個特征向量輸入到第二層的元學(xué)習(xí)器中,最終得到整個集成模型的預(yù)測結(jié)果。
(二)理論優(yōu)勢分析
Stacking 的優(yōu)勢在于它能夠融合多種不同類型學(xué)習(xí)器的特點和優(yōu)勢。不同的基學(xué)習(xí)器可能擅長捕捉數(shù)據(jù)中不同方面的模式和規(guī)律,通過將它們的預(yù)測結(jié)果作為新特征,再讓元學(xué)習(xí)器進(jìn)行綜合學(xué)習(xí),可以充分利用各個學(xué)習(xí)器的長處,挖掘出更復(fù)雜、更準(zhǔn)確的預(yù)測關(guān)系,理論上有可能獲得比單一學(xué)習(xí)器或者簡單集成方式更好的性能表現(xiàn)。
(三)應(yīng)用場景與局限性
Stacking 常用于那些對預(yù)測準(zhǔn)確率要求極高且數(shù)據(jù)特征較為復(fù)雜、難以用單一模型有效處理的任務(wù)場景,比如復(fù)雜的金融風(fēng)險預(yù)測,需要綜合考慮多個因素且不同模型可能對不同因素的敏感性不同;還有醫(yī)學(xué)疾病診斷領(lǐng)域,要綜合多種檢測指標(biāo)以及不同模型對病情的判斷等。然而,它的缺點也比較明顯,訓(xùn)練過程相對繁瑣,需要訓(xùn)練多個基學(xué)習(xí)器以及額外的元學(xué)習(xí)器,計算成本較高,而且如果基學(xué)習(xí)器選擇不當(dāng)或者數(shù)據(jù)劃分不合理等,可能無法充分發(fā)揮其優(yōu)勢,甚至可能導(dǎo)致性能不如一些簡單的集成方法。
總之,集成學(xué)習(xí)的這些算法在理論基礎(chǔ)和操作方式上各有千秋,它們在不同的應(yīng)用場景下能夠根據(jù)數(shù)據(jù)特點發(fā)揮獨特的作用,為解決復(fù)雜的機器學(xué)習(xí)問題提供了強有力的手段,是廣大機器學(xué)習(xí)從業(yè)者和研究者值得深入研究和應(yīng)用的重要技術(shù)方向。
本文轉(zhuǎn)載自??寶寶數(shù)模AI??,作者: BBSM ????

















