通常在逻辑回归中,我们拟合一个模型并在训练集上得到一些预测。然后,我们对这些训练预测(类似于此处)进行交叉验证,并根据 ROC 曲线之类的内容确定最佳阈值。
为什么我们不将阈值的交叉验证合并到实际模型中,并端到端地训练整个事情?
通常在逻辑回归中,我们拟合一个模型并在训练集上得到一些预测。然后,我们对这些训练预测(类似于此处)进行交叉验证,并根据 ROC 曲线之类的内容确定最佳阈值。
为什么我们不将阈值的交叉验证合并到实际模型中,并端到端地训练整个事情?
没有使用模型训练阈值,因为逻辑回归不是分类器(参见,为什么不将逻辑回归称为逻辑分类?)。它是一个估计参数的模型,,它控制伯努利分布的行为。也就是说,您假设以协变量为条件的响应分布是伯努利,因此您想要估计控制该变量的参数如何随协变量而变化。它只是一个直接概率模型。当然,后续也可以用作分类器,有时在某些情况下是这样,但它仍然是一个概率模型。
这是因为最佳阈值不仅是真阳性率 (TPR)、假阳性率 (FPR)、准确性或其他任何因素的函数。另一个关键因素是正确和错误决策的成本和回报。
如果您的目标是普通感冒,您对阳性测试的反应是开两片阿司匹林,而真正未经治疗的阳性结果是不必要的两天头痛,那么您的最佳决策(不是分类!)阈值是相当的与您的目标是某种危及生命的疾病不同,您的决定是 (a) 一些相对简单的手术,如阑尾切除术,或 (b) 重大干预,如数月的化疗!请注意,尽管您的目标变量可能是二元的(生病/健康),但您的决定可能具有更多价值(带两片阿司匹林回家/进行更多测试/住院并立即观察/手术)。
底线:如果您知道您的成本结构和所有不同的决策,您当然可以直接训练决策支持系统 (DSS),其中包括概率分类或预测。然而,我强烈认为通过阈值离散化预测或分类并不是解决这个问题的正确方法。
另请参阅我对早期“分类概率阈值”线程的回答。或者我的这个答案。或者那个。
撇开哲学问题不谈,这将导致计算困难。
原因是连续输出的函数比较容易优化。你寻找函数增加的方向,然后往那个方向走。如果我们改变我们的损失函数以包含“截止”步骤,我们的输出变得离散,因此我们的损失函数也是离散的。现在,当我们将逻辑函数的参数更改“一点点”并共同更改截止值“一点点”时,我们的损失给出了相同的值,优化变得困难。当然,这并非不可能(离散优化有一个完整的研究领域),但到目前为止,连续优化是不可能的当您优化许多参数时,更容易解决问题。方便的是,一旦拟合了逻辑模型,找到最佳截止点,尽管仍然是一个离散输出问题,现在只在一个变量中,我们可以进行网格搜索,或者类似的,这在一个变量中是完全可行的。
无论底层模型如何,我们都可以计算出 TPR 和 FPR 在阈值处的采样分布。这意味着我们可以在某个阈值处表征 TPR 和 FPR 的可变性,并且我们可以回到所需的错误率权衡。
ROC 曲线有点欺骗性,因为您唯一控制的是阈值,但是该图显示 TPR 和 FPR,它们是阈值的函数。此外,TPR 和 FPR 都是统计量,因此它们受制于随机抽样的变幻莫测。这意味着如果您要重复该过程(例如通过交叉验证),您可以在某个特定阈值处得出不同的 FPR 和 TPR。
但是,如果我们可以估计 TPR 和 FPR 的可变性,则无需重复 ROC 程序。我们只是选择一个阈值,使得置信区间的端点(具有一定宽度)是可以接受的。也就是说,选择模型以使 FPR 合理地低于某个研究人员指定的最大值,和/或 TPR 合理地高于某个研究人员指定的最小值。如果你的模型不能达到你的目标,你就必须建立一个更好的模型。
当然,在您的使用中可以容忍的 TPR 和 FPR 值将取决于上下文。
有关详细信息,请参阅 Wojtek J. Krzanowski 和 David J. Hand的连续数据的 ROC 曲线。