如何选择最佳指标来衡量我的校准?

机器算法验证 预测 决策理论 校准 计分规则
2022-03-02 04:08:12

我编程并进行测试驱动开发。在我对代码进行更改后,我运行我的测试。有时他们成功,有时他们失败。在我运行测试之前,我写下一个从 0.01 到 0.99 的数字,以确保测试会成功。

我想知道我在预测我的测试是成功还是失败方面是否有所改进。如果我能跟踪我是否更擅长预测测试是在星期一还是星期五成功,那也很好。如果我预测测试成功的能力与我跟踪的其他指标相关,我想知道。

这让我的任务是选择正确的指标。在 Superforcasting 中,Philip Tetlock 建议使用Brier 分数来衡量专家的校准程度。文献中提出的另一个指标是对数评分规则还有其他可能的候选人。

我如何决定使用哪个指标?是否有理由支持一种评分规则而不是其他评分规则?

3个回答

我假设您正在为您的代码进行单元测试。

我能想到的一个想法是使用线性模型,它可能不会完全符合您的要求。

这样做的好处是,您可以创建一堆可以包含在分析中的其他变量。

假设你有一个向量Y其中包括您的测试结果和另一个向量x这包括你对结果的预测。

现在您可以简单地拟合线性模型

yi=a+bxi+ϵ

并找到b, 的值越高b将表明您的预测正在变得更好。

使这种方法变得更好的是,现在您可以开始添加一堆其他变量,看看这是否会创建一个更好的模型,而这些变量可以帮助做出更好的预测。变量可以是一周中某一天的指标,例如,对于星期一,它始终为 1,而对于所有其他天,则为零。如果您在模型中包含该变量,您将获得:

yi=a+aMonday+bxi+ϵ

如果变量aMonday是重要且积极的,那么这可能意味着您在周一的预测中更加保守。

您还可以创建一个新变量,在其中给出分数以评估您执行的任务的难度。如果您有版本控制,那么您可以例如使用代码行数作为难度,即您编写的代码越多,出现问题的可能性就越大。

其他变量可能是,当天咖啡杯的数量,即将到来的截止日期的指标,这意味着完成工作的压力更大等。

您还可以使用时间变量来查看您的预测是否变得更好。此外,您在任务上花费了多长时间,或者您花费了多少次,您是否正在快速修复并且可能马虎等等。

最后,您有一个预测模型,您可以在其中尝试预测成功的可能性。如果你设法创造了这个,那么也许你甚至不必做出自己的预测,你可以使用所有的变量并很好地猜测事情是否会奏效。

问题是你只想要一个数字。在这种情况下,您可以使用我在开始时介绍的简单模型,只使用斜率,然后重新计算每个周期,然后您可以查看随着时间的推移该分数是否存在趋势。

希望这可以帮助。

虽然这远不是​​一个答案,更多的是参考,但检查Steyerberg E-Epidemiology 2012可能是一个好主意。

在本文中,Steyerberg 及其同事解释了检查具有二元结果(成功或失败)的模型的预测模型性能的不同方法。校准只是这些措施之一。根据您是否希望获得准确的概率准确的分类准确的重新分类,您可能希望使用不同的模型性能度量。尽管这份手稿涉及用于生物医学研究的模型,但我认为它们也可以适用于其他情况(您的情况)。

更具体到您的情况,校准指标真的很难解释,因为它们总结(即平均)整个可能预测范围内的校准。因此,你可能有一个很好的校准总结分数,而你的预测在一个重要的预测概率范围内偏离了(例如,你可能有一个低(=好)的 brier 分数,而对成功的预测在高于或低于某个预测概率)或反之亦然(总结得分不佳,而预测在关键区域得到了很好的校准)。因此,我建议您考虑在您的案例中是否存在这样一个预测成功概率的关键范围。如果是这样,请使用适当的措施(例如重新分类指数)。如果没有(意味着您对整体校准感兴趣),请使用 brier,

总而言之,任何一个校准总结措施都需要您的第一步来绘制您的预测概率与观察到的概率(参见异常值的答案,例如如何做)。接下来,可以计算汇总度量,但汇总度量的选择应该首先反映预测成功失败的目标。

我已经完成了稀疏数据的预测模型,在这些情况下校准你的模型是一个很大的挑战。我会告诉你我做了什么,你可以从中得到一些帮助。

我制作了 20 个预测概率,并尝试绘制平均预测和实际成功概率。对于平均预测概率,我取了 bin 范围的平均值。对于平均实际概率,我计算了箱中的实际成功和失败计数,从中我得到了箱中成功的实际(中值)概率。为了减少异常值的影响,我删除了顶部和底部 5% 的数据,然后再计算每个 bin 的实际中值概率。

一旦我得到这些,我就可以轻松地绘制数据。