通过 CV 的 AUC 是选择最佳模型的好方法吗?

机器算法验证 交叉验证 正则化 网络 奥克
2022-03-22 15:30:53

我正在使用 LASSO 和交叉验证来拟合 logit 分类器,并努力使用 AUC 选择最佳模型 - 而不是更常见的损失,如二项式偏差或分类错误。我在帖子底部添加了更多详细信息,说明为什么我认为这更适合解决业务问题。

在我给客户的结果中,我计划使用使用二项式偏差选择的分类器,但我只想更深入地了解我无法使用 AUC 进行分类的原因。对于下图,我使用的是开放数据集,如果需要,我还可以提供重现它的代码。这是我使用 AUCglmnet作为 CV 损失时的曲线。

在此处输入图像描述

有一个最大值,是的,但是依靠这个来为分类器选择 lambda 看起来并不明智。如果我用二项式偏差来做,结果还可以(我不张贴图片是为了不让问题超载)。

此外,如果我尝试使用“更简单”的分类问题设置,AUC 和偏差都可以(实际上给出了相似的结果,尽管不相同)。

那么,我的问题是:什么让 CV 损失惨重?事后,我可以直观地看到为什么 AUC 会是一个不太稳定的度量,具有更高的方差,但我可能正在遭受“确认偏差”。无论如何,有没有正式的为什么要建立这个?你能指出我有用的资源吗?

作为参考,我正在使用“统计学习的要素”,尽管那里几乎没有关于此的内容(但是我相信glmnet由同一作者维护,并且该库可以选择在将 CV 用于分类器时使用 AUC)。浏览此站点或网络时,关键字“AUC”和“交叉验证”不是很有区别 - 或者至少我没能找到太多有用的东西。我真的很感激见解/指针。


关于业务问题的更多上下文:我正在使用提升建模拟合分类器;有一个治疗组和一个对照组,重点是在考虑到可用实验结果的情况下找到最佳目标客户。

对于评估最佳模型,我所知道的最佳参考是 Qini 分数,请参阅Radcliffe, NJ (2007)。使用控制组以预测提升为目标:构建和评估提升模型。直接营销分析杂志,直接营销协会,14-21

我自己编写了 CV 循环来根据 Qini 分数选择最佳分类器,因为这是衡量结果好坏的最佳方法(提升相对不常见,很难找到这些现成可用的功能) . 我的尝试没有多大意义,我支持 AUC 作为 CV 的损失,因为最后 Qini 的概念有点类似于 AUC:结果也没有意义。

我在上面使用 AUC 说明了我的问题,因为它是一种常见且可以理解的度量,也希望如果我了解为什么以及何时 AUC 是一个好或坏的度量,我最终可以推广到 Qini。

谢谢。

1个回答

一致性概率 (c-指数; ROC 区域)不够敏感,不能用来比较两个模型,更不用说整个系列的模型了。它奖励那些太少的极端预测,因为它只使用预测的等级,而不是它们的绝对值。分类准确度更差,是任意不连续的不正确准确度分数。为了您的目的,请使用适当的准确度分数,例如偏差、伪R2,或 Brier 分数。