一文詳解集成學(xué)習(xí)算法原理
一、集成學(xué)習(xí)概述
集成學(xué)習(xí)的核心思想在于“三個(gè)臭皮匠,頂個(gè)諸葛亮”,即通過結(jié)合多個(gè)相對(duì)簡(jiǎn)單的學(xué)習(xí)器(也被稱為基學(xué)習(xí)器),使其協(xié)同工作,最終達(dá)到比單個(gè)學(xué)習(xí)器更好的預(yù)測(cè)效果。它假設(shè)基學(xué)習(xí)器之間存在一定的差異性,并且能夠通過合適的集成策略將這些差異轉(zhuǎn)化為優(yōu)勢(shì),減少模型的偏差和方差,進(jìn)而提升整體的準(zhǔn)確性和穩(wěn)定性。
二、Bagging(Bootstrap Aggregating,自助聚集)
(一)基本原理
Bagging 的操作過程可以分為三步:
- 自助采樣:從原始訓(xùn)練數(shù)據(jù)集 中有放回地進(jìn)行抽樣,以此構(gòu)建多個(gè)不同的子數(shù)據(jù)集 (),每個(gè)子數(shù)據(jù)集的樣本數(shù)量通常和原始數(shù)據(jù)集一樣大。由于是有放回抽樣,所以有些樣本可能會(huì)在同一個(gè)子數(shù)據(jù)集中多次出現(xiàn),而有些樣本可能不會(huì)被抽到。例如,對(duì)于一個(gè)含有 個(gè)樣本的原始數(shù)據(jù)集,每次抽樣都是從這 個(gè)樣本中隨機(jī)抽取一個(gè),重復(fù) 次來構(gòu)成一個(gè)子數(shù)據(jù)集,這樣經(jīng)過 次抽樣,就得到了
- 基學(xué)習(xí)器訓(xùn)練:基于每個(gè)子數(shù)據(jù)集 分別獨(dú)立地訓(xùn)練一個(gè)基學(xué)習(xí)器 。這里的基學(xué)習(xí)器可以是決策樹、神經(jīng)網(wǎng)絡(luò)等常見的機(jī)器學(xué)習(xí)模型。由于各個(gè)子數(shù)據(jù)集之間存在差異,所以訓(xùn)練出來的基學(xué)習(xí)器也會(huì)各有不同,它們從不同角度對(duì)數(shù)據(jù)中的模式進(jìn)行學(xué)習(xí)和捕捉。
- 集成預(yù)測(cè):在預(yù)測(cè)階段,對(duì)于分類任務(wù),通常采用簡(jiǎn)單投票法,也就是統(tǒng)計(jì)各個(gè)基學(xué)習(xí)器的預(yù)測(cè)類別,選擇出現(xiàn)次數(shù)最多的類別作為最終的預(yù)測(cè)結(jié)果;對(duì)于回歸任務(wù),則采用平均法,即將各個(gè)基學(xué)習(xí)器的預(yù)測(cè)值進(jìn)行平均,得到最終的預(yù)測(cè)值。
(二)理論優(yōu)勢(shì)分析
從偏差-方差分解的角度來看,Bagging 主要有助于降低模型的方差。因?yàn)槊總€(gè)基學(xué)習(xí)器都是基于不同的子數(shù)據(jù)集訓(xùn)練出來的,它們的波動(dòng)情況(方差)會(huì)有所不同,通過集成平均或者投票的方式,可以使得整體模型的方差變小,從而提高模型的穩(wěn)定性,減少過擬合的風(fēng)險(xiǎn),尤其適用于那些本身方差較大、容易過擬合的基學(xué)習(xí)器,比如深度較深的決策樹。
(三)代表算法——隨機(jī)森林(Random Forest)
隨機(jī)森林是 Bagging 最具代表性的應(yīng)用,它以決策樹作為基學(xué)習(xí)器。除了遵循 Bagging 的基本流程外,在訓(xùn)練每棵決策樹時(shí),還額外引入了特征隨機(jī)選擇的機(jī)制。即在節(jié)點(diǎn)分裂時(shí),并不是從所有特征中選擇最優(yōu)特征來分裂,而是從一個(gè)隨機(jī)子集(通常是特征總量的平方根數(shù)量的特征子集)中選擇,這進(jìn)一步增加了基學(xué)習(xí)器之間的差異性,使得隨機(jī)森林在處理高維數(shù)據(jù)時(shí)能夠篩選出更重要的特征,同時(shí)也提升了模型的泛化能力,在眾多領(lǐng)域如數(shù)據(jù)挖掘、圖像識(shí)別、自然語言處理等都有著廣泛的應(yīng)用。
三、Boosting
(一)基本原理
Boosting 是一種迭代式的集成學(xué)習(xí)方法,它按順序依次訓(xùn)練基學(xué)習(xí)器,其核心步驟如下:
(二)理論優(yōu)勢(shì)分析
Boosting 方法著重于降低模型的偏差。它通過不斷地調(diào)整樣本權(quán)重,迫使后續(xù)的基學(xué)習(xí)器去關(guān)注那些難以被準(zhǔn)確分類或者預(yù)測(cè)的樣本,逐步修正前面學(xué)習(xí)器的錯(cuò)誤,使得整個(gè)集成模型能夠更精準(zhǔn)地?cái)M合訓(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í)器會(huì)被賦予較大的權(quán)重,在最終的集成中起到更重要的作用;而誤差率大的基學(xué)習(xí)器權(quán)重則較小。通過這種方式,AdaBoost 可以有效地將多個(gè)弱分類器(準(zhǔn)確率僅略高于隨機(jī)猜測(cè)的分類器)組合成一個(gè)強(qiáng)分類器,在二分類以及多分類問題中都有著良好的應(yīng)用效果,例如在文本分類領(lǐng)域,能夠很好地區(qū)分不同主題的文本。
- Gradient Boosting(梯度提升):它的核心在于利用損失函數(shù)的負(fù)梯度來擬合新的基學(xué)習(xí)器。每一次迭代都是在嘗試減少之前模型的整體損失,通過計(jì)算當(dāng)前模型在訓(xùn)練數(shù)據(jù)上的損失函數(shù)的梯度(反映了損失函數(shù)下降最快的方向),然后基于這個(gè)負(fù)梯度方向去訓(xùn)練新的基學(xué)習(xí)器,使得新的基學(xué)習(xí)器能夠彌補(bǔ)之前模型的不足,朝著使損失更小的方向改進(jìn)。在回歸和分類任務(wù)中都展現(xiàn)出了卓越的性能,衍生出了諸如 XGBoost(eXtreme Gradient Boosting)、LightGBM 等高效的算法,這些算法在數(shù)據(jù)挖掘競(jìng)賽、工業(yè)界的大數(shù)據(jù)分析等場(chǎng)景中被廣泛應(yīng)用,得益于其高效的計(jì)算性能、良好的可擴(kuò)展性以及優(yōu)秀的預(yù)測(cè)準(zhǔn)確率。
四、Stacking(堆疊)
(一)基本原理
Stacking 的操作流程相對(duì)復(fù)雜一些,主要分為以下幾個(gè)階段:
- 數(shù)據(jù)劃分:將原始訓(xùn)練數(shù)據(jù)集 劃分為兩部分,一部分作為訓(xùn)練集 ,用于訓(xùn)練第一層的多個(gè)基學(xué)習(xí)器;另一部分作為驗(yàn)證集 ,用于后續(xù)生成新的特征以及訓(xùn)練第二層的元學(xué)習(xí)器。
- 訓(xùn)練第一層基學(xué)習(xí)器:選擇多種不同類型的機(jī)器學(xué)習(xí)算法作為第一層的基學(xué)習(xí)器(例如決策樹、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等),分別利用訓(xùn)練集 對(duì)它們進(jìn)行訓(xùn)練,得到 個(gè)基學(xué)習(xí)器 。
- 生成新特征:將訓(xùn)練好的基學(xué)習(xí)器應(yīng)用到驗(yàn)證集 上,每個(gè)基學(xué)習(xí)器都會(huì)對(duì)驗(yàn)證集中的樣本產(chǎn)生一個(gè)預(yù)測(cè)結(jié)果,將這些預(yù)測(cè)結(jié)果按照一定的方式進(jìn)行整理,就可以構(gòu)建出一個(gè)新的數(shù)據(jù)集 ,其特征維度就是基學(xué)習(xí)器的數(shù)量,每個(gè)樣本對(duì)應(yīng)的特征值就是各個(gè)基學(xué)習(xí)器對(duì)該樣本的預(yù)測(cè)值。這個(gè)新數(shù)據(jù)集就相當(dāng)于把各個(gè)基學(xué)習(xí)器對(duì)數(shù)據(jù)的理解和判斷整合到了一起,蘊(yùn)含了不同角度的信息。
- 訓(xùn)練第二層元學(xué)習(xí)器:利用新生成的數(shù)據(jù)集
- 預(yù)測(cè)階段:對(duì)于新的測(cè)試數(shù)據(jù),首先將其輸入到第一層的各個(gè)基學(xué)習(xí)器中得到預(yù)測(cè)結(jié)果,然后將這些預(yù)測(cè)結(jié)果組成新的特征向量,再將這個(gè)特征向量輸入到第二層的元學(xué)習(xí)器中,最終得到整個(gè)集成模型的預(yù)測(cè)結(jié)果。
(二)理論優(yōu)勢(shì)分析
Stacking 的優(yōu)勢(shì)在于它能夠融合多種不同類型學(xué)習(xí)器的特點(diǎn)和優(yōu)勢(shì)。不同的基學(xué)習(xí)器可能擅長(zhǎng)捕捉數(shù)據(jù)中不同方面的模式和規(guī)律,通過將它們的預(yù)測(cè)結(jié)果作為新特征,再讓元學(xué)習(xí)器進(jìn)行綜合學(xué)習(xí),可以充分利用各個(gè)學(xué)習(xí)器的長(zhǎng)處,挖掘出更復(fù)雜、更準(zhǔn)確的預(yù)測(cè)關(guān)系,理論上有可能獲得比單一學(xué)習(xí)器或者簡(jiǎn)單集成方式更好的性能表現(xiàn)。
(三)應(yīng)用場(chǎng)景與局限性
Stacking 常用于那些對(duì)預(yù)測(cè)準(zhǔn)確率要求極高且數(shù)據(jù)特征較為復(fù)雜、難以用單一模型有效處理的任務(wù)場(chǎng)景,比如復(fù)雜的金融風(fēng)險(xiǎn)預(yù)測(cè),需要綜合考慮多個(gè)因素且不同模型可能對(duì)不同因素的敏感性不同;還有醫(yī)學(xué)疾病診斷領(lǐng)域,要綜合多種檢測(cè)指標(biāo)以及不同模型對(duì)病情的判斷等。然而,它的缺點(diǎn)也比較明顯,訓(xùn)練過程相對(duì)繁瑣,需要訓(xùn)練多個(gè)基學(xué)習(xí)器以及額外的元學(xué)習(xí)器,計(jì)算成本較高,而且如果基學(xué)習(xí)器選擇不當(dāng)或者數(shù)據(jù)劃分不合理等,可能無法充分發(fā)揮其優(yōu)勢(shì),甚至可能導(dǎo)致性能不如一些簡(jiǎn)單的集成方法。
總之,集成學(xué)習(xí)的這些算法在理論基礎(chǔ)和操作方式上各有千秋,它們?cè)诓煌膽?yīng)用場(chǎng)景下能夠根據(jù)數(shù)據(jù)特點(diǎn)發(fā)揮獨(dú)特的作用,為解決復(fù)雜的機(jī)器學(xué)習(xí)問題提供了強(qiáng)有力的手段,是廣大機(jī)器學(xué)習(xí)從業(yè)者和研究者值得深入研究和應(yīng)用的重要技術(shù)方向。
本文轉(zhuǎn)載自??寶寶數(shù)模AI??,作者: BBSM ????
