例如,数据集包含"is"类的 60% 实例和“否”类的 30% 实例。 在这种情况下,随机分类器的精度、召回率分别为
精度=60%
召回率=50%
那么,在这种情况下随机分类器的准确率是多少?
最佳答案
这里需要谨慎一些,因为随机分类器的定义有些不明确;这在数据不平衡的情况下得到了最好的说明。
根据定义,二元分类器的准确度为
acc = P(class=0) * P(prediction=0) + P(class=1) * P(prediction=1)
哪里P
代表概率。
事实上,如果我们坚持随机二元分类器的直观定义为给出
P(prediction=0) = P(prediction=1) = 0.5
那么,无论类别分布如何(即 P(class=0)
和 P(class=1)
的值),通过上述公式计算的准确度始终为 0.5。
但是,在这个定义中,有一个隐含的假设,即我们的类是平衡的,每个类都包含我们数据集的 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 的初始值相差甚远...
正如我已经说过的,据我所知,文献中没有随机分类器的明确定义。 Sometimes “朴素”随机分类器(总是掷一枚公平硬币)被称为“随机猜测”分类器,而我所描述的被称为“加权猜测”分类器,但仍然是这样远未被接受为标准......
这里的底线如下:由于使用随机分类器的主要原因是作为基线,因此仅在相对平衡数据集中这样做才有意义。在 60-40 平衡的情况下,结果是 0.52,这与 0.5 的天真值相差不远;但对于高度不平衡的数据集(例如 90-10),随机分类器作为基线的有用性本身已不复存在,因为正确的基线已变为“始终预测多数类”,这里将给出 90% 的准确率,而随机分类器的准确率仅为 82%(更不用说朴素方法的 50% 准确率了)...
关于machine-learning - 如何计算随机分类器的准确率分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53182709/