决策阈值是逻辑回归中的超参数吗?


13

通过使用由模型生成的类成员资格概率的阈值来确定(二进制)逻辑回归的预测类。据我了解,默认情况下通常使用0.5。

但是改变阈值将改变预测的分类。这是否意味着阈值是超参数?如果是这样,为什么(例如)为什么无法使用scikit-learn的GridSearchCV方法轻松地在阈值网格中进行搜索(就像对正则化参数所做的那样C)。


1
“据我了解,默认情况下通常使用0.5。” 取决于“典型”一词的含义。实际上,没有人应该这样做。
马修·德鲁里


严格地说,您不是指逻辑回归,而是指使用一个具有二进制分类阈值的逻辑回归(您也可以为两个类别中的每一个训练一个回归,并带有少量种子随机性或权重,以避免它们线性相关)。
smci

Answers:


12

决策阈值会在您预测的正数与预测的负数之间进行权衡-因为从重复性上讲,提高决策阈值将减少您预测的正数并增加所预测的负数你预测。

从模型调整的角度来看,决策阈值不是超参数,因为它不会改变模型的灵活性

C(例如,逻辑回归系数将有所不同),而调整阈值仅能做两件事:权衡TP用于FN和FP用于TN。但是,模型保持不变,因为这不会改变系数。(对于没有系数的模​​型,例如随机森林,也是如此:更改阈值不会改变树木的任何内容。)因此,从狭义上讲,您是正确的,即在错误之间找到最佳折衷方案是“调整”,但您认为将阈值更改以优化的方式链接到其他模型超参数是错误的GridSearchCV

换句话说,更改决策阈值反映了您所要选择的假阳性和假阴性的选择。考虑以下假设,您将决策阈值设置为一个完全不可信的值,如-1。所有概率都是非负的,因此使用此阈值,您将为每个观察值预测“正”。从某种角度讲,这很好,因为您的假阴性率为0.0。但是,您的假阳性率也为1.0的极高值,因此从这个意义上讲,您选择-1为阈值是很糟糕的。

当然,理想的是TPR为1.0,FPR为0.0,FNR为0.0。但这在现实应用中通常是不可能的,因此问题就变成了“我愿意为多少TPR接受多少FPR?” 这就是曲线的动机。


感谢您的回答@Sycorax。你几乎说服了我。但是我们不能将“我愿意为多少TPR接受多少FPR”的想法正式化吗?例如使用成本矩阵。如果我们有一个成本矩阵,那么您不希望通过调整来找到最佳阈值,因为您会调整一个超参数?还是有更好的方法来找到最佳阈值?
尼克,

1
CGridSearchCV

@Sycorax阈值和截距(偏差项)是否基本上是同一件事?也就是说,您可以将阈值固定为0.5,但可以相应地更改截距;这将“更改模型”(根据您的最后评论),但在二进制预测方面将具有相同的效果。它是否正确?如果是这样,我不确定在这种情况下“更改模型”与“更改决策规则”之间的严格区分是否有意义。
变形虫说恢复莫妮卡

@amoeba这是一个发人深省的话。我得考虑一下。我认为您的建议相当于“将阈值保持在0.5,并将截距视为您调整的超参数”。从数学上讲,没有什么可以阻止您执行此操作的,除了观察到该模型不再使它的可能性最大化之外。但是在某些特定情况下,实现MLE可能不是优先事项。
Sycorax说要

10

但是改变阈值将改变预测的分类。这是否意味着阈值是超参数?

是的,确实如此。它是决策规则的超参数,但不是基础回归。

如果是这样,为什么(例如)为什么不能使用scikit-learn的GridSearchCV方法轻松地在阈值网格上进行搜索(就像对正则化参数C所做的那样)。

这是sklearn中的设计错误。对于大多数分类方案而言,最佳实践是使用对这些概率的质量的某种度量(例如逻辑回归中的对数损失)来拟合基础模型(预测概率)。之后,应调整这些概率的决策阈值,以优化分类规则的某些业务目标。该库应该可以轻松地基于某种质量度量来优化决策阈值,但是我认为它做得不好。

我认为这是sklearn弄错的地方之一。该库predict在所有分类模型中都包含一个方法,该方法的阈值为0.5。这种方法没有用,我强烈建议永远不要调用它。不幸的是,sklearn没有鼓励更好的工作流程。


我也分享了您对该predict方法的默认选择0.5(作为临界值)的怀疑,但是GridSearchCV接受scorer可以针对样本外交叉熵损失调整模型的对象。我想念你的意思吗?
Sycorax说要

没错,这是最佳做法,但它并不鼓励用户调整决策阈值。
马修·德鲁里

知道了 我明白你的意思!
Sycorax说要

1
@Sycorax尝试进行编辑以弄清楚!
马修·德鲁里
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.