如果它们是不同的成本,如何将假阳性、假阴性、真阳​​性、真阴性的成本(纳入 logit 模型)合并?

机器算法验证 最大似然 列联表 罗吉特 可能性
2022-03-27 02:10:52

如果它们是不同的成本,如何将假阳性、假阴性、真阳​​性、真阴性反应的成本(纳入 logit 模型)?是否有可能在似然函数的水平上做到这一点?

版:我知道likeligooe函数可以很容易地修改以包含成本,但随后似然函数变得不连续:

y_i == 1 oraz f(x_i*B) > 0.5 成本 = cost11
y_i == 1 oraz f(x_i*B) < 0.5 成本 = cost10
y_i == 0 oraz f(x_i*B) > 0.5 成本 = cost01
y_i = = 0 oraz f(x_i*B) < 0.5 成本 = cost00

非修正似然函数:
f(x_i*B)^y_i * ( 1 - f(x_i*B) ) ^ (1 - y_i)

修正似然函数:

(cost11*positive(f(x_i*B)-0.5) + cost10*negative(f(x_i*B)-0.5) ) ^ y_i
*
(cost00*negative(f(x_i*B)-0.5) + cost01*positive (f(x_i*B)-0.5) ) ^ (1 - y_i)

其中:如果 x > 0,正 (x) = 1 如果 x < 0
,正 (x) = 0

如果 x > 0,
负 (x) = 1 如果 x < 0,负 (x) = 0

2个回答

有一些方法可能会让你朝着正确的方向前进。首先,您可以通过迭代学习来训练您的逻辑回归,这将使解决方案仅限于使用似然函数来估计回归参数。首先,估计逻辑回归并查看它所产生的错误。如果您想提高误报率,请为模型错误地识别为属于正类的观察分配更高的权重。然后使用加权观察重新运行逻辑回归。反复执行此操作,直到误报率满足您的目标。请参阅案例加权逻辑回归上的帖子有关在 R 中实现案例加权逻辑回归的讨论。老实说,我不确定这种方法在一般情况下的效果如何,而且它并不是一种真正有效的优化方法。但是,它易于实现且易于尝试。

如果您愿意摆脱仅仅依靠似然函数来控制分类,那么您总是可以优化用于将观察分为负类和正类的阈值参数。我相信这个阈值参数默认为 0.5,任何小于 0.5 的输出被归类为负类,任何高于 0.5 的输出被归类为正类。在估计逻辑回归权重后,您可以使用真阴性率、真阳性率、精度、召回率、F 度量等来优化此阈值参数。作为你的目标函数。C++ 中的实用神经网络食谱对增加分类阈值以控制不同的错误率进行了不错的讨论(讨论是关于神经网络的,但它也适用于逻辑回归模型)。可以使用多种优化技术来解决这个问题。

在我看来,最好的想法不是改变似然函数,而是将估计的风险转化为最佳决策的一种方式。我们最大化(标准或标准惩罚)可能性是有原因的 - 以获得最佳模型。然后根据个人的损失函数一次做出一个最佳决策。由于通常损失函数因主题而异,因此最终决定必须推迟,分析师不能做出决定。最常见的是,损失函数没有明确表达,而是被主体隐含地用于做出自己的决定。这将取决于根深蒂固的信念以及普遍的条件(例如,资源可用性)。