计算带有百分比答案的系统的错误率

Posted

技术标签:

【中文标题】计算带有百分比答案的系统的错误率【英文标题】:calculating error rate of a system comming up with percentage answers 【发布时间】:2012-08-11 21:23:56 【问题描述】:

我会很感激这方面的想法。 想象一下,我有一个软件(约束满足求解),它可以解决一个问题并给出如下答案:

100% A 是解决方案,

100% B 是解决方案,

70 % C 是解决方案,

50% D 是解决方案,

而正确答案是C。

想象一下,最终所有答案都会在我的系统中得到考虑,因此尽管不确定性较低,但提出正确答案仍然是一项成就。我不会丢弃百分比低于 100 的答案。但是,找到合适的评估函数或错误率计算很重要。

如何计算我的系统的错误率。

有人可能会说上面的例子有 100% 的错误率,因为答案既不是 A 也不是 B。如果正确答案是 B 而只有 B 怎么办。错误率是多少?

【问题讨论】:

你的错误率为 100%,因为系统 100% 确定答案是 A,而正确答案是 C 想象系统应该是动态的,以便随着时间的推移它可以获得更多信息并改变它的答案。我猜它不可能有 100 % 的错误率,因为它确实提出了 70 % 的正确答案。我的意思是确实考虑了所有答案,或者假设正确答案是 B,并且它给出了 B 作为答案以及 A 不是答案。那么如何计算误差。我相信问题是如何添加计算错误率的动态方法 【参考方案1】:

嗯,显而易见的方法是计算所有回复的平均错误。

使用平均绝对偏差 (MAD):

(|1-0| + |1-0| + |.7-1| + |.5-0|) / 4 = (1+1+.3+.5)/4 = 2.8/4 = 0.7

或均方误差 (MSE):

(|1-0|^2 + |1-0|^2 + |.7-1|^2 + |.5-0|^2) / 4 = (1+1+.09+.25)/4 = 2.34/4 = 0.585

两者各有利弊。

(上面的示例使用0 0 1 0 的“正确”向量,但它也可以通过使用1 1 1 1 来允许答案为例如“任意ABCD”。由您来确保这些值,例如总和是否为 1)。同样,如果您知道一个答案是正确的,您可能希望将算法输出归一化为总和为 1。在您的示例中,这会将.3125 .3125 .21875 .15625 的答案标准化,这可能具有较低的错误。)

【讨论】:

非常感谢,您的回答很有帮助。

以上是关于计算带有百分比答案的系统的错误率的主要内容,如果未能解决你的问题,请参考以下文章

在c ++中获取数字的百分比

如何使用 SQL 语句计算百分比

带有表达式的 s-s-rS 小计列

创建一个带有百分比的ggplot

在 SQL 中计算销售百分比时除零错误

计算列中值的百分位数