返回列表

#33 Solution: Model distillation

571. Playground Series - Season 3, Episode 21 | playground-series-s3e21

开始: 2023-08-22 结束: 2023-09-11 环境监测 数据算法赛
第33名解决方案:模型蒸馏

第33名解决方案:模型蒸馏

作者:Demyan Pavlyshenko | 发布日期:2023-09-12 | 排名:第33名 | 得票数:5

我的解决方案相当简单——选择若干特征,去除部分异常值,并将 XGB 模型蒸馏到竞赛所给的随机森林模型中。

特征选择

在特征选择方面,我仅选择了 O2_1O2_2BOD5_5 列来训练 XGBoost 和随机森林模型,并且仅为 XGBoost 模型添加了 o2_mean 特征,该特征是所有 O2 列(包括 O2_3O2_4 等被剔除的列)的整体平均值。

去除异常值

在剔除异常值时,我移除了所有训练数据中 BSOD5_5 大于 40 且 NH4_5 大于 60 的数据点(尽管 NH4_5 已被剔除);此外,仅对 XGBoost 模型,我将 O2_1O2_2 中小于 4 的值标记为 NaN

模型蒸馏

在模型蒸馏中,我首先使用 XGBoost 模型的训练数据对其进行训练,然后将其在训练集上的预测结果作为随机森林模型的训练目标,从而使随机森林能够尽可能复现 XGBoost 模型的性能(在交叉验证中,随机森林能够达到 XGBoost 模型 88%-90% 的效率)。此外,我们也可以将蒸馏视为一种目标归一化方法,换言之,即处理目标变量中的异常值。

仅此而已。我也曾尝试使用 IsolationForest 来去除异常值,但效果不佳。祝您在未来的比赛中取得好成绩!

同比赛其他方案