the last《模型結果融合》

2021-10-04 18:17:16 字數 2275 閱讀 2826

task5 模型結果融合

一. 模型融合目標

對於多種調參完成的模型進行模型融合

模型融合它屬於比賽後期的乙個重要環節,老師介紹了以下幾種方法:

簡單加權融合

(1) 回歸(分類概率):算術平均融合,幾何平均融合

(2) 分類:投票(voting)

(3) 綜合:排序融合,log融合

2.satcking/bleding

構建多層模型,並利用**結果再擬合**

二. 模型定義

在這裡我們定義四種模型,線性回歸模型,xgboost模型,lightgbm模型,gbdt模型

多種模型定義的**如下:

定義線性回歸模型

def build_model_lr(x_train,y_train):

reg_model = linear_model.linearregression()

reg_model.fit(x_train,y_train)

return reg_model

定義xgboost模型

def build_model_xgb(x_train,y_train):

model = xgb.xgbregressor(n_estimators=120, learning_rate=0.08, gamma=0, subsample=0.8,\

colsample_bytree=0.9, max_depth=5) #, objective ='reg:squarederror'

model.fit(x_train, y_train)

return model

3.定義lightgbm模型

def build_model_xgb(x_train,y_train):

model = xgb.xgbregressor(n_estimators=120, learning_rate=0.08, gamma=0, subsample=0.8,\

colsample_bytree=0.9, max_depth=5) #, objective ='reg:squarederror'

model.fit(x_train, y_train)

return model

定義gbdt模型

def build_model_gbdt(x_train,y_train):

estimator =gradientboostingregressor(loss='ls',subsample= 0.85,max_depth= 5,n_estimators = 100)

param_grid =

gbdt = gridsearchcv(estimator, param_grid,cv=3)

gbdt.fit(x_train,y_train)

print(gbdt.best_params_)

# print(gbdt.best_estimator_ )

return gbdt

三. 劃分資料集進行訓練和**

首先我們需要劃分出資料集,用模型對已有資料進行訓練與**

對於簡單的加權平均而言,加權平均就是簡單的算術平均,把幾個模型的結果按照一定的算術比例生成乙個新的結果。然後把幾個結果按照係數平均融合成為乙個新的結果,這種思想在數理統計裡經常會學到。

對於stacking融合而言,就是利用模型生成的訓練集,驗證集和測試集,然後在第二步中利用新的模型再進行一次第一層的訓練集,而後再次進行**

四. 收穫總結

模型融合在比賽後期是十分重要的環節

1.結果層面的融合

這是一種最常見的融合方法,其可行的融合方法有多樣,比如根據結果的得分進行加權融合,同時也可以進行log和exp的處理。結果融合很重要的條件在於需要使得模型結果的得分比較近似,然後結果的差異應該比較大,如此的結果融合才會有很大效果上面的提公升。

2.特徵層面的融合

我們需要將特徵進行切分給不同的模型,這樣在後面進行模型或者結果融合時會有更加比較好的效果

特徵層面的融合

模型層面的融合

五. 自我感受

對於此次的打卡活動,我的打卡是不夠認真的,這一方面源於老師講解的很多東西對於現在的我而言完全陌生,我是那種不夠了解就不想去努力的性格。遇到很好的隊友,會提醒我打卡,會提醒我程式設計很重要的是實戰,誰都是一條條打下來才有的進步,隊長會提醒我要多做筆記。我是有計畫有思考的人,我相信我一定會在不久遠的日子裡,再次回顧datawhale裡面老師的錄播和重新進行一次筆記的撰寫,寫在這裡面也算是乙個flag了。加油,愛笑的擺渡人,我可以一步一步地成為自己喜歡的人。

模型融合 Stacking Blending

模型融合是指通過分層對模型進行整合,比如以兩層為例,第一層為基學習器,使用原始訓練集訓練基學習器,每個基學習器的輸出生成新的特徵,作為第二層模型的輸入,這樣就生成了新的訓練集 第二層模型在新的訓練集上再進行訓練,從而得到融合的模型。stacking stacking是模型融合的常用方法,重點是在第一...

keras模型融合

1.構建模型 模型1 33次風運動 defmodel1 ipt layer1 dense units 512,input dim input node,kernel initializer normal activation sigmoid name layer1 ipt layer2 dense ...

模型融合方法總結

即各模型結果的均值 各模型結果 權值再求和,其中權值通過交叉驗證確定,權值之和為1 適合模型結果差異比較小的情況 從特徵,引數,樣本的多樣性差異性來做多模型融合,參考隨機森林 首先將訓練集分為兩部分 d1和d2 一部分用於第一層 level 1 的訓練,另一部分用於第二層 level 2 的訓練。l...