554. Playground Series - Season 3, Episode 15 | playground-series-s3e15
大家好!在本解决方案中,我采用了模型融合技术,融合了5个基于不同插补方法和参数的LGBM模型,并在交叉验证循环内将它们的训练集与原始数据集合并(即数据划分为验证集和训练集时),同时结合了一些特征工程和插补技术。请注意,许多技术已在我的讨论帖中讨论过,我会标注已在讨论中提及的部分以避免重复解释。
在特征工程中,我仅对D_e、D_g和chf_exp应用了对数变换,使其分布略微右偏,因为这些特征原本呈左偏分布(如我的讨论中所分析)。这就是全部的特征工程工作。
我融合了5个使用不同特征插补技术的LGBM模型,具体细节将在融合部分说明。但所有模型都应用了以下通用插补技术:
author值来插补geometry值D_e和D_h值插补geometry值:
geometry为tubeD_e等于15.0或D_h等于120.0,则geometry为plateannulus,由于D_e值较少,插补可能不准确,因此我将其省略D_e和D_h值learning rate、num_leaves、max_depth、colsample_bytree、subsample、min_child_samples具体模型配置如下:
lgbm_without_imputation:不使用任何特征插补的LGBM模型(除通用插补外),通过optuna进行优化lgbm_lgbmimputer1:使用LGBMImputer(n_iters=200)插补数据训练的模型,但不插补D_h、length、D_e(仍使用通用插补)。采用lgbm_without_imputation的调优参数,调整了max_depth和min_child_sampleslgbm_lgbmimputer2:使用LGBMImputer(n_iters=200)插补数据训练的模型,但不插补mass_flux、D_e、length、D_h。采用lgbm_without_imputation的调优参数,调整了max_depth和min_child_sampleslgbm_lgbmimputer3:使用LGBMImputer(n_iters=200)插补数据训练的模型,但不插补mass_flux、D_e、D_h。直接采用lgbm_without_imputation的调优参数lgbm_lgbmimputer4:使用IterativeImputer(LinearRegression(), max_iter=20, initial_strategy='constant')插补数据训练的模型,但不插补mass_flux、pressure。采用lgbm_without_imputation的调优参数,仅调整了max_depth就这样!另外,我曾考虑通过最小化另一个预测chf_exp特征模型的损失来调参,因为x_e_out是预测chf_exp最重要的特征。但分数没有提升,所以就没有采用这个复杂的方法。
完整实现请参考我的解决方案笔记本
祝后续比赛好运!