看起来完美的模型(直到它不完美)
我仍然记得我们的第一次回测灾难。我们的模型在两年的历史数据上显示12%的投资回报率。我们在庆祝。
然后我们部署了它。第一个月:-8%。第二个月:-6%。发生了什么?
数据泄露。我们意外地使用了收盘赔率来训练一个本应在开盘时预测的模型。当然它在回测中看起来很棒——它看到了未来。
那次经历教会了我比任何教科书都更多的关于正确验证的知识。
泄露:沉默的模型杀手
当你的模型意外地看到它在预测时不应该拥有的信息时,就会发生数据泄露。这样做出奇地容易。
我们发现的常见泄露来源:
- 1训练数据中的收盘赔率当你在开盘时预测
- 2最终阵容数据当你的预测时间戳在阵容公布之前
- 3赛后统计数据悄悄进入特征计算
- 4赛季末信息泄露到赛季中期预测
修复很简单,但需要纪律:时间戳锁定一切。每个特征都必须绑定到特定的时刻,你只能使用在那个时刻*之前*可用的数据。
挑樱桃:我们如何欺骗自己
这个很微妙,因为它经常是无意识发生的。
"让我们只测试前5大联赛——那里的数据最干净。"
"我们将放弃COVID赛季——那些反正很奇怪。"
"只有完整数据的比赛——否则不公平。"
每一个听起来都很合理。但它们加在一起,创造了一个不代表现实的数据集。
我们现在的规则:在运行任何实验*之前*定义包含标准,无论如何都要坚持。
关键要点
- 1泄露可以让任何模型看起来很棒(直到部署)
- 2挑樱桃微妙地发生——预先定义标准
- 3基于时间的分割对于体育数据是强制性的
- 4足球变化;在多个时间窗口中评估
- 5始终与基线比较,而不仅仅是与随机比较
*OddsFlow提供AI驱动的体育分析,仅供教育和信息目的。*

