Java 用百分比答案计算系统的错误率

Java 用百分比答案计算系统的错误率,java,cluster-analysis,classification,Java,Cluster Analysis,Classification,我将感谢这方面的想法。 假设我有一个软件约束满足解决方案,它解决了一个问题,并得出如下答案: 100%A是解决方案 100%B是解决方案 70%C是解决方案 50%D是解决方案 正确答案是C 想象一下,最终所有的答案都会在我的系统中被考虑,因此提出正确的答案尽管不那么确定,仍然是一项成就。我不会放弃百分比低于100的答案。然而,重要的是找到一个合适的评估函数或错误率计算 如何计算系统的错误率 有人可能会说上面的例子有100%的错误率,因为答案不是A或B。如果正确的答案是B,而只有B会怎样?错误率

我将感谢这方面的想法。 假设我有一个软件约束满足解决方案,它解决了一个问题,并得出如下答案:

100%A是解决方案

100%B是解决方案

70%C是解决方案

50%D是解决方案

正确答案是C

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

如何计算系统的错误率


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

好吧,显而易见的方法是计算所有回复的平均错误率

使用平均绝对偏差:

(|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 1 0的正确向量,但它也允许答案是,例如,通过使用1 1,B C D中的任何一个。由您来确保这些值(如总和)是否等于1。类似地,如果您知道只有一个答案是正确的,那么您可能希望将算法输出规格化为总和为1。在您的示例中,这将规范化.3125.3125.21875.15625的答案,错误率可能较低。

您的错误率为100%,因为系统100%肯定地说答案是a,而正确的答案是Cimagine,即系统应该是动态的,以便通过时间获得更多信息并更改其答案。我想它不可能有100%的错误率,因为它确实得出了正确答案,有70%的错误率。我的意思是所有的答案都在考虑之中,或者想象正确的答案是B,它给出了B作为答案,而A不是答案。那么如何计算误差呢。我相信问题是如何添加计算错误率的动态方法非常感谢,您的回答非常有帮助。