622. Playground Series - Season 4, Episode 8 | playground-series-s4e8
首先,热烈祝贺 @optimistix,整个夏天都在榜首位置徘徊,终于达成了目标。也是前 100 名中至少唯一一位从公共榜单到现在排名完全没有变动的人。这有多酷?
我的解决方案往往很无聊,因为它们都归结为同一件事:大型集成模型。这次也不例外,但我没有像以前的比赛那样达到 40-50 个模型——只有 25 个。按某种顺序,它们是:
| 类型 | 模型数量 |
|---|---|
| LAMA TabularNN | 8 |
| AutoGluon | 6 |
| CatBoost | 4 |
| Keras FM | 3 |
| xLearn FM | 2 |
| LightGBM | 1 |
| XGBoost | 1 |
除此之外,没什么花哨的。选择了一个 CV 最好的模型,结果它成了我总体第二好的模型。
我拥有的最佳解决方案实际上是通过爬山算法(hill climbing)得出的,它只选择了上述 25 个模型中的 13 个。然而它的 CV 分数相当低,所以没有理由选择它。它与我选择的模型具有相同的 5 位小数分数。
我最好的单个模型来自 AutoGluon,但这些不应计算在内,因为它们是集成模型。在实际的单个模型中,四个 Keras 因子分解机(factorization machines)是最好的(私有分数 0.98413-0.98433)。它们将所有变量视为分类变量并对它们的交互进行建模。之后最好的 8 个模型仍然是 LAMA TabularNN,其次是 xLearn 因子分解机和 CatBoost 模型。
看来将所有(或大多数)变量建模为分类变量是一条可行的路径。