機器學習: ensemble learning
機器學習: ensemble learning
ensemble learning即把多個模型綜合成一個模型。這樣往往能達到不錯的效果。原因為: 不同的模型可能採用了不同的資料、或對資料的刻畫方式角度不一樣;直覺上講,如果一個問題從多個角度去看,那麼效果往往會比從單角度看效果更好。
各種ensemble的方法,據說在kaggle比賽中也有明顯的效果
ensemble的方式大致分幾類:
bagging (bootstrap aggregation):
bootstrap 代表:有放回的重取樣。bagging即在原始資料中,首先有放回的重取樣出多份資料,每一份資料訓練出一個model, 然後再把model組合起來(分類一般採用投票法,迴歸採用平均法)。
- bagging可以有效降低模型的variance(可能提高bias), 因為多個模型放在一起,提升了泛化性. 所以bagging對高方差的模型比較有效,比如樹模型
- 多個模型的訓練是不互相依賴的,即多個模型可以並行訓練
boosting
Boosting involves incrementally building an ensemble by training each new model instance to emphasize the training instances that previous models mis-classified. In some cases, boosting has been shown to yield better accuracy than bagging, but it also tends to be more likely to over-fit the training data(wiki)
- boosting can give good results even if the base classifier is weak learner(only slightly better than random)
- base classifier are trained in sequence(注意這裡必須序列訓練,每一個模型的訓練依賴之前的模型,和bagging不同)
- 所有模型訓練完成後,在將所有模型組合到一起
- 特點: 可以提升對訓練資料的擬合,減小bias, 但是可能造成overfitting(增加variance)
- 例子: adboost, gbdt, gbdt
stacking
分兩層,第一層是多種模型利用資料訓練出的不同模型,第一層所有模型的輸出是第二層模型的輸入,第二層模型的輸出是最終結果。(個人理解,普通的模型輸出綜合無非是平均法、投票法。而stacking把所有模型的輸出當作了輸入,這樣就可以學到比平均/投票法更復雜的模型融合方法)
其他
-
Bayes optimal classifier(wiki,T代表training data, h_i 代表第i個假設,最終的結果是多個假設計算出的模型,按照概率加權投票)
-
Bayesian model combination