返回列表

8th place solution

360. 2019 Data Science Bowl | data-science-bowl-2019

开始: 2019-10-24 结束: 2020-01-22 学习效果预测 数据算法赛
第8名解决方案

第8名解决方案

作者:LeiZhou
发布时间:2020-01-23

恭喜所有获胜的团队(无论是赢得了奖牌还是收获了知识和乐趣)。非常感谢组织者提供有趣的数据和优秀的平台,同样万分感谢慷慨的 Kagglers 在讨论区和 Kernel 中的分享。醒来得知我获得了我的第一个 Kaggle 金牌,这也是我第一次在 Kaggle 上获奖,这感觉简直……好得不真实😃

模型

我的模型非常简单。一个3层的 MLP(多层感知机),拓扑结构为 256-256-256,每层都使用了 BN(批归一化)和 0.3 的 dropout 率。使用了 3 个 Leaky ReLU 激活函数 + 1 个线性激活函数。就是这样。

除了 accuracy_group,我还使用了 3 倍的 accuracy 平方根作为另一个目标,希望它能比单纯的 0123 数值提供更多信息并减少过拟合,但看起来这对分数的影响不是很大。

验证方法

5 折 GroupKFold,主要关注反向加权(inversely weighted)的 OOF QWK(二次加权 Kappa),但也关注未加权的 OOF QWK。反向加权就像我在讨论区描述的那样。我不确定它是否能像截断那样完美地模拟测试数据,但它运行速度很快。我的 LB(排行榜)和 CV(交叉验证)之间存在一些偏差。我猜它们可能只在 ~0.01 的水平上对齐。所以我非常幸运。

预处理

对数值特征进行对数变换,然后进行标准化变换。

用零填充缺失值,并将特征的缺失情况编码为 0 和 1 作为新特征。

训练

最好的分数是通过使用私有数据获得的。我赌了一把,因为私有数据可以提供两倍的数据量,而 NN(神经网络)是数据饥渴型的。我知道它的分布不同,但训练数据的分布也与截断后的测试数据不同。

  • 提交方案 A 使用了私有数据和训练数据(私有 LB 0.559)
  • 提交方案 B 仅使用训练数据(私有 LB 0.552)

使用所有数据和不同的种子以及略有不同的 epochs(63, 65, 68)训练了 9 个模型。

Adam 优化器,batch size 为 128,学习率 0.0003,采用循环衰减:

def lr_decay(index_):
    if index_ < 15:
        return 0.0003
    elif index_ < 30:
        if index_ % 2 == 0:
            return 0.00008
        else:
            return 0.0002
    elif index_ < 40:
        if index_ % 2 == 0:
            return 0.00008
        else:
            return 0.00003
    else:
        return 0.00003

后处理

对 9 个模型的 18 个预测结果(每个模型 2 个输出:acc 和 acc_group)进行简单平均。然后使用阈值优化器来寻找阈值。我在训练目标分布周围随机初始化阈值优化器的阈值,运行了 25 次优化器,然后选择 CV QWK 最好的那个。

我做了一个 5 折模拟(4 折充当我们现有的 OOF,1 折充当测试数据的标签)来比较几种决定阈值的方法。发现使用阈值优化器比简单地使用训练目标分布来决定阈值效果更好。

特征

我生成了约 1100 个特征,并根据 @ogrellier 在其精彩笔记本中介绍的 lgbm 中的 rf 模式的零重要性,选择了 216 个特征。我发现使用约 100 个特征能给出更好的 CV 分数(~0.563),优于 216 个特征的版本(0.559),但也导致了更低的训练损失和更大的验证-训练损失差距,这可能意味着更大的过拟合。而 216 个特征的版本在 LB 上分数更好。我在两次最终提交中都选择了使用 216 个特征。

主要特征列表:

  • Type, title, event counting(类型、标题、事件计数)
  • event_id counting(event_id 计数)
  • title_acc, title_acc_lasttime
  • title duration max/mean/std(标题时长最大/平均/标准差,我将标题时长裁剪在 1000 以内,我认为 16 分钟对孩子来说玩一局已经很长了。那些时长异常值可能是记录错误。反正我不
同比赛其他方案