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

一文看懂集成學習

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

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

什麼是集成學習?

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

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

集成學習知識結構

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

  1. bagging(bootstrap aggregating的縮寫,也稱做「套袋法」)
  2. boosting

Bagging

bagging核心思路

Bagging 的核心思路是——民主。機器學習

Bagging 的思路是全部基礎模型都一致對待,每一個基礎模型手裏都只有一票。而後使用民主投票的方式獲得最終的結果。函數

大部分狀況下,通過 bagging 獲得的結果方差(variance)更小學習

bagging的具體過程

具體過程:3d

  1. 從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被屢次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,獲得k個訓練集。(k個訓練集之間是相互獨立的)
  2. 每次使用一個訓練集獲得一個模型,k個訓練集共獲得k個模型。(注:這裏並無具體的分類算法或迴歸方法,咱們能夠根據具體問題採用不一樣的分類或迴歸方法,如決策樹、感知器等)
  3. 對分類問題:將上步獲得的k個模型採用投票的方式獲得分類結果;對迴歸問題,計算上述模型的均值做爲最後的結果。(全部模型的重要性相同)

舉例:rest

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

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

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

Boosting

boosting核心思路

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

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

大部分狀況下,通過 boosting 獲得的結果誤差(bias)更小

boosting的具體過程

具體過程:

  1. 經過加法模型將基礎模型進行線性的組合。
  2. 每一輪訓練都提高那些錯誤率小的基礎模型權重,同時減少錯誤率高的模型權重。
  3. 在每一輪改變訓練數據的權值或機率分佈,經過提升那些在前一輪被弱分類器分錯樣例的權值,減少前一輪分對樣例的權值,來使得分類器對誤分的數據有較好的效果。

舉例:

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

一文看懂 Adaboost 以及它的優缺點

Bagging 和 Boosting 的4 點差異

Bagging和Boosting的4點差異

樣本選擇上:

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

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

樣例權重:

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

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

預測函數:

Bagging:全部預測函數的權重相等。

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

並行計算:

Bagging:各個預測函數能夠並行生成

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

差異部份內容轉自《Bagging和Boosting 概念及區別》本文首發自 產品經理的 AI 學習庫 easyai.tech

相關文章
相關標籤/搜索