首页 > 解决方案 > 将 False Positives 的成本设置为远高于 LightGBM 中 False Negatives 的成本

问题描述

我面临的情况是误报比误报成本高得多。

想象一个模型的案例,该模型用于决定您是否会立即接受非常痛苦和危险的手术,或者您宁愿探索其他可能性,包括咨询更多的 MD 和尝试替代疗法。

如果绝对必要,您不会反对危险而痛苦的手术,但如果模特建议您在没有非常严重的理由的情况下进行手术,您会生气。毕竟,在对您的具体病例进行更彻底的医学调查后,您总是可以在一个月后进行手术。

因此,在这种情况下,假阳性的成本远高于假阴性,至少对您而言。

所以我想以某种方式告诉模型,FP 比 FN 差得多。

我在 Stack Overflow 做了一些研究,他们提出了两种解决方案:

  1. 将概率转换为类时使用阈值(这不影响训练)
  2. 增加负类的权重(这会影响训练和决策边界的形状)。

假设是通过增加负类的权重,您可以阻止模型在涉及负类示例时犯错误,即将它们错误分类为正类。

相反,模型将不太愿意在正样本错误分类为负样本方面犯错。

但是当正类是整个数据的一小部分时——例如 3%——这种对负类的过采样很可能会导致分类器总是选择负类,这是一种 Catch22 类型的情况。

你有什么建议?

标签: python-3.xloss-functionlightgbmimbalanced-data

解决方案


推荐阅读