第11名解决方案:哪些方法有效,哪些无效
第11名解决方案:哪些方法有效,哪些无效
作者:Mykhailo Savchenko (EXPERT)
发布日期:2023年6月13日
比赛排名:第11名
赞同数:16
祝贺所有获奖者和参与者!同时,我要感谢Kaggle主办了这些入门比赛,让初学者更容易以简化的形式开始参与真实竞赛。这个入门比赛非常有趣,因为我尝试了很多方法,其中许多并未奏效。
我的计划如下:
- 使用AutoML工具构建一个良好的基线模型
- 尝试不同的特征工程技术,以捕捉更多与重量特征之间的关系
- 尝试生成更多数据并用于训练
- 尝试寻找一些"技巧",比如以往比赛中的做法,例如手动修正含有噪声的行(这是我们与@epiktistes前一天讨论过的内容)
我尝试了以下方法,但大多数并未奏效:
- 创建了各种比率特征,如"壳重与总重比"、"身体状况指数"等,但并未提高分数,反而增加了训练时间
- 我生成了40万个额外样本用于训练,但分数略有下降
- 随后我注意到预测结果始终在3到19个月之间,因此我尝试手动寻找并修正异常值。不幸的是,由于螃蟹在达到一定年龄后非常相似,这变得不可能实现
- 之后我尝试为年长螃蟹生成更多样本,但同样没有效果
所以我当时想,也许这场比赛并没有这样的"技巧",一切只能靠模型调优。我相当确定这一点,令我惊讶的是,最高分的提交竟然是我最初使用FLAML调优的三个LGBM和两个XGBoost模型构建的基线模型。可惜我没有选择那个版本。其次,我搞乱了提交文件的命名,有些文件没有在描述中写上交叉验证分数,导致最终提交的并非最佳模型。最后,我还有一些假设可以验证,比如为年轻螃蟹生成更多样本,但我没有足够的时间去做。不过,第11名的成绩还是不错的。
我从这场比赛中学到了什么?
- 有时候想法看起来很棒,但在实践中并不奏效。在这种情况下,只需坚持使用得分最高的模型并进一步调优。
- 始终相信自己的交叉验证结果,尽管这次的波动并不算太大。
- 保持工作整洁有序,使用适当的文件描述,详细说明已完成的工作和达到的分数。
- 花些时间在社区讨论中,很多想法都在公开讨论,实施这些想法通常会有所帮助。
感谢所有参与者,我们下一场比赛再见。特别感谢@epiktistes、@phongnguyen1、@oscarm524、@arunklenin、@ravi20076和@pandeyg0811在本场比赛期间保持活跃并分享了许多宝贵见解。继续Kaggling吧!