【问题标题】:How do you estimate the performance of a classifier on test data?您如何估计分类器在测试数据上的性能?
【发布时间】:2014-06-20 06:33:29
【问题描述】:

我正在使用 scikit 来制作一个有监督的分类器,我目前正在对其进行调整,以使我在标记数据上获得良好的准确性。但是我如何估计它在测试数据(未标记)上的表现如何?

另外,我如何确定我是否开始过度拟合分类器?

【问题讨论】:

  • 使用分类器的score 方法,或sklearn.metrics 中的性能指标之一。另请参阅教程和示例。

标签: python machine-learning scikit-learn


【解决方案1】:

您无法对未标记数据的方法进行评分,因为您需要知道正确的答案。为了评估一种方法,您应该将您的训练集拆分为(新)训练和测试(例如,通过sklearn.cross_validation.train_test_split)。然后将模型拟合到火车上并在测试中对其进行评分。 如果您没有大量数据并且保留其中一些数据可能会对算法的性能产生负面影响,请使用cross validation

由于过度拟合无法泛化,测试分数低是一个很好的指标。

有关更多理论和其他一些方法,请查看this article

【讨论】:

  • 我正在使用cross_val_score 和参数scoring='f1' 测试分类器,但它表示某些真阳性和假阳性的总和为零。这是因为我的一些班级与其他班级相比真的很小吗?不应该默认启用分层选项来防止这种情况吗?
猜你喜欢
  • 2022-01-05
  • 1970-01-01
  • 2012-07-15
  • 2016-05-20
  • 2018-08-30
  • 2018-11-25
  • 2015-05-22
  • 2011-04-09
  • 1970-01-01
相关资源
最近更新 更多