模型融合是比賽後期上分的重要手段,特別是多人組隊學習的比賽中,將不同隊友的模型進行融合,可能會收穫意想不到的效果哦,往往模型相差越大且模型表現都不錯的前提下,模型融合後結果會有大幅提公升,以下是模型融合的方式。
平均:a. 簡單平均法
b. 加權平均法
投票:a. 簡單投票法
b. 加權投票法
綜合:a. 排序融合
b. log融合
stacking:
a. 構建多層模型,並利用**結果再擬合**。5. blending:
a. 選取部分資料**訓練得到**結果作為新特徵,帶入剩下的資料中**。blending只有一層,而stacking有多層
boosting/bagging(在task4中已經提及,就不再贅述)
stacking
將若干基學習器獲得的**結果,將**結果作為新的訓練集來訓練乙個學習器。如下圖 假設有五個基學習器,將資料帶入五基學習器中得到**結果,再帶入模型六中進行訓練測。但是由於直接由五個基學習器獲得結果直接帶入模型六中,容易導致過擬合。所以在使用五個及模型進行**的時候,可以考慮使用k折驗證,防止過擬合。
與stacking不同,blending是將**的值作為新的特徵和原特徵合併,構成新的特徵值,用於**。為了防止過擬合,將資料分為兩部分d1、d2,使用d1的資料作為訓練集,d2資料作為測試集。**得到的資料作為新特徵使用d2的資料作為訓練集結合新特徵,**測試集結果.
blending與stacking的不同
a. stacking
stacking中由於兩層使用的資料不同,所以可以避免資訊洩露的問題。在組隊競賽的過程中,不需要給隊友分享自己的隨機種子。
b. blending
blending比stacking簡單,不需要構建多層模型。由於blending對將資料劃分為兩個部分,在最後**時有部分資料資訊將被忽略。同時在使用第二層資料時可能會因為第二層資料較少產生過擬合現象。
3.1 平均
簡單加權平均,結果直接融合
求多個**結果的平均值。pre1-pren分別是n組模型**出來的結果,將其進行加權融
pre =
(pre1 + pre2 + pre3 +..
.+pren )
/n
加權平均法
一般根據之前**模型的準確率,進行加權融合,將準確性高的模型賦予更高的權重。
pre =
0.3pre1 +
0.3pre2 +
0.4pre3
3.2 投票
簡單投票
from xgboost import xgbclassifier
from sklearn.linear_model import logisticregression
from sklearn.ensemble import randomforestclassifier, votingclassifier
clf1 = logisticregression(random_state=1)
clf2 = randomforestclassifier(random_state=1)
clf3 = xgbclassifier(learning_rate=
0.1, n_estimators=
150,max_depth=
4,min_child_weight=
2,subsample=
0.7,objective=
'binary:logistic'
)vclf = votingclassifier(estimators=[(
'lr'
, clf1),(
'rf'
, clf2),(
'xgb'
,clf3)])
vclf = vclf .fit(x_train,y_train)
print
(vclf .predict(x_test)
)
加權投票
from xgboost import xgbclassifier
from sklearn.linear_model import logisticregression
from sklearn.ensemble import randomforestclassifier, votingclassifier
clf1 = logisticregression(random_state=1)
clf2 = randomforestclassifier(random_state=1)
clf3 = xgbclassifier(learning_rate=
0.1, n_estimators=
150, max_depth=
4, min_child_weight=
2,subsample=
0.7,objective=
'binary:logistic'
)vclf = votingclassifier(estimators=[(
'lr'
, clf1),(
'rf'
, clf2),(
'xgb'
, clf3)
],voting=
'soft'
, weights=[2
,1,1
])vclf = vclf .fit(x_train,y_train)
print
(vclf .predict(x_test)
)
3.3 stacking
3.4 blending
金融風控5 模型融合
stacking vs.blending stacking 將若干基學習器獲得的 結果,將 結果作為新的訓練集來訓練乙個學習器。假設有五個基學習器,將資料帶入五基學習器中得到 結果,再帶入模型六中進行訓練 但是由於直接由五個基學習器獲得結果直接帶入模型六中,容易導致過擬合。所以在使用五個及模型進行 ...
TASK 5 模型融合
task 5 模型融合 總結自 datawhale 零基礎入門資料探勘 task 5 模型融合 ml67 1 stacking 是用初始訓練資料學習出若干個基學習器後,將這幾個學習器的 結果作為新的訓練集,來學習乙個新的學習器。2 結合策略 如何將個體學習器結合在一起使用的方法。分類可以使用投票法。...
task5 模型融合
內容介紹 模型融合是比賽後期上分的重要手段,特別是多人組隊學習的比賽中,將不同隊友的模型進行融合,可能會收穫意想不到的效果哦,往往模型相差越大且模型表現都不錯的前提下,模型融合後結果會有大幅提公升,以下是模型融合的方式。平均 stacking 將若干基學習器獲得的 結果,將 結果作為新的訓練集來訓練...