暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kaggle知识点:排序赛中概率加权方法

Coggle数据科学 2022-07-27
845

在竞赛中直接将多个模型的预测结果进行加权是一种常见的操作,这种操作可以增加模型的精度,也可以增加结果的稳定性。

但对不同的任务,其实加权方法存在一定的区别。对于分类、回归、排序,对结果进行集成也存在区别。

  • 分类任务:直接投票;
  • 回归任务:加权求和;
  • 排序任务:排序加权;

本次我们将讨论二分类任务中的集成细节,如果比赛提交的是概率,使用AUC进评分的方式。

# 真实标签
t_true = np.random.randint(02, size=1000)

# 模型1
pred1 = t_true + np.random.randn(1000)
pred1 = np.clip(pred1, 01)

# 模型2
pred2 = t_true + np.random.randn(1000) - 0.2
pred2 = np.clip(pred2, 01)

# 模型3
pred3 = t_true + np.random.randn(1000) - 0.1
pred3 = np.clip(pred3, 01)

此时三个模型的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

排序平均的结果优于直接加权,通过重新对次序进行归一化的效果,可以避免模型概率输出分布不一致的情况。


 竞赛交流群 邀请函  #

△长按添加竞赛小助手
添加Coggle小助手微信(ID : coggle666)


每天Kaggle算法竞赛、干货资讯汇总

与 22000+来自竞赛爱好者一起交流~


文章转载自Coggle数据科学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论