【问题标题】:How do I test my classifier accuracy against random values?如何针对随机值测试分类器的准确性?
【发布时间】:2017-12-20 00:16:09
【问题描述】:

我已经设置了我的第一个 scikit-learn 示例,我正在尝试评估我的预测的准确性。我的训练和测试列表设置得很好,但即使我给它随机值,我的准确度也能达到 ~0.95。

这看起来是因为我正在检查 0/1 标签,而 95% 的标签都是零,所以它猜测 0 并获得 0.95 的准确度(我认为?)。显然这不是我想要的。

如何确定我的分类器是否正常工作,以及如何获得有意义的准确度值?

【问题讨论】:

  • 这不是编程问题。您应该将其标记为将其移至交叉验证(如果尚未在那里得到答复)

标签: scikit-learn classification


【解决方案1】:

您有明显的班级不平衡问题。你的分类器一直在预测0,知道它在 95% 的情况下都是正确的。您可以通过在适合的分类器上调用 predict(X_test) 来检查这一点。如果所有值都是0,你就知道是这种情况。

为了更好地了解模型的性能,您可以对标有1 的数据进行上采样或对标有0 的数据进行下采样。您可以使用这个package,它基于 scikit-learn 构建并实现了许多重采样方法。或者,您可以使用 scikit learns resampling 方法。这将为您引导新的数据点。

【讨论】:

  • 谢谢。理想情况下,所有测试数据是否应该有 50/50 或 0/1 分割?这是标准的数据准备任务吗?
  • 理想情况下,您希望标签的测试比例与您的训练比例相匹配。这可以通过stratified folds来实现。
猜你喜欢
  • 2021-07-25
  • 2014-11-24
  • 1970-01-01
  • 2015-09-27
  • 2013-12-03
  • 1970-01-01
  • 2012-12-08
  • 2013-03-27
  • 2023-04-03
相关资源
最近更新 更多