機器學習模型融合


參考博客:https://blog.csdn.net/qq_31342997/article/details/88078213

     https://blog.csdn.net/u012969412/article/details/76636336

     https://blog.csdn.net/maqunfi/article/details/82220115

     https://www.jianshu.com/p/fc4de92a9486

一、模型融合的概念

  先產生一組“個體學習器 ”,再用某種策略將它們結合起來,加強模型效果。 

二、常見模型融合的方法

  boosting方法介紹:迭代的訓練某個基本模型(base model),每次根據上一輪預測錯誤得到情況來修改訓練樣本的權重,比較容易過擬合。

  bagging方法介紹:抽取訓練集中不同的子集來訓練每個基本模型(base model),最后對每個base model進行投票(少數服從多數的思想)。

  stacking方法介紹:層次融合的思想,第一輪用多個基本模型(一種多個,或多種)訓練,然后對其結果用LR在訓練(為了匹配每個基本模型的權重)。

  blending方法介紹:層次融合的思想,用不相交的數據。將訓練集train數據划分兩部分(d1,d2),用對d1訓練的模型去預測d2,test。

           用上一輪d2的預測值和標簽訓練新的分類器,然后把test的New Features輸入作為最終的預測值。

 三、各種模型融合的區別

  Bagging,Boosting二者之間的區別
    (1)樣本選擇上:
    Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。
    Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。
    (2)樣例權重:
    Bagging:使用均勻取樣,每個樣例的權重相等
    Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。
    (3)預測函數:
    Bagging:所有預測函數的權重相等。
    Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重。
    (4)並行計算:
    Bagging:各個預測函數可以並行生成
    Boosting:各個預測函數只能順序生成,因為后一個模型參數需要前一輪模型的結果。

  Stacking,Blending二者之間的區別

    1.Blending方式和Stacking方式很類似,相比Stacking更簡單點,兩者區別是:        

        blending是直接准備好一部分10%留出集只在留出集上繼續預測,用不相交的數據訓練不同的 Base Model,將它們的輸出取(加權)平均。

     實現簡單,但對訓練數據利用少了。          

    2.blending 的優點是:比stacking簡單,不會造成數據穿越(所謂數據創越,就比如訓練部分數據時候用了全局的統計特征,導致模型效果過分的好),

     generalizers和stackers使用不同的數據,可以隨時添加其他模型到blender中。                

    3.缺點在於:blending只使用了一部分數據集作為留出集進行驗證,而stacking使用多折交叉驗證,比使用單一留出集更加穩健

    4.兩個方法都挺好,看偏好了,可以一部分做Blending、一部分做Stacking。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM