541. Playground Series - Season 3, Episode 10 | playground-series-s3e10
首先,感谢并祝贺 @paddykb,他提出了一个非常棒的广义加性模型 (GAM) 并将其公开,让大家都能从中学习。
当我看到 @paddykb 的 Notebook 时,我清楚地意识到我想理解它,并将 GAM 包含在我的集成模型中。我尝试用 Python 重现这个 GAM,但成效一般——也许是 pygam 的实现不够好,或者仅仅是我经验不足。因此,我决定在集成中使用原始的 GAM。面临的挑战是,为了确定集成权重,我需要 OOF (Out-of-Fold) 预测结果。这迫使我学习了足够的 R 语言知识,以便修改 @paddykb 的代码,将 OOF 预测结果保存到 CSV 文件中。
接着,我应用了两周前在这篇文章中倡导的原则,优化了其他八个模型以获得最佳 CV 分数:
PolynomialRegression(3)、逻辑回归和 CalibratedClassifierCV 组成的管道(这是唯一需要校准的模型)HistGradientBoostingClassifiermax_depth=3 的 CatBoostmin_samples_leaf=1000 进行正则化的 GradientBoostingClassifierPolynomialRegression(2) 和 max_depth=2 以及高学习率的 XGBoost 组成的管道树模型是使用原始数据集训练的,而 GAM 和逻辑回归在不使用原始数据时表现更好。
相关性矩阵显示,这七个基于树的模型给出了相似的预测;只有 GAM 和逻辑回归偏离了主流:

最后,我选择了能提供良好 CV 分数的集成权重。
