任务:
【Task4 模型优化】:(2天)
1)进一步通过网格搜索法对3个模型进行调优(用5000条数据,调参时采用五折交叉验证的方式),并进行模型评估,展示代码的运行结果。(可以尝试使用其他模型)
2)模型融合,模型融合方式任意,并结合之前的任务给出你的最优结果。
例如Stacking融合,用你目前评分最高的模型作为基准模型,和其他模型进行stacking融合,得到最终模型及评分结果。
模型结果:
模型选择 | 参数 | F1得分 |
LR | C = 120, dual = True | 0.695 |
SVM | C=5, dual=False | 0.698 |
LightGBM | learning_rate=0.1, n_estimators=50, num_leaves=20 | 0.708 |
stack_model = [svm,lr,lgb]
for i,model in enumerate(stack_model):
for j, (train_fold, validate) in enumerate(kf):
X_train, X_validate, label_train, label_validate = \
train_data[train_fold, :], train_data[validate, :], train_label[train_fold], train_label[validate]
model.fit(X_train,label_train)
train_stack[validate,i] = model.predict(X_validate)
test_stack[:,i] = model.predict(test_data)
final_model = xgb()
final_model.fit(train_stack,train_label)
pre = final_model.predict(test_stack)
lgb_grid =lgb.sklearn.LGBMClassifier(num_leaves=30)
param_grid = {
'learning_rate': [0.01, 0.05, 0.1, 0.5],
'n_estimators': [20, 30, 40, 50]
}
re_model = GridSearchCV(lgb_grid, param_grid)
re_model.fit(X_train, y_train)