将 ML 模型与基线进行比较

数据挖掘 分类 scikit-学习 随机森林 模型评估
2022-02-19 22:38:47

在将 ML 模型与基线或“虚拟”模型进行比较时,是否有构建和比较基线的最佳实践?

我正在做一个二元分类任务,其中 40% 的样本是 class_0(未处理类),另外 60% 是 class_1(处理/阳性类)。

我有两个基线:baseline_0 随机预测,baseline_1 每次都预测 class_1。

因为指标是相对于 class_1 计算的,所以当 baseline_1 在每个样本上预测 class_1 时,它最终会得到完美召回 (1.0),这会夸大 f1 分数。这是否意味着这个基线模型不适合与我的实验模型进行比较,我应该使用基线_0,或者基线_1 很好但 f1 分数不适合进行这些比较?

3个回答

这取决于你想展示什么。使用指标时,您不应只按原样获取值,而应查看每个指标告诉您的信息基线_1 并不比基线_0 更好/更差,因为它在度量X 中具有更高/更低的值。两个基线都对给定数据集提供了一个有趣的视角,如果不确定,我建议保留两者

几点注意事项:

  • 在说基线时,我将参考您在帖子中所说的两个基线策略
  • 我将使用准确性指标作为示例,但我所说的对于任何指标都是正确的。

为什么要使用基线?

人们通常倾向于将准确性(或其他度量)视为绝对值。例如准确度=0.9?“非常好”,准确度=0.3?“很坏”。然而,这不是真的,因为度量受到类的数量和它们之间的样本比例的影响。

然而,在具有 1000 个类别的分类任务中,0.3 的准确度可以说比在二元分类任务中达到 0.9 的准确度要困难得多(假设两种情况下的类别平衡)。

这是基线。它们可以显示模型比转储分类策略好多少。

基线如何帮助?

基线有助于为您的指标设置下限例如,二分类任务的准确度为 0.55 略好于随机,但同样的准确度在 10 类设置上要好得多。基线有助于量化这一点,并告诉您比预测随机值或最常见值要好多少

基线有什么影响?

现在谈谈为什么要保留两个基线:

  • 第一个基线(即随机)有助于显示指标如何受到数据集上类数的影响。
  • 第二个基线(即最常见的)有助于显示指标如何受到类不平衡的影响。

基线实际上如何帮助?

让我们有两个模型,一个精度为 0.92,另一个精度为 0.93。第二个模型比第一个模型好多少?这取决于您的基线值。如果您的基线准确度为 0.5,那么这两个模型都相对较强,并且差异并不显着。如果您的基线为 0.9,那么模型就没有那么强大,并且该幅度的改进更为显着。

选择正确的指标可能是要找出的第一点,并且很大程度上取决于您尝试将模型应用到实际用例。防止假阴性(例如在医疗应用中)是否更重要?还是在获得高真阳性率和真阴性率之间取得平衡(例如,在工业应用中不要过分危言耸听)?
完成此操作后,您可以定义什么是适合您的良好基线模型,它可以是:

  • 一个完全轻松的模型,就像你提到的随机分类器或多数类预测器
  • 已在产品中实施您希望改进模型

无论您选择哪种类型的基线模型,在评估对您的案例更重要的内容并了解哪个指标可以让您更深入地了解之后,您的指标应该放在首位,因此从您提供的信息中,不要太不平衡,我会说指标像ROC-AUC与您的 aprox 的 F-1 分数一起有助于达到稳健的模型。75% 的价值作为一个良好的起点,无需之前的努力。

这是否意味着这个基线模型不适合与我的实验模型进行比较,我应该使用基线_0,或者基线_1 很好但 f1 分数不适合进行这些比较?

根据定义,像baseline_1这样的多数分类器比像baseline_0这样的随机分类器更强(除非类是均匀分布的),因为它总是选择多数类,因此预测更正确的实例。

这里的召回非常适合baseline_1,因为正类是多数类。在大多数任务中,少数类被选为正类,所以这不会发生。但是,这并不意味着基线对任务不利,也不意味着 F1 分数是错误的。对于某些任务,甚至可能发生“真正的”分类器很难超越基线,但这并不一定意味着“真正的”分类器不好。基线分类器只是一个简单方法如何执行的指示。