【问题标题】:What are good metrics to evaluate the performance of a multi-class classifier?评估多类分类器性能的好指标是什么?
【发布时间】:2017-04-19 17:48:01
【问题描述】:

我正在尝试在一组大约 1000 个对象中运行分类器,每个对象有 6 个浮点变量。我已经使用 scikit-learn 的交叉验证功能为几个不同的模型生成一组预测值。然后我使用sklearn.metrics 来计算我的分类器的准确性和混淆表。大多数分类器的准确率约为 20-30%。下面是 SVC 分类器的混淆表(准确率为 25.4%)。

由于我是机器学习的新手,我不确定如何解释该结果,以及是否有其他好的指标来评估问题。直观地说,即使有 25% 的准确率,并且鉴于分类器得到了 25% 的正确预测,我相信它至少有点有效,对吧?我如何用统计参数来表达这一点?

【问题讨论】:

    标签: python machine-learning scikit-learn


    【解决方案1】:

    如果此表是混淆表,我认为您的分类器在大多数情况下会预测 E 类。我认为您的 E 类在您的数据集中的比例过高,如果您的类没有相同数量的实例, 例如,如果您有 3 个类别 A、B、C,并且在测试数据集中,如果您的分类器预测所有时间类别 A,那么类别 A 被过度表示 (90%),那么您将获得 90% 的准确率,

    一个好的指标是使用对数损失,逻辑回归是优化这个指标的好算法 见https://stats.stackexchange.com/questions/113301/multi-class-logarithmic-loss-function-per-class

    另一种解决方案是对您的小类进行过采样

    【讨论】:

      【解决方案2】:

      首先,我发现查看混淆表非常困难。将其绘制为图像可以更直观地了解正在发生的事情。

      建议使用单个数字指标进行优化,因为它更容易、更快捷。当您发现您的系统未按预期运行时,请修改您选择的指标。

      如果您在每个课程中都有相同数量的示例,那么准确度通常是一个很好的指标。否则(这里似乎就是这种情况)我建议使用F1 score,它考虑到你的估计器的precision and recall

      编辑:但是,您可以决定~25% 的准确度或任何指标是否“足够好”。如果您要对机器人是否应该射击人进行分类,您可能应该修改您的算法,但如果您要确定它是伪随机数据还是随机数据,则 25% 的准确率可能足以证明这一点。

      【讨论】:

        猜你喜欢
        • 2013-12-20
        • 2017-06-10
        • 2019-05-24
        • 1970-01-01
        • 2018-10-15
        • 1970-01-01
        • 1970-01-01
        • 2019-10-13
        • 2020-11-06
        相关资源
        最近更新 更多