【问题标题】:Cross-Validation Performance Aggregation with Undefined Values具有未定义值的交叉验证性能聚合
【发布时间】:2016-03-02 21:52:21
【问题描述】:

我想知道在交叉验证中计算多倍平均性能的正确方法是什么。

例如,我有 5 折 F1 的值

[0.5 0.3 0.25 null 0.7]

这个系统的平均 F1 是多少?

  • 我可以将 null 作为 0 或仅输出 null 作为平均结果。
  • 或者,我可以只取定义的四个值并除以 4,但这也不正确,因为如果有一些系统在这个折叠上做了 0.1,那么它的性能会比带有 null 的系统更差,但是, 0.1 比 null 好得多。

【问题讨论】:

    标签: machine-learning cross-validation


    【解决方案1】:

    这真的取决于上下文。 (在下文中,我将引用 numpy 以供将来使用它的人参考。)

      1234563 t 有一个与这种折叠等效的数据集。
    • 如果出现 null 是因为预测器在此折叠中完全失败,那么结果可能是(这是您的解释的问题):

      • nan,因为整体预测器行为未定义(在这种情况下,您可能只使用np.mean)。

      • 最坏情况下的平均值(对于f1 score,实际上是 0),如果您发现给定集合出现故障,并仅输出一些任意结果(在这种情况下,您可以使用np.nan_to_num)。


    到目前为止,你能做的最好的事情就是找出这个值的原因,然后消除它。理想情况下,这应该永远不会发生,并且可能应该被视为错误;在解决错误之前,请考虑您的估算器不适合进行性能估算。

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 2018-09-07
      • 2014-09-19
      • 2019-06-01
      • 1970-01-01
      • 2019-10-01
      • 2015-02-12
      • 2021-06-25
      • 2023-03-27
      相关资源
      最近更新 更多