465. Tabular Playground Series - Nov 2021 | tabular-playground-series-nov-2021
每场比赛都有其独特之处,这场比赛也不例外。有两个观察结果对我的策略至关重要:
本次比赛的训练数据和测试数据位于特征空间的不同区域。如果可以训练一个分类器来将样本分类为训练集和测试集,那么交叉验证(CV)分数可能不可靠。我尝试了对训练数据进行加权,使得靠近测试区域的训练样本获得比远离测试区域的样本更高的权重。但在测试集上的结果(即排行榜分数)令人失望。
在得知数据是分块的之后,我将我的交叉验证策略改为 GroupKFold。这意味着我在九个数据块上训练估计器,并在第十个数据块上验证结果。我尝试了广泛的估计器:线性回归、核岭回归、1000近邻、LightGBM 和神经网络。它们都输给了基于泄露数据训练的一对 DummyRegressors。如果九个训练块不能提供关于第十个块的任何信息,为什么十个训练块能提供关于测试块的信息呢?
基于这两个观察结果,我决定不再关注 CV 分数,而只相信公共排行榜(Public LB)。在每场比赛中,我们都互相警告不要相信 LB 分数,但这次比赛不同:GroupKFold CV 分数毫无用处,分层 CV 分数更没用,公共排行榜是我们能得到的最好结果。
我通过探测排行榜获取了 18 个半块的目标概率:测试数据首先被分成 9 个大小为 60000 的块,然后每个块在由泄露的训练数据给出的超平面处被分成两个半块。每个半块需要一次提交——这意味着每天 5 次提交,18 个半块需要 4 天时间。根据 18 个公共 LB AUC 分数,我计算了每个半块的目标概率。@safavieh 在他的笔记本中详细解释了其中的数学原理。
最后,我用尽剩余的提交次数来确定最佳权重,将 18 个半块概率与两个公共笔记本进行融合。半块概率的权重为 92%,公共笔记本的权重为 8%。我的最终提交在这里。
感谢所有在比赛论坛分享见解的人,特别是那些指出我陈述模糊之处并帮助我更清晰地了解事实的人。