362. Google QUEST Q&A Labeling | google-quest-challenge
首先,我要感谢主办方和所有参赛队伍!这是一场非常有趣且富有成效的比赛。
question_title 进行分组。标准模式: 全局优化,即在整个训练集上使用目标列中的所有唯一值来建立类别集合(单一码本情况)。
高级模式: 逐列优化,类别数量等于训练集中每个目标列的唯一值数量(多码本情况)。
单独使用 "优化取整器"(标准和高级模式)带来了显著的 LB(+0.02)提升,但将其与 "0,1 映射" 结合使用却导致 LB 下降(见下文分数)。此外,众所周知,从过拟合的角度来看,"优化取整器" 是一种非常有风险的方法。因此,我最终决定选择两次提交:一次使用 "优化取整器",一次不使用。当私有测试集结果公布时,我发现我是对的,"优化取整器" 确实降低了最终得分。
公开分数 0.43318 -> 私有分数 0.40901 ("0,1 映射")
公开分数 0.43050 -> 私有分数 0.40635 ("0,1 映射" + "优化取整器")
不使用 "优化取整器" 的方案让我在私有测试集上的排名上升了 30 位。
我花了很多时间来解决提交错误:
我遇到这类错误超过 30 次,真的非常令人恼火。最糟糕的是,系统没有提供额外信息来帮助理解哪里出了问题。我通过实验发现,"Submission CSV Not Found" 通常是由 RAM 内存限制引起的。出现这种情况是因为私有测试集比公开测试集大 7 倍。"Submission Scoring Error" 是由非零元素数量很少的列引起的,原因在于相关性指标计算的特性。
我在执行 Blending 时遇到了 Keras 中 "load weights" 方法的问题。它将模型权重加载到 RAM 中,但在 clear_session() 后不会释放内存。这是一个众所周知的问题,在许多资源中被讨论过,但没有任何改变。(例如 这里 和 这里)。不幸的是,最新版本的 Keras 2.3.1 仍然存在这个问题。
根据 @robieta 的说法,可能的原因如下:
"问题出在 K.clear_session(),它清除的是默认图。在 1.x 版本中,Keras 使用默认的