模型融合 #1
Kaggle和天池比赛中常用提高成绩的三种方法:
1.特征工程
2.模型调参
3.模型融合
模型融合主要有以下几种方式:
简单加权融合:
①回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean);
②分类:投票(Voting)
③综合:排序融合(Rank averaging),log融合
stacking/blending:
构建多层模型,把初级学习器的输出当作下一层的输入。
boosting/bagging(在xgboost,Adaboost,GBDT中已经用到):
多个分类器的整合
部分代码案例:
1.简单加权平均
def Weighted_method(test_pre1,test_pre2,test_pre3,w=[1/3,1/3,1/3]):
Weighted_result = w[0]*pd.Series(test_pre1)+w[1]*pd.Series(test_pre2)+w[2]*pd.Series(test_pre3)
return Weighted_result
Weighted_pre = Weighted_method(test_pre1,test_pre2,test_pre3,w)
2.Stacking融合(回归)
from sklearn import linear_model
def Stacking_method(train_reg1,train_reg2,train_reg3,y_train_true,test_pre1,test_pre2,test_pre3,model_L2= linear_model.LinearRegression()): model_L2.fit(pd.concat([pd.Series(train_reg1),pd.Series(train_reg2),pd.Series(train_reg3)