在Kaggle学术活动中直接将多个模型的预测结果进行加权是一种常见的操作,这种操作可以增加模型的精度,也可以增加结果的稳定性。但对不同的任务,其实加权方法存在一定的区别。对于分类、回归、排序,对结果进行集成也存在区别。
分类任务:直接投票;
回归任务:加权求和;
排序任务:排序加权;
本次我们将讨论二分类任务中的集成细节,如果比赛提交的是概率,使用AUC进评分的方式。
#?真实标签
t_true?=?np.random.randint(0,?2,?size=1000)
#?模型1
pred1?=?t_true?+?np.random.randn(1000)
pred1?=?np.clip(pred1,?0,?1)
#?模型2
pred2?=?t_true?+?np.random.randn(1000)?-?0.2
pred2?=?np.clip(pred2,?0,?1)
#?模型3
pred3?=?t_true?+?np.random.randn(1000)?-?0.1
pred3?=?np.clip(pred3,?0,?1)
此时三个模型的AUC精度分别为:
0.7295611075760666
0.7629832839094122
0.7522801035701279
方法1:加权平均此种方式非常直接,可以直接平均也可以调整权重。
权重的确定方式有如下几种:人工确定,通过精度反馈调整;从精度确定权重(精度高权重高);通过1层的stacking确定权重;
方法2:几何平均几何平均可对形态进行转换,对概率进行校准。权重确定的方式参考上面加权平均的方法。
方法3:排序平均通过rankdata函数可以求得概率的次序,将次序从新进行归一化转为0-1范围。
from?scipy.stats?import?rankdata
rankdata([1,3,2])
#?array([1.,?3.,?2.])
排序平均的方法如下:
效果对比加权平均AUC:0.8650706942160006
集合平均AUC:0.8575510547104799
排序平均AUC:0.8664093421215869
排序平均的结果优于直接加权,通过重新对次序进行归一化的效果,可以避免模型概率输出分布不一致的情况。
扫码获取备赛计划,考前查缺补漏、重点冲刺
【免费领取】相关真题及解析,还有一对一学术活动规划!
? 2025. All Rights Reserved. 沪ICP备2023009024号-1