本学习笔记为阿里云天池龙珠计划金融风控训练营的学习内容,学习链接为:
一、学习知识点概要
利用平均、投票、综合等方法对模型进行融合
二、学习内容
2.1平均法
pre1-pren分别是n组模型预测出来的结果
简单平均法
pre = (pre1 + pre2 + pre3 +...+pren )/n
加权平均法
pre = 0.3pre1 + 0.3pre2 + 0.4pre3
2.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用于调节基模型的权重
vclf = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('xgb', clf3)],
2.3Stacking
stacking 将若干基学习器获得的预测结果,将预测结果作为新的训练集来训练一个学习器
2.4Blending
blending是将预测的值作为新的特征和原特征合并,构成新的特征值,用于预测。
三、学习的问题
在stacking和blending学习上遇到困难,代码实现部分还有待加强
四、学习思考与总结
学习了模型的融合,大致了解了模型融合的一些方法。如blending,相比于stacking来说比较简单,能够防止信息泄露:generalizers和stackers使用不同的数据。但是而缺点在于:
只用了整体数据的一部分,最终模型可能对留出集(holdout set)过拟合,Stacking多次交叉验证要更加稳健。
引用:金融风控Task5https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.20850282.J_3678908510.2.f2984d578g7EtD&postId=170952
https://blog.csdn.net/wuzhongqiang/article/details/105012739