从失败到前12%:数据科学家必学的三个Kaggle经验
参加国际Kaggle竞赛ASHRAE——预测建筑物能耗——是我人生转折点。从3614名中的第2431名起步,经过五个月、158次迟交提交,我爬升到第558名,进入前12%。这段历程教会我三个关键经验,我与数据科学同行分享。
经验1:只有赢家才能成为你的老师
2019年12月竞赛结束后,我面对残酷现实:我的私有分数1.415(第2431名)离胜利遥远。2020年1月,获胜者公布解决方案——那成了我的救赎。大多数团队公开分享模型架构、代码和数据预处理策略。我花一整天研究关键解决方案,意识到:要取得成果,需要复制顶级团队的方法,而不是从头发明轮子。
尽管有12年为俄罗斯批发电力市场开发数学模型的经验,我感觉像个完全的新手。最初尝试实现复杂管道失败:期望与现实不符,指标恶化。在给同事的邮件中,我形容为“一种恐怖的感觉”。但Kaggle的力量就在这里:平台迫使你走出舒适区。每一次迟交提交都是通往理解最先进解决方案的一步。经过50次迭代,“它在起作用”的感觉开始形成,到第158次上传,我进入前12%。
经验2:高效的数据科学家要操作多个模型
ASHRAE让我接触到之前没用过的库:LightGBM、CatBoost、Prophet。获胜者使用数千模型的组合,进行混合。例如,第二名团队创建了20,000个模型,混合XGBoost、LightGBM、CatBoost和神经网络的结果。关键洞见:有效集成需要两个条件:
- 模型必须展示相当的准确性
- 算法必须在预测中引入多样性
我的解决方案基于平均三个集合:
- 按区域的56个LightGBM模型
- 按能源类型的24个LightGBM模型
- 按区域的36个XGBoost模型
预处理包括天气数据的线性插值和移除常量能耗值。没有后处理和有限的模型多样性解释了我的~12%结果,而获胜者是前1%。结论:在Kaggle上,单一算法解决方案注定失败。效率通过具有控制多样性的混合管道实现。
经验3:广泛经验是掌握的必经阶段
处理超参数需要系统化的网格搜索。对于LightGBM和XGBoost,我测试了数十种组合,每次只改变一个参数。计算预测的总数量超过160亿:158次上传 × 20M训练记录 + 158 × 42M预测。大多数实验在提交前被丢弃,但它们形成了直觉。
现在我立刻看出在LightGBM中改变num_leaves如何影响过拟合,或者为什么在噪声数据上XGBoost的正则化reg_lambda至关重要。这不是理论知识——是通过数千次迭代发展出的肌肉记忆。Kaggle非常适合这种训练:你可以无风险实验,不影响商业项目。在工作任务中,我不能每天花4小时调超参数,但在Kaggle上,这种“时间损失”成为职业成长的投资。
关键要点
- 向赢家学习:他们的解决方案是最好的教科书。即使伤害自尊,也要分析他们的方法。
- 使用集成:混合多个模型(LightGBM、XGBoost、CatBoost)的结果来提升准确性。多样性是关键。
- 积累广泛经验:通过超参数的反复迭代建立直觉。Kaggle是商业项目之外的完美练习场。
— Editorial Team
暂无评论。