Machine learning 具有未定义值的交叉验证性能聚合

Machine learning 具有未定义值的交叉验证性能聚合,machine-learning,cross-validation,Machine Learning,Cross Validation,我想知道在交叉验证中计算几倍平均性能的正确方法是什么 例如,我有5倍的F1值 [0.5 0.3 0.25空0.7] 这个系统的平均F1是多少 我可以将null作为0,也可以将null作为平均结果输出 或者,我可以只取定义的四个值,然后除以4,但这也不正确,因为如果有某个系统在这方面的值为0.1,那么它的性能将比null的差,但是,0.1比null的好得多 这实际上取决于上下文。(在下文中,我加入了对numpy的引用,仅供将来使用它的人参考。) 如果出现null是因为cv折叠在某种程度上没有为

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

例如,我有5倍的F1值

[0.5 0.3 0.25空0.7]

这个系统的平均F1是多少

  • 我可以将null作为0,也可以将null作为平均结果输出
  • 或者,我可以只取定义的四个值,然后除以4,但这也不正确,因为如果有某个系统在这方面的值为0.1,那么它的性能将比null的差,但是,0.1比null的好得多

这实际上取决于上下文。(在下文中,我加入了对
numpy
的引用,仅供将来使用它的人参考。)

  • 如果出现
    null
    是因为cv折叠在某种程度上没有为问题定义,那么您可以忽略它(例如,通过调用。可能是为了“真实生活”,您不会有一个与此折叠等价的数据集)

  • 如果出现
    null
    是因为预测器在这方面完全失败,那么结果可能是(这取决于您的解释):

    • nan
      ,因为总体预测行为未定义(在本例中,您可能只使用)

    • 如果您发现给定集出现故障,并输出一些任意结果(在这种情况下,您可以使用)


到目前为止,你能做的最好的事情是找出这个值的原因,然后消除它。这应该是永远不会发生的,并且可能应该被认为是一个bug;在解决bug之前,只考虑你的估计器不适合于性能估计。< /P>