在面向金融市场的机器学习中,存在一个可能让即便非常诱人的回测也变得不可信的问题:模型可能意外获得了在决策做出那一刻尚不存在的信息。

我们已面向大众读者单独探讨过这一主题,那篇文章用平实的语言解释了什么是时间性数据泄漏、为什么仅仅将历史数据划分为训练期与测试期有时并不足够,以及为什么 point-in-time 数据(即在那个历史时刻真实可得形式下的数据)如此重要。

该详细说明的英文版本 "Why a Trading AI Bot Can Accidentally “Know the Future” — and How to Prevent It" 已发布在 Medium 上。

对 Tantoryn AI 而言,这一话题具有实际影响。

在准备数据和验证 ML 系统的过程中,我们进一步重新审视了决定信息何时对模型可见的原则。对于一次正确的历史实验而言,重要的不仅是某个数值所对应的日期,还有该数值在何时才可能真正为系统所知。

这对于延迟发布、可能在之后被修订、或基于尚未结束的周期计算得出的数据而言,尤为重要。

因此,在准备历史数据时,我们遵循一条简单的规则:

如果某信息在决策时点尚不存在,那么模型在历史测试中也不应看到它。

这种做法可能会让结果在纸面上看起来不那么亮眼,但与此同时,它使系统的验证更加严格,也更贴近真实条件。

对 Tantoryn AI 而言,这是一项更广泛开发原则的一部分:首先确保实验本身构建正确,然后才评判机器学习的质量。

在为项目准备数据、并进一步验证其 ML 组件的过程中,我们将持续应用这一做法。