\begingroup

简介

在训练模型时,
通常指用于拟合模型的数据,因此……

样本:用于训练模型的数据
样本外:未用于训练模型的数据
时间外:未用于训练模型的数据,该数据晚于用于训练模型的数据

有时法规要求您必须对模型进行“样本外”和“时间外”验证。但不清楚这是什么意思,因为“时间外”已经是“样本外”了。我认为“样本外”可以解释为对不属于训练“样本”的客户进行验证。

解释 1

这里的解释是进行两次独立的验证运行:

  1. 对“样本外”数据的“及时”验证
  2. 对“超出时间”且“超出样本”的数据进行验证

我认为这里最大的缺陷是“样本外”验证将是“及时的”,因此性能指标可能会被夸大。例如,如果“及时”期间是在 covid 期间,那么您将获得“样本外”验证结果,表明您在这些未见过的客户上做得很好,而实际上,该模型在生产环境中对未见过的客户的表现会很糟糕(这是超时的)。

解释 2

此处的解释是,报告“及时”“样本外”数据的数字毫无意义,因为这些数字实际上并没有说明现实世界的表现。相反,报告给监管机构的所有验证数字都是过时的。

  1. 仅对“样本外”数据进行验证,即“超出时间”。这是对现实世界表现的最保守估计。它也是通用性的最佳指标。这里的“样本外”是指甚至没有“及时”进入训练样本的客户。
  2. 对所有“超出时间”的数据进行验证,因为这是对近期表现的最佳估计,因为客户群在近期(例如未来 2-3 年)通常相当稳定。

根据这种解释,您报告的最保守的数字很可能最能反映现实世界的表现并反映普遍性(例如对于未见过的客户)。

问题
您会使用哪种解释?您认为这两种解释同样有效吗?

\endgroup

4

  • 4
    \begingroup
    在预测界,我们通常只关心“超出时间”。您所说的“超出样本”与“超出时间”是什么意思?
    \endgroup


    – 

  • 1
    \begingroup
    在一个项目中,我们同时做了这两项工作,但最终最重要的是训练样本的时间
    \endgroup


    – 

  • \begingroup
    该规定称:“建立一个严格的统计流程,包括超出时间和样本的性能测试,以验证模型”
    \endgroup


    – 

  • \begingroup
    @StephanKolassa 在“解释 2”中,样本外是指样本超出时间,并且客户 ID 从未被模型看到。否则,我可以创建一个使用客户 ID 作为特征的模型,并且它在不久的将来会表现良好。
    \endgroup


    – 


最佳答案
1

\begingroup

正是出于您概述的原因,验证和测试数据应始终尊重时间顺序,而不是“从未来学习”,因为现实世界的表现(我喜欢称之为“生产中”)才是我们最终关心的。我认为这不仅适用于通常称为“预测”的情况,也适用于具有时间维度的“分类”任务:如果您为信用评分或客户流失预测建立模型,时间动态可能非常强,因此建议您在建模中包含时间维度,并仅使用超出时间的测试/验证集。

现在,这在某种程度上是基于观点的。

然而,在我看来,这是预测界的绝对共识(分类者则不然),,所以是的,我相信我知道自己在说什么。作为《的副主编和常任审稿人,任何“从未来中学习”的投稿至少都会得到重大修改,或者通常会被拒绝,因为作者显然对预测一无所知。最后,在这一点上都会非常清楚。

\endgroup

6

  • 1
    \begingroup
    感谢您的澄清。我们的模型是分类模型,但我仍然认为,例如,在进行特征选择和超参数调整时,人们会希望使用不合时宜的验证集来确保选择具有时间鲁棒性的特征和参数。您对此有何看法?
    \endgroup


    – 


  • \begingroup
    这正是我认为最有意义的做法,因为这样你就能更现实地看待数据和模型漂移。当然,这意味着你会受到训练、测试和验证期间发生的任何具体事情的影响……但我仍然认为,任何其他方式本质上都是在欺骗自己。
    \endgroup


    – 

  • \begingroup
    提出这个问题的原因是,他们聘请的“专家”顾问强烈建议“及时”进行“样本外”验证。这违背了我 15 年数据科学和统计学经验。很高兴能证实这种“及时”验证是一种糟糕且具有误导性的方法。但我想这是夸大一个人绩效指标的好方法!
    \endgroup


    – 

  • 1
    \begingroup
    我想知道,不按时间分割,而是灵活地、非线性地对时间效应进行建模,是不是更有效率。如果“训练”数据中存在时间趋势,不进行建模会导致后期“测试”数据缺乏验证准确性,并导致预测不准确。
    \endgroup


    – 

  • \begingroup
    我认为添加时间信息对于传统预测非常有用,但对于我们的用例而言,关于它们是在 12 月还是在周二进行评估的信息不符合规定 🙂
    \endgroup


    –