【问题标题】:How to calculate accuracy score of a random classifier?如何计算随机分类器的准确度得分?
【发布时间】:2018-11-07 02:04:33
【问题描述】:

例如,一个数据集包含 60% 的“是”类实例和 30% 的“否”类实例。 在这种情况下,随机分类器的 Precision、Recall 是

精度 =60%

召回率 =50%

那么,这种场景下随机分类器的准确率是多少?

【问题讨论】:

    标签: machine-learning classification evaluation


    【解决方案1】:

    这里需要小心一点,因为随机分类器的定义有点模棱两可;这在数据不平衡的情况下得到了最好的说明。

    根据定义,二元分类器的准确率是

    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 的幼稚值相去甚远......

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

    这里的底线如下:由于使用随机分类器的主要原因是作为基线,因此只有在相对平衡数据集中这样做才有意义.在您的余额为 60-40 的情况下,结果是 0.52,诚然,这与 0.5 的天真值相差不远;但是对于高度不平衡的数据集(例如 90-10),随机分类器作为基线的有用性本身不复存在,因为正确的基线已变为“总是预测多数类”,这里将给出 90% 的准确率,而随机分类器的准确率仅为 82%(更不用说幼稚方法的 50% 准确率了)...

    【讨论】:

    • 感谢您的精彩解释。这更有意义。
    • @RadiaKarim 非常欢迎您更改您接受的答案...
    • 这里对精度的定义不正确。它应该是预测的条件概率,否则准确率加起来不能达到 1.0。虽然这会使解释复杂化,但您应该提到,采用随机方法会根据结果做出独立决定,因此可以放弃条件因素。
    【解决方案2】:

    正如@desertnaut 所提到的,如果您对模型进行简单的基准测试,那么您最好使用“始终预测多数类”作为基准,实现 %of_samples_in_majority_class 的准确度(这总是比随机猜测或加权猜测)。

    Deepchecks(我维护的一个包)中,我们进行了一项检查,可以自动将您的模型的性能与简单模型(加权随机、多数类或简单决策树)进行比较。

    from deepchecks.checks import SimpleModelComparison
    from deepchecks import Dataset
    SimpleModelComparison().run(Dataset(train_df, label='target'), Dataset(test_df, label='target'), model)
    

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2018-08-18
      • 2021-11-02
      • 2018-02-09
      • 2021-07-25
      • 1970-01-01
      相关资源
      最近更新 更多