一文看懂集成學習(詳解 bagging、boosting 以及他們的 4 點區別)

2021-03-06 產品經理的 AI 知識庫


在機器學習中,我們講了很多不同的算法。那些算法都是單打獨鬥的英雄。而集成學習就是將這些英雄組成團隊。實現「3 個臭皮匠頂個諸葛亮」的效果。

本文將介紹集成學習的 2 種主要思路:bagging、boosting。

什麼是集成學習?

集成學習歸屬於機器學習,他是一種「訓練思路」,並不是某種具體的方法或者算法。

現實生活中,大家都知道「人多力量大」,「3 個臭皮匠頂個諸葛亮」。而集成學習的核心思路就是「人多力量大」,它並沒有創造出新的算法,而是把已有的算法進行結合,從而得到更好的效果。

集成學習會挑選一些簡單的基礎模型進行組裝,組裝這些基礎模型的思路主要有 2 種方法:

bagging(bootstrap aggregating的縮寫,也稱作「套袋法」)Bagging

Bagging 的核心思路是——民主。

Bagging 的思路是所有基礎模型都一致對待,每個基礎模型手裡都只有一票。然後使用民主投票的方式得到最終的結果。

大部分情況下,經過 bagging 得到的結果方差(variance)更小

具體過程:

從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,得到k個訓練集。(k個訓練集之間是相互獨立的)每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。

(註:這裡並沒有具體的分類算法或回歸方法,我們可以根據具體問題採用不同的分類或回歸方法,如決策樹、感知器等)

對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對回歸問題,計算上述模型的均值作為最後的結果。(所有模型的重要性相同)

舉例:

在 bagging 的方法中,最廣為熟知的就是隨機森林了:bagging + 決策樹 = 隨機森林

《一文看懂決策樹(3個步驟+3種典型算法+10個優缺點)》

《一文看懂隨機森林(4個步驟+4種方式評測+10個優缺點)》

Boosting

Boosting 的核心思路是——挑選精英。

Boosting 和 bagging 最本質的差別在於他對基礎模型不是一致對待的,而是經過不停的考驗和篩選來挑選出「精英」,然後給精英更多的投票權,表現不好的基礎模型則給較少的投票權,然後綜合所有人的投票得到最終結果。

大部分情況下,經過 boosting 得到的結果偏差(bias)更小

具體過程:

每一輪訓練都提升那些錯誤率小的基礎模型權重,同時減小錯誤率高的模型權重。在每一輪改變訓練數據的權值或概率分布,通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣例的權值,來使得分類器對誤分的數據有較好的效果。


舉例:

在 boosting 的方法中,比較主流的有 Adaboost 和 Gradient boosting 。

Bagging 和 Boosting 的4 點差別

樣本選擇上:

Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。

Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。

樣例權重:

Bagging:使用均勻取樣,每個樣例的權重相等

Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。

預測函數:

Bagging:所有預測函數的權重相等。

Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重。

並行計算:

Bagging:各個預測函數可以並行生成

Boosting:各個預測函數只能順序生成,因為後一個模型參數需要前一輪模型的結果。

差別部分內容轉自《Bagging和Boosting 概念及區別》

相關焦點

  • 常用的模型集成方法介紹:bagging、boosting 、stacking
    本文將討論一些眾所周知的概念,如自助法、自助聚合(bagging)、隨機森林、提升法(boosting)、堆疊法(stacking)以及許多其它的基礎集成學習模型。 為了使所有這些方法之間的聯繫儘可能清晰,我們將嘗試在一個更廣闊和邏輯性更強的框架中呈現它們,希望這樣會便於讀者理解和記憶。
  • 常用的模型集成方法介紹:bagging、boosting、stacking
    本文將討論一些眾所周知的概念,如自助法、自助聚合(bagging)、隨機森林、提升法(boosting)、堆疊法(stacking)以及許多其它的基礎集成學習模型。為了使所有這些方法之間的聯繫儘可能清晰,我們將嘗試在一個更廣闊和邏輯性更強的框架中呈現它們,希望這樣會便於讀者理解和記憶。
  • 機器學習中集成學習(Bagging, Boosting和Stacking)簡介和示例
    什麼是集成方法?集成方法是通過建立一組獨立的機器學習模型,組合多個模型的預測對類標籤進行預測的方法。這種策略組合可以減少總誤差,包括減少方差和偏差,或者提高單個模型的性能。Boostingboosting和bagging之間最本質的區別在於,boosting並不會同等的對待基礎模型,而是通過連續的測試和篩選來選擇「精英」。表現良好的模型對投票的權重更大,而表現較差的模型的權重更小,然後將所有的投票組合得到最終結果。在大多數情況下,boosting後結果的偏差會變小。
  • 從Boosting到Stacking,概覽集成學習的方法與性能
    集成方法是將幾種機器學習技術組合成一個預測模型的元算法,以達到減小方差(bagging)、偏差(boosting)或改進預測(stacking)的效果。集合方法可分為兩類:序列集成方法,其中參與訓練的基礎學習器按照順序生成(例如 AdaBoost)。
  • 集成學習算法與Boosting算法原理
    集成學習可以用於分類問題集成,回歸問題集成,特徵選取集成,異常點檢測集成等等,可以說所有的機器學習領域都可以看到集成學習的身影。從下圖,我們可以對集成學習的思想做一個概括。對於訓練集數據,我們通過訓練若干個個體學習器,通過一定的結合策略,就可以最終形成一個強學習器,以達到博採眾長的目的。
  • Boosting和Bagging: 如何開發一個魯棒的機器學習算法
    本質上,集成學習遵循集成這個詞。不同的是,不是讓幾個人用不同的八度來創造一個優美的和聲(每個聲音填補另一個的空白)。集成學習使用同一算法的數百到數千個模型,這些模型一起工作以找到正確的分類。另一種考慮集成學習的方法是盲人與大象的寓言。
  • 快速理解bootstrap、bagging、boosting
    (4) 計算上述N個統計量T的樣本方差,得到統計量的方差。  應該說Bootstrap是現代統計學較為流行的一種統計方法,在小樣本時效果很好。通過方差的估計可以構造置信區間等,其運用範圍得到進一步延伸。
  • Bagging與隨機森林算法原理小結
    在集成學習原理小結中,我們講到了集成學習有兩個流派,一個是boosting派系,它的特點是各個弱學習器之間有依賴關係。
  • 集成學習Bagging和Boosting簡述
    集成學習是時下非常火爆的一款機器學習方法,是將多個弱分類器按照某種方式組合起來,形成一個強分類器,以此來獲得比單個模型更好的回歸和分類表現
  • 算法大賽神器:集成學習方法關鍵點介紹
    本文的目的是介紹集成學習方法的各種概念。將解釋一些必要的關鍵點,以便讀者能夠很好地理解相關方法的使用,並能夠在需要時設計適合的解決方案。我們既可以通過集合同一類型的學習算法生成同質的集成學習算法,也可以通過不同類型的學習算法生成異質的集成學習算法。目前集成模型大致可以分為以下四類:裝袋(Bagging)、增壓(Boosting)、堆疊(Stacking)、混合(Blending)。
  • 一文讀懂集成學習(附學習資源)
    每次分類的時候,會更關注分錯的數據,上圖中,紅色和藍色的點就是數據,點越大表示權重越高,看看右下角的圖片,當m=150的時候,獲取的模型已經幾乎能夠將紅色和藍色的點區分開了。算法流程如下:   增加前邊學錯樣本的權重,減小已經判斷正確的樣本的權重,有點亡羊補牢,知錯就改的意思,進行有針對性的學習。
  • 獨家 | 一文讀懂Adaboost
    在偽代碼的第2行的循環內,第4行計算εt以及第6行計算$Z_{t}$的時間均可表示為O(m),內層的for循環也是O(m)複雜度的。因此,整個模型的複雜度可以表示為O(mT)。當然,在實際的應用中,如果基礎模型優化本身的複雜度超過O(m),那麼整個模型的複雜度也會隨之線性增大,對於具體的基礎模型應該具體的分析其複雜度。
  • 【集成學習系列】三、Bagging
    ,這個系列基本是對《集成學習》這本書的筆記和提煉,鼓勵大家有時間去看原書。」由於基分類器由相同的訓練集學習產生,因此很難得到真正獨立的基分類器,可以通過在學習過程中引入隨機性來減少他們之間的相關性,並通過集成獲得更好的泛化性能:給定訓練集,採樣得到若干相互沒有重合樣本的子集
  • 集成學習:機器學習兵器譜的「屠龍刀」
    本文作者認為,集成學習是一種立竿見影、從不過時的方法,堪稱機器學習兵器譜上排名第一的「屠龍刀」。作者在文章中介紹了集成學習的概念和發展,它有RF和GBDT兩大殺器,著重講解了嫁接法、集成半監督學習等最新進展,以及集成學習成功的關鍵。機器學習是一個大武林,這裡面江湖人士頗多,「發明」出來的算法兵器也是五花八門,浩瀚如海,足夠你數上三天兩夜了。
  • 技術詳解 | catboost完全指南(下)
    接上篇——技術詳解 | catboost完全指南(中),介紹了catboost的基學習器、模型、模型的學習、樹的生成、分裂查找算法,以及一些重要改進後,今天繼續往下。在related word裡面提到了,通過subsample可以在一定程度上緩解這種過擬合,本質是通過集成學習的方式,在不同的子空間訓練出不同的基模型進行集成從而提高集成模型對未知分布數據的魯棒性。後面還定量計算出了bias的理論數值,這裡就不詳細深入了。
  • (二)bagging 方法
    機器學習中的集成學習入門(二)bagging 方法(當前文章)在之前的文章中,你看到了不同的分類算法以及如何正確驗證和評估模型質量的技術。在這種情況下,你需要應用一些更高級的機器學習技術,其中有一種技術就是集成學習。集成學習是由一組共同分類器或者不同分類器來作為一個整體。舉個例子,比如一個音樂會,我們會同時演奏好幾種不同的樂器,來構成美妙的音樂,這個合奏的過程就是集成學習,我們來收集不同的音符,從而組裝成不同的美妙音樂。1. 集成法庭陪審團在某種意義上講就是一個集成學習。
  • 一文讀懂機器學習分類算法(附圖文詳解)
    可是,你能夠如數家珍地說出所有常用的分類算法,以及他們的特徵、優缺點嗎?比如說,你可以快速地回答下面的問題麼:KNN算法的優缺點是什麼?Naive Bayes算法的基本假設是什麼?entropy loss是如何定義的?最後,分類算法調參常用的圖像又有哪些?
  • 快速弄懂機器學習裡的集成算法:原理、框架與實戰
    關於集成學習算法的框架體系集成學習算法作為機器學習裡的一個分支,已形成了一套的理論體系,其相關概念也比較多,如個體學習器、結合策略、bagging、AdaBoost算法、XGB、LGBT等等,讓初學者眼花繚亂,每個具體算法的原理不同又會讓大家暈頭轉向。實際上,這些繁多的內容背後,集成學習算法可以分成兩大框架,這也是集成學習著重解決的兩個算法。
  • 機器學習集成模型之Bagging
    本文的話題是機器學習集成模型中的Bagging及其典型算法隨機森林的原理。
  • MLlib中的Random Forests和Boosting
    Random Forests和GBTs屬於ensemble learning algorithms(集成學習算法),通過組合多個決策樹來建立更為強大的模型。在本篇文章,我們將介紹這兩個模型和他們在MLlib中的分布式實現。同時,我們還會展示一些簡單的例子並建議該從何處上手。