如何测试概率估计的质量?

时间:2009-10-25 22:55:33

标签: machine-learning probability

我创建了一个启发式(人工神经网络,但这并不重要)来估计事件的概率(体育比赛的结果,但这也不重要)。给出一些输入,这个启发式方法告诉我这个事件的概率是多少。类似的事情:鉴于这些投入,B队有65%的机会获胜。

我有一大组输入数据,我现在的结果是(以前玩过的游戏)。我可以使用哪个公式/指标来确定估算器的准确性。

我看到的问题是,如果估算器说事件的概率为20%,事件确实发生了。我无法判断我的估算是对还是错。也许这是错的,事件发生的可能性更大。也许这是正确的,事件大约有20%的可能性发生并确实发生。也许这是错的,事件发生的可能性很小,比如千分之一,但这次碰巧发生了。

幸运的是,我有很多这些实际的测试数据,因此可能有一种方法可以使用它们来限定我的启发式。

有人有个主意吗?

3 个答案:

答案 0 :(得分:3)

您可以使用许多测量来量化二元分类器的性能。

您是否关心您的估算工具(例如人工神经网络)是否输出校准概率?

如果不是,即所有重要的是等级排序,ROC曲线下的最大化面积(AUROC)是对度量性能的非常好的总结。其他人是“KS”统计,提升。有许多在使用,并强调表现的不同方面。

如果您关心校准概率,那么最常见的指标是“交叉熵”(也称为伯努利概率/最大似然,逻辑回归中使用的典型度量)或“Brier得分”。 Brier评分正是将连续预测概率与二元实际结果进行比较的均方误差。

使用哪种方法取决于分类器的最终应用。例如,您的分类器可能会很好地估计井喷的概率,但对于近距离结果则不合格。

通常,您尝试优化的真实指标是“赚钱”。这通常很难以数学方式表示,但从那开始是提出适当且计算易处理的指标的最佳方法。

答案 1 :(得分:1)

在某种程度上,它取决于您正在使用的决策功能。

在二元分类任务的情况下(预测事件是否发生[ex:win]),如果概率大于50%1,则简单的实现是预测0否则。

如果你有一个多类问题(预测发生了哪一个K事件[ex:win / draw / lose]),你可以预测出概率最高的类。

评估启发式的方法是计算预测误差,方法是将每个输入的实际类别与该实例的启发式预测进行比较。

请注意,您通常会将数据划分为列车/测试部分,以便更好地(unbiased)估算效果。

还存在其他评估工具,例如 ROC curves ,这是一种描述真假假设性能的方法。

答案 2 :(得分:1)

正如你所说的,如果你预测一个事件发生了20% - 并且80%没有发生 - 观察一个孤立的事件并不会告诉你你的估计有多好或多差。但是,如果您有大量事件样本,您预测其成功率为20%,但观察到该样本,30%成功,您可能会开始怀疑您的估算器已关闭。
一种方法是通过预测的发生概率对事件进行分组,并按组观察实际频率,并测量差异。例如,根据您拥有的数据量,将预测发生率为20%到25%的所有事件分组,并按组计算实际发生频率 - 并测量每个组的差异。这应该可以让你很好地了解你的估算器是否有偏差,并且可能是它的偏差范围。