在機器學習中,咱們講了不少不一樣的算法。那些算法都是單打獨鬥的英雄。而集成學習就是將這些英雄組成團隊。實現「3 個臭皮匠頂個諸葛亮」的效果。html
本文將介紹集成學習的 2 種主要思路:bagging、boosting。算法
集成學習歸屬於機器學習,他是一種「訓練思路」,並非某種具體的方法或者算法。bootstrap
現實生活中,你們都知道「人多力量大」,「3 個臭皮匠頂個諸葛亮」。而集成學習的核心思路就是「人多力量大」,它並無創造出新的算法,而是把已有的算法進行結合,從而獲得更好的效果。api
集成學習會挑選一些簡單的基礎模型進行組裝,組裝這些基礎模型的思路主要有 2 種方法:dom
Bagging 的核心思路是——民主。機器學習
Bagging 的思路是全部基礎模型都一致對待,每一個基礎模型手裏都只有一票。而後使用民主投票的方式獲得最終的結果。函數
大部分狀況下,通過 bagging 獲得的結果方差(variance)更小。學習
具體過程:3d
舉例:rest
在 bagging 的方法中,最廣爲熟知的就是隨機森林了:bagging + 決策樹 = 隨機森林
《一文看懂隨機森林(4個步驟+4種方式評測+10個優缺點)》
Boosting 的核心思路是——挑選精英。
Boosting 和 bagging 最本質的差異在於他對基礎模型不是一致對待的,而是通過不停的考驗和篩選來挑選出「精英」,而後給精英更多的投票權,表現很差的基礎模型則給較少的投票權,而後綜合全部人的投票獲得最終結果。
大部分狀況下,通過 boosting 獲得的結果誤差(bias)更小。
具體過程:
舉例:
在 boosting 的方法中,比較主流的有 Adaboost 和 Gradient boosting 。
樣本選擇上:
Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。
Boosting:每一輪的訓練集不變,只是訓練集中每一個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。
樣例權重:
Bagging:使用均勻取樣,每一個樣例的權重相等
Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。
預測函數:
Bagging:全部預測函數的權重相等。
Boosting:每一個弱分類器都有相應的權重,對於分類偏差小的分類器會有更大的權重。
並行計算:
Bagging:各個預測函數能夠並行生成
Boosting:各個預測函數只能順序生成,由於後一個模型參數須要前一輪模型的結果。
差異部份內容轉自《Bagging和Boosting 概念及區別》本文首發自 產品經理的 AI 學習庫 easyai.tech