【问题标题】:Should I balance the test set for evaluating a model? [closed]我应该平衡测试集以评估模型吗? [关闭]
【发布时间】:2021-10-16 04:55:35
【问题描述】:

我必须评估逻辑回归模型。该模型旨在检测frouds,因此在现实生活中该算法将面临高度不平衡的数据。

有人说我只需要平衡训练集,而测试集应该保持与现实生活中的数据相似。另一方面,很多人说模型必须在平衡样本上进行训练和测试。

我尝试针对两个(平衡、不平衡)集测试我的模型并获得相同的 ROC AUC (0.73),但不同的精确召回曲线 AUC - 0.4(不平衡)和 0.74(平衡)。

我应该选择什么?

我应该使用哪些指标来评估我的模型性能?

【问题讨论】:

标签: machine-learning scikit-learn data-science


【解决方案1】:

由于您正在处理一个概念不平衡的问题(与欺诈相比,非欺诈的数量不成比例地增加),我建议您将 F 评分与真实世界的“匹配”不平衡集合结合使用。这将允许您比较模型,而不必确保您的测试集是平衡的,因为这可能意味着您在测试集中过度代表欺诈和未充分代表非欺诈案例。

这里有一些参考资料以及如何在 sklearn 上实现:
https://en.wikipedia.org/wiki/F-score
https://deepai.org/machine-learning-glossary-and-terms/f-score
https://towardsdatascience.com/accuracy-precision-recall-or-f1-331fb37c5cb9

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

【讨论】:

  • 非常感谢 :) 但是,f-score 期望设置概率阈值。就我而言,我想在所有可能的阈值上评估我的模型。否则我将不得不遍历 100 个不同的阈值,我认为这不是一个好主意
猜你喜欢
  • 2019-09-19
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
相关资源
最近更新 更多