【天池】金融风控贷款违约预测task5
task5学习总结:
1)简单平均和加权平均是常用的两种比赛中模型融合的方式。其优点是快速、简单。
2)stacking在众多比赛中大杀四方,但是跑过代码的小伙伴想必能感受到速度之慢,同时stacking多层提升幅度并不能抵消其带来的时间和内存消耗,所以实际环境中应用还是有一定的难度。
3)当然在比赛中将加权平均、stacking、blending等混用也是一种策略。
# task5 模型融合
# 方法:1)平均:简单、加权;2)投票:简单、加权;3)综合:排序融合、log融合;4)stacking;5)blending
# 5.1. 平均
pre = (pre1 + pre2 + pre3 +...+pren )/n #简单平均
pre = 0.3pre1 + 0.3pre2 + 0.4pre3 #根据先前模型准确率赋权
# 5.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))
# 加权投票
# 在VotingClassifier中加入参数 voting='soft', weights=[2, 1, 1],weights用于调节基模型的权重
clf1 = LogisticRegression(random_state=1)
clf2 = RandomForestClassifier(random_state=1