如何计算随机分类器的准确性得分?

时间:2018-11-07 02:04:34

标签: machine-learning evaluation

例如,数据集包含“是”类的60%实例和“否”类的30%实例。 在这种情况下,随机分类器的精确度,查全率是

精度= 60%

召回率= 50%

然后,在这种情况下,随机分类器的准确性如何?

2 个答案:

答案 0 :(得分:2)

随机分类器(Random Guess)的准确度为1 / k。

在这里,k是数据集中的类数。 如果是二进制分类,则k = 2。

因此,在上述情况下,准确度将为50%。

答案 1 :(得分:2)

此处需要谨慎,因为随机分类器的定义有点模棱两可;最好在数据不平衡的情况下说明这一点。

根据定义,二元分类器的准确性为

acc = P(class=0) * P(prediction=0) + P(class=1) * P(prediction=1)

P代表概率。

实际上,如果我们坚持将随机二进制分类器的直观定义为

P(prediction=0) = P(prediction=1) = 0.5

然后,由上述公式计算出的精度始终为0.5,与类别分布(即P(class=0)P(class=1)的值无关)

但是,在此定义中,存在一个隐式假设,即我们的类是平衡的,每个类包含我们数据集的50%。

类别失衡的情况下,这种假设(和相应的直觉)会被打破:如果我们有一个数据集,例如90%的样本属于0类(即P(class=0)=0.9 ),那么使用上述随机二元分类器的定义就没有多大意义;相反,我们应该使用类别分布本身的百分比作为随机分类器的概率,即:

P(prediction=0) = P(class=0) = 0.9
P(prediction=1) = P(class=1) = 0.1

现在,将这些值插入定义精度的公式中,我们得到:

acc = P(class=0) * P(prediction=0) + P(class=1) * P(prediction=1)
    = (0.9 * 0.9) + (0.1 * 0.1)
    = 0.82

这远不是0.5的天真值...

正如我已经说过的,AFIAK在文献中没有明确的随机分类器定义。 Sometimes“天真的”随机分类器(总是翻转 fair 硬币)被称为“随机猜测”分类器,而我所描述的被称为“加权猜测”一个,但这仍然远远没有被接受为标准...

此处的底线如下:由于使用随机分类器的主要原因是作为基线,因此仅在相对平衡的数据集中这样做才有意义。在您的余额为60-40的情况下,结果为0.52,这与0.5的天真值相差不远;但对于高度不平衡的数据集(例如90-10),由于正确的基线已变成“总是可以预测多数类”,因此随机分类器作为基线的用处本身就不复存在了,在此情况下,其准确性为90%,相比之下,随机分类器的准确率仅为82%...