Task5 模型融合

內容介紹

模型融合是比賽後期一個重要的環節,大體來說有如下的類型方式。

簡單加權融合:
迴歸(分類概率):算術平均融合(Arithmetic mean),幾何平均融合(Geometric mean);
分類:投票(Voting)
綜合:排序融合(Rank averaging),log融合
stacking/blending:
構建多層模型,並利用預測結果再擬合預測。
boosting/bagging(在xgboost,Adaboost,GBDT中已經用到):
多樹的提升方法

Stacking

當用初始訓練數據學習出若干個基學習器後,將這幾個學習器的預測結果作爲新的訓練集,來學習一個新的學習器。
在這裏插入圖片描述
將個體學習器結合在一起的時候使用的方法叫做結合策略。對於分類問題,我們可以使用投票法來選擇輸出最多的類。對於迴歸問題,我們可以將分類器輸出的結果求平均值。

上面說的投票法和平均法都是很有效的結合策略,還有一種結合策略是使用另外一個機器學習算法來將個體機器學習器的結果結合在一起,這個方法就是Stacking。

在stacking方法中,我們把個體學習器叫做初級學習器,用於結合的學習器叫做次級學習器或元學習器(meta-learner),次級學習器用於訓練的數據叫做次級訓練集。次級訓練集是在訓練集上用初級學習器得到的。

Blending

和Stacking是一種類似的多層模型融合的形式

其主要思路是把原始的訓練集先分成兩部分,比如70%的數據作爲新的訓練集,剩下30%的數據作爲測試集。

在第一層,我們在這70%的數據上訓練多個模型,然後去預測那30%數據的label,同時也預測test集的label。

在第二層,我們就直接用這30%數據在第一層預測的結果做爲新特徵繼續訓練,然後用test集第一層預測的label做特徵,用第二層訓練的模型做進一步預測

其優點在於:

1.比stacking簡單(因爲不用進行k次的交叉驗證來獲得stacker feature)
2.避開了一個信息泄露問題:generlizers和stacker使用了不一樣的數據集
缺點在於:

1.使用了很少的數據(第二階段的blender只使用training set10%的量)
2.blender可能會過擬合
3.stacking使用多次的交叉驗證會比較穩健 ‘’’

比賽的融合這個問題,個人的看法來說其實涉及多個層面,也是提分和提升模型魯棒性的一種重要方法:

1)結果層面的融合,這種是最常見的融合方法,其可行的融合方法也有很多,比如根據結果的得分進行加權融合,還可以做Log,exp處理等。在做結果融合的時候,有一個很重要的條件是模型結果的得分要比較近似,然後結果的差異要比較大,這樣的結果融合往往有比較好的效果提升。

2)特徵層面的融合,這個層面其實感覺不叫融合,準確說可以叫分割,很多時候如果我們用同種模型訓練,可以把特徵進行切分給不同的模型,然後在後面進行模型或者結果融合有時也能產生比較好的效果。

3)模型層面的融合,模型層面的融合可能就涉及模型的堆疊和設計,比如加Staking層,部分模型的結果作爲特徵輸入等,這些就需要多實驗和思考了,基於模型層面的融合最好不同模型類型要有一定的差異,用同種模型不同的參數的收益一般是比較小的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章