返回列表

[1st] Disbelief

479. Tabular Playground Series - Mar 2022 | tabular-playground-series-mar-2022

开始: 2022-03-01 结束: 2022-03-31 交通流量与路况 数据算法赛
[第1名] 难以置信

[第1名] 难以置信

作者:El Conde de Ñáñaño
发布时间:2022年4月1日

我很惊讶地发现排行榜(LB)的变动竟然如此之大。今晚我差点都没去查看结果,因为我对自己的分数感到非常失望。虽然我很想祝贺自己是个数据科学天才,但我认为这次我确实走了不小的狗屎运。我知道许多更聪明、经验更丰富的参赛者这个月比我努力得多。有时候你只是中了彩票,我想就是这样。

我感谢所有通过讨论和代码分享见解的 Kagglers。具体来说,@Pack-ManAutoML notebook@Martynov AndreyHybrid Regressors notebook 给了我很大帮助。从第一个笔记本中,我借鉴了基于小时-分钟时间与位置交叉的可能性编码方法。从第二个笔记本中,我参考了其后处理方法。

总体概述

获胜的分数仅来自一个没有经过后处理的单 lgbm 模型。我有点时间不够用了。首先,我创建了大量的可能性编码和滞后特征。与大多数公开的内核不同,除了中位数,我还使用了许多其他特征。其次,我使用 Optuna 找到了最佳的特征子集。

对于验证,我使用了正好在测试集之前一周的数据。我将训练数据筛选为仅包含与测试期间相同的日期和小时-分钟组合的数据。获胜模型的特征创建代码在 这里,特征选择代码在 这里

滞后特征与可能性编码

这个笔记本是我用来创建滞后特征和编码的代码。对于滞后特征,我计算了均值、方差、中位数、最小值、最大值和 1 区间偏移。我对日期和工作日的每个 x-y-direction 组合都进行了计算。我使用了 3 天、5 天和 10 天的滚动窗口以及扩展窗口。

可能性编码计算了所有 hour-minute 组合下,每个 xyx-y-direction 组合的最小值、最大值、中位数、方差和均值。
整个过程大约需要 5-10 分钟运行。

使用 Optuna 进行特征选择和训练集过滤

在第一步之后,我有了太多的特征。鉴于特征过剩,我使用 Optuna 来挑选最好的特征。具体来说,对于我考虑的每个特征,我使用了 trial.suggest_categorical(feat_in_question, [True, False])。经过 300 次试验,Optuna 非常擅长找到最好的特征。此外,我看到许多笔记本只在工作日 0(周一)进行训练。我让 Optuna 判断我是否应该只在第 0 天训练,此外,是否只在测试集相同的小时-分钟时间训练。在 Optuna 试验之后,我只需挑选最好的特征并提交笔记本。代码在 这里

失败尝试

宽神经网络。鉴于数据的空间关系,在给定时间同时训练所有空间点的回归器是有意义的。然而,这对我不起作用。

特别感谢

我要特别感谢由高等经济学院在 Coursera 上开设的“如何赢得数据科学竞赛”课程。这门课程教会了我可能性编码的基础,这在很大程度上决定了这里的分数。我在这里做的编码不是很漂亮,因为它们没有使用 K 折交叉验证来防止泄漏。又是一个时间不够的例子。

我必须感谢广大 Kaggle 社区在我作为数据科学家的旅程中给予的所有帮助。从两年前辍学到现在成为一名数据科学家,Kagglers 帮助我学到了比我自己能学到的多得多的东西。谢谢读者成为这个伟大社区的一员。继续 Kaggle 吧。

现在已经是晚上 11:30 了,我早上 4:45 就要起床去上班。感谢阅读!

同比赛其他方案