在两个结果系统中评估预测模型的方法

机器算法验证 可能性 预测模型
2022-03-19 17:28:59

我是一名业余数据分析师/建模师,试图自学一些新技术。我有一个系统,在一个事件发生时,可能会出现两种结果(0 或 1),以及许多预测模型,旨在根据先前的事件给出结果 1 的概率。其中一些模型显然比其他模型更好,但我正在寻找一种方法来定量评估那些不太明显的模型的性能。例如,给定两个模型(p1 和 p2)和两个事件(out1,out2):

p1 = 0.70
p2 = 0.60
out1 = 1

p1 = 0.65
p2 = 0.55
out2 = 0

在第一个事件中,我希望大多数人认为 p1 更好,因为它预测结果为 1 的概率更高。在第二个事件中,我希望大多数人认为 p2 更好,即使两个模型预测了错误的方向,p2 预测结果错误的概率较小。

这向我表明,简单地根据类似的东西对每个模型进行评分

if (p > 0.5 && out = 1)  score++;
if (p <= 0.5 && out = 0)  score++;

不足以准确评估这些模型。我的问题是:

  • 可以使用哪些方法来评估这些模型?
  • 这些方法在告诉我们关于模型的内容方面有何不同?例如,有些方法偏向于通常正确但概率很少超出 0.45 < p 0.55 范围的模型,或者偏向于不太经常正确但概率通常在 0 <= p < 0.2 和 0.8 < p 范围内的模型<= 1?
  • (相关性稍差但有趣)这些方法如何转化为具有两个以上结果的系统?
3个回答

以下内容来自我在这里给出的相关答案:

假设您的模型确实预测 A 有 40% 的机会,而 B 有 60% 的机会。在某些情况下,您可能希望将其转换为 B 会发生的分类(因为它比 A 更有可能)。一旦转换为分类,每个预测要么是对的,要么是错的,并且有许多有趣的方法来统计这些正确和错误的答案。一是直接准确性(正确答案的百分比)。其他包括精度和召回率F-measure正如其他人所提到的,您可能希望查看ROC 曲线此外,您的上下文可能会提供一个特定的成本矩阵,该矩阵奖励真阳性与真阴性不同和/或惩罚假阳性与假阴性不同。

但是,我认为这不是您真正想要的。如果你说 B 有 60% 的发生几率,而我说它有 99% 的发生几率,我们会有非常不同的预测,即使它们都会在简单的分类系统中映射到 B。如果A发生了,你就有点错了,而我错了,所以我希望我会受到比你更严厉的惩罚。当您的模型实际产生概率时,评分规则是您的概率预测性能的衡量标准。具体来说,您可能需要一个适当的评分规则,这意味着分数针对经过良好校准的结果进行了优化。

评分规则的一个常见示例是Brier 分数其中是预测的概率事件正在发生,为 1,如果没有发生,则为 0。

BS=1Nt=1N(ftot)2
ftot

当然,您选择的评分规则类型可能取决于您尝试预测的事件类型。但是,这应该会给您一些进一步研究的想法。

我将添加一个警告,无论您做什么,在以这种方式评估您的模型时,我建议您查看样本外数据(即未用于构建模型的数据)的指标。这可以通过交叉验证来完成。也许更简单的是,您可以在一个数据集上构建模型,然后在另一个数据集上对其进行评估(注意不要让来自样本外的推论溢出到样本内建模中)。

至于您关于比较方法的第二点,简而言之,是的,有些方法是不同的。您可能对J. Eric Bickel的二次、球面和对数评分规则之间的一些比较感兴趣。您可能还对 Winkler 和 Murphy 的非线性效用和概率分数感兴趣。对于非线性效用函数,冒险建模者更喜欢报告更接近确定性的概率(接近 0 或 1 概率),而风险规避者更喜欢对冲接近 0.5 的概率(或\的情况)。1RR

至于您关于转化为两个以上结果的第三点,我知道有两种主要方法。一种是为每种类型的事件计算单独的分数。因此,如果有事件 A、B 和 C,我们创建一个分数用于预测 A 与非 A,一个分数用于预测 B 与非 B,一个分数用于预测 C 与非 C。实际上,这将我们的问题变成了许多二进制问题。另一种方法是有效地将所有类别的分数相加。在 Brier 分数看起来像这样的情况下(假设个不同的类别):R

BS=1Nt=1Ni=1R(ftioti)2

预测准确性和 AUC 在某些方面非常有限。试试贝叶斯信息奖励(BIR),它解决了你所有的要点。

BIR 的直觉如下:投注者不仅会因为识别最终的赢家和输家(0 和 1)而获得奖励,更重要的是识别适当的赔率。此外,它领先一步,将所有预测与先验概率进行比较。

假设您有一份包含可能结果的 10 场阿森纳比赛的列表:WinLose. 每场比赛的二元分类奖励公式为:

在此处输入图像描述

其中,p是您的模型对特定足球比赛的预测,p'是阿森纳赢得比赛的先验概率。如您所见,您以不同的方式对待正确和不正确的分类。例如,如果我事先知道p'=0.6,并且我的预测模型产生了p =0.6,则奖励为 0,因为它没有传达任何新信息。

BIR 不仅限于二元分类,还可以推广到多项分类问题。

一致性概率的概念(c-指数; ROC 区域)是 a 的一个特例U-统计。一个U-statistic 可通过询问以下问题来测试您想要的结果:模型 1 与结果的一致性比模型 2 高多少?“更一致”可以理解为在一对观察中,模型 1 的预测是一致的,但模型 2 的预测不一致。或者可以认为模型 1 一致而模型 2 不一致,或者如果两者一致,则模型 1 的预测散布大于模型 2 的两个预测。

这提供了一种用于比较两个模型的预测区分的方法,该方法比比较两个 ROC 区域更强大,因为保留了观察的配对。该方法不需要任意二分法。

这是在 RHmisc包的rcorrp.cens函数中实现的。