我应该平衡测试集以评估模型吗? [关闭]

Posted

技术标签:

【中文标题】我应该平衡测试集以评估模型吗? [关闭]【英文标题】: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(平衡)。

我应该选择什么?

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

【问题讨论】:

永远不要那样做。始终拥有最能代表您在现实生活中的部署场景和相应指标的测试集。 我投票结束这个问题,因为它不是关于 help center 中定义的编程,而是关于 ML 理论和/或方法。 ***.com/questions/48805063/… , datascience.stackexchange.com/questions/82073/… 【参考方案1】:

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

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

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

【讨论】:

非常感谢 :) 但是,f-score 期望设置概率阈值。就我而言,我想在所有可能的阈值上评估我的模型。否则我将不得不遍历 100 个不同的阈值,我认为这不是一个好主意

以上是关于我应该平衡测试集以评估模型吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

不平衡多分类问题模型评估指标探讨与sklearn.metrics实践

当我有高度不平衡的数据时,我应该平衡测试集吗?

在更新之前评估查询集

机器学习中的评估指标

如何创建混淆矩阵来评估模型?

你应该知道的模型评估的五个方法