[監督式]Ensemble learning

2019-05-16  本文已影响0人  RJ阿杰

Ensemble learning(集成學習)

二進制通訊時使用vote避免丟失

Bagging(bootstrap aggregating)

Boosting

AdaBoost

AdaBoost方法對於噪聲數據和異常數據很敏感。
AdaBoost方法的自適應在於:前一個model分錯的樣本讓判斷錯誤的train data提高權重,被用來訓練下一個model,我們在loss function上乘上一組weight,錯誤的資料有更高的weight,使得錯誤的資料有更高的loss。

\varepsilon代表錯誤率
Z代表樣本數(例如: u_1^1=0.4 , u_1^2=1,Z=1.4 表示共有1.4筆樣本 )

我們第一個(model( f_1 ))錯誤率小於0.5,我們要找一個u_2使得model( f_1 )錯誤率等於0.5,我們使用model( f_2 )來訓練這組新weight的資料(資料本身沒改變我們只是在loss function乘上一個每一筆資料對應的weight),然後model( f_2 )的錯誤率會小於0.5,就這樣可以重複的做下去,直到你想訓練的model數量。


怎麼找u_2呢?
假設我們某一筆資料model( f_1 )預測錯誤,我們將u_1乘上d_1,如果資料model( f_1 )預測正確,我們將u_1除以d_1,而d_1可以經過推倒求出,詳細推導可以參考李宏毅老師的課程


我們訓練完成多個模型要預測時,我們要讓訓練完錯誤率較低的模型他佔比較大的weight,所以預測時我們將每個模型的預測結果乘上然後相加,取預測結果最高的類別、或平均。

Stacking

stacking概念有點類似transfer(遷移學習),我們手上有訓練了幾個不同的模型,然後我們使用這些模型的輸出作為另一個新模型的輸入進行訓練,新模型從現有模型的基礎上再學習如何運用不同模型的輸出差異來增加準確率。

參考:
1234

上一篇下一篇

猜你喜欢

热点阅读