金融风控训练营基础知识学习笔记task05

学习目标:

将之前建模调参的结果进行模型融合

学习内容:

  • 平均:
    • 简单平均法
    • 加权平均法
  • 投票:
    • 简单投票法
    • 加权投票法
  • 综合:
    • 排序融合
    • log融合
  • stacking:
    • 构建多层模型,并利用预测结果再拟合预测。
  • blending:
    • 选取部分数据预测训练得到预测结果作为新特征,带入剩下的数据中预测。

学习笔记:

stacking\blending详解

tacking 将若干基学习器获得的预测结果,简单来说就是将数据带入N个学习器中得到预测结果,再把预测结果放到第N+1个模型里,但是为了避免过拟合的情况出现,要对结果进行验证

blending是将预测的值作为新的特征和原特征合并,构成新的特征值,用于预测。为了减少过拟合的情况出现,把数据分成D1、D2集合,D1作为训练集,D2作为测试集,预测得到的数据作为新特征使用d2的数据作为训练集结合新特征,预测测试集结果。

【1】

平均:

简单加权平均:

就是简单的求平均值多个结果1-n,(1+2+....+n)/n

加权平均法:

这个需要对权重进行预测(权重类似于事件的占重比)

投票:

简单投票

对比权重投票:

weights=【....】就是调节模型的权重

 

Stacking

导入数据pip install mlxtend

首先我们将训练集分成5份(5折交叉验证),对于每一个基模型i来说, 我们用其中的四份进行训练, 然后用另一份训练集作为验证集进行预测得到Pi的一部分, 然后再用测试集进行预测得到Ti的一部分,这样当五轮下来之后,验证集的预测值就会拼接成一个完整的Pi, 测试集的label值取个平均就会得到一个Ti。这些Pi进行合并就会得到下一层的训练集train2, Ti进行合并就得到了下一层的测试集test2。利用train2训练第二层的模型, 然后再test2上得到预测结果,就是最终的结果。

根据模型作图求精确度Accuracy: %.2f (+/- %.2f) [%s]求出精确值以及误差区间

blending

Holdout交叉

载入学习器,融合学习器clfs=[.......]

切割数据部分分为测试集和训练集test_size  random_state   random//随机生成一个实数在【0,1】区间

dataset_d1 = np.zeros((X_d2.shape[0], len(clfs)))
dataset_d2 = np.zeros((X_predict.shape[0], len(clfs)))
然后依次训练各单个模型fit

对于测试集,直接用这k个模型的预测值作为新的特征,最后融合模型,画出价值和分数


学习总结

如何调整模型和结合模型特点是升华的关键所在,简单的加权法可以让你在已有数据中更加直观看出模型的拟合程度,而通过stacking和blending的预测、训练再返还预测的多次实验更加准确,但是相对的会出现过与理想的情况

【1】https://blog.csdn.net/wuzhongqiang/article/details/105012739

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值