返回列表

#13 approach- simple ensemble with tuning

541. Playground Series - Season 3, Episode 10 | playground-series-s3e10

开始: 2023-03-07 结束: 2023-03-20 物理与天文 数据算法赛
#13 方案:带有调优的简单集成

#13 方案:带有调优的简单集成

作者: Ravi Ramakrishnan (Grandmaster) | 排名: 13 | 发布时间: 2023-03-21

大家好,

首先,非常感谢 Kaggle 提供这次任务,也感谢所有贡献者让这次体验变得非常棒!特别感谢 @sergiosaharovskiy@pourchot@paddykb 分享他们的公开代码。

我的方法

特征工程

  • 特征构建: 使用了乘法和加法特征(例如:Mean_Integrated * SD 和 Mean_Integrated + SD)作为总特征。
  • 特征选择: 使用互信息、相关性和排列重要性选择特征,为模型选择了前 25、30、32、35、40、45 个特征(最终提交包含 35 个特征)。有时我也根据排行榜探测和 CV 分数手动选择一些特征。
  • 数据处理: 没有做任何显式的异常值处理和特征变换(如对数变换、幂变换、logit 等)。
  • 缩放: 基于交叉验证结果,没有采用任何缩放处理。
  • 原始数据: 排除了原始数据(在模型训练中 CV 分数略低)。

模型

使用了以下分类器算法:

  • LGBM
  • XGB
  • CatBoost
  • Gradient Boosting
  • Histogram Gradient Boosting
  • Random Forest
  • Logistic Regression(带鲁棒缩放器)
  • Generalized Additive Model (GAM)(感谢 @paddykb@pourchot 的公开工作)

模型调优

我使用 Optuna 调整参数,并微调调整后的参数以检查对 CV 分数的影响。根据这项练习,我不得不调整一些参数(在 LGBM 和 GBM 分类器中)。在这次任务中,我没有调整 scale_pos_weight。我只调整了以下基本参数:

  • learning rate(学习率)
  • max_depth / depth(最大深度)
  • reg_alpha
  • reg_lambda
  • n_estimators

模型训练

  • CV 策略: Repeated Stratified KFold 10x5
  • 早停轮次: 120

集成与校准

  • 校准: 我仅使用保序回归 对 GAM 的结果进行了校准。
  • 集成: 我使用 Optuna(1000 次试验)构建了一个集成模型。
  • 权重调整: 我调整了 GAM 的权重(在最终提交中,我手动增加了它的权重,并降低了随机森林和逻辑回归的权重)。

无效的尝试

  • TabNet 分类器
  • 神经网络 - MLP
  • 校准所有模型的所有概率预测
  • 对 GAM 校准使用 Platt 缩放

本可以做得更好的地方

  • 更好的特征工程: 我只使用了乘法和加法特征,本可以使用比率、对数或其他变换。
  • 模型调优: 我可以更好地调优模型,而不是在大多数分类器上依赖 Optuna。

关于 GAM 的说明

根据我的工作经验,我可以断言 GAM 是一种非常适合分类和回归问题的方法。我在这次挑战中第一次在 Python 中使用 GAM,但之前经常在 SAS 中使用它。我鼓励 SAS 用户在各项任务中使用 PROC ADAPTIVEREGPROC TRANSREG