474. Tabular Playground Series - Jan 2022 | tabular-playground-series-jan-2022
以下内容描述了我针对本次竞赛最终提交方案的开发过程。
在一月份的 TPS 竞赛中,大家可以练习如何忽略公共排行榜。公共排行榜是基于 2019 年第一季度的数据,但所有重要的节假日都发生在 2019 年 4 月或之后。这意味着公共排行榜完全无法反映模型节假日特征的质量。你可以高估或低估复活节、仲夏节、国庆节、圣诞节等的影响——这对公共排行榜来说无关紧要。公共排行榜只能用来验证模型是否正确处理了年度 GDP。
出于这个原因,我专注于交叉验证(以年份为分组的 GroupKFold),并在交叉验证结果中,将 1 月至 3 月的 SMAPE 与一年中其余时间的 SMAPE 分开评估。然后,我持续针对后者优化我的模型。在最终评估中,我提交了交叉验证效果最好的两个 notebook。获胜的 notebook 的公共 LB 分数仅为 4.11991,这在公共排行榜上只能排到第 306 名。将其标记为最终提交确实需要相当大的勇气……
我的最终 notebook 仍然使用岭回归和对数转换后的目标值,但特征与我早期的线性模型有所不同:
所有这些特征都是通过对残差的详细分析发现的。
为什么我没有使用梯度提升?在本次竞赛中,梯度提升的主要优势在于它减少了特征工程的负担:决策树会自动确定节假日影响哪些国家和产品;而线性回归需要手工制作特征。
缺点在于:如果你使用梯度提升并且不自己设计特征,你就放弃了控制权。使用线性回归,你可以分析残差并创建一个正好从耶稣受难日开始、持续十天的复活节假期;而使用梯度提升,你调整一些超参数,然后接受决策树可能发现假期持续九天或十一天的结果。如果你调整超参数使假期正好是十天,模型就会在其他地方过拟合。
StandardScaler,而是使用了带有多个 MinMaxScaler 的 ColumnTransformer。