【问题标题】:How to estimate the optimal cutpoint for a binary outcome in python如何估计python中二元结果的最佳切点
【发布时间】:2021-01-08 22:05:34
【问题描述】:

我有一个糖尿病患者数据集,该数据集已用于在中风、截肢等多种结果中训练 xgboost 模型。最初我们按原样使用连续数值变量,但我们发现结果不明确,因为例如年龄给我们的结果表明,年龄越大中风的风险越高。

但是,对于我们作为医生来说,我们需要一个更窄的范围,因此我们将这些变量划分为 bin。事实上,这给了我们更多的洞察力。尽管如此,我们发现我们的结果中出现了一些连续的区间非常接近。

继续上面的示例,bin(64-78) 和 bin(79-88) 依次出现,并且年龄变量中没有其他 bin 出现。所以我们认为,在这种情况下,最好的方法是找到年龄开始成为中风危险因素的最佳切点。

然后我看到了这个文档 (https://www.mayo.edu/research/documents/biostat-79pdf/doc-10027230),它在 SAS 中解释了如何找到这些切点。我没有足够的经验来自己编程,所以我想知道如何在 python 中找到这些切点?

请限制使用该语言,我已经看过 R、SAS,甚至 SPSS 示例,但在 python 中没有。在 Python 中必须有某种方法可以做到这一点。

【问题讨论】:

  • 有趣的问题,但更适合 stats.stackexchange.com。
  • 决策树为每个变量提供“最佳”二元切割。您可以使用决策树来识别一些箱。

标签: python machine-learning statistics xgboost


【解决方案1】:

不看数据很难确定,但有几种方法可以做到。一种方法是在您的数据中执行logistic regression,这将为您提供二进制类的概率分布,然后您可以使用Receiver Operating Characteristic (ROC) 来确定最佳阈值,具体取决于您优先考虑真阳性率的重要性没有假阳性。 你可以找到一篇关于这个的文章here

【讨论】:

    猜你喜欢
    • 2016-07-31
    • 2021-02-04
    • 2012-03-05
    • 2013-02-09
    • 1970-01-01
    • 2019-10-24
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多