机器学习模型(GBM、NN 等)如何用于生存分析?

机器算法验证 机器学习 分类 生存 cox模型 卡普兰迈尔
2022-02-02 17:54:57

我知道传统的统计模型,如 Cox Proportional Hazards 回归和一些 Kaplan-Meier 模型可用于预测事件发生前的天数,例如失败等。即生存分析

问题

  1. GBM、神经网络等机器学习模型的回归版本如何用于预测事件发生前的天数?
  2. 我相信仅使用发生前的天数作为目标变量并简单地运行回归模型是行不通的?为什么它不起作用以及如何修复?
  3. 我们可以将生存分析问题转换为分类,然后获得生存概率吗?如果那么如何创建二进制目标变量?
  4. 机器学习方法与 Cox Proportional Hazards 回归和 Kaplan-Meier 模型等的优缺点是什么?

想象一下样本输入数据的格式如下

在此处输入图像描述

笔记:

  • 传感器每隔 10 分钟 ping 一次数据,但有时由于网络问题等原因,数据可能会丢失,如带有 NA 的行所示。
  • var1,var2,var3 是预测变量,解释变量。
  • failure_flag 告诉机器是否失败。
  • 对于每个机器 ID,我们每隔 10 分钟都有最近 6 个月的数据

编辑:

预期输出预测应采用以下格式 在此处输入图像描述

注意:我想每天预测每台机器在接下来的 30 天内发生故障的概率。

3个回答

对于神经网络,这是一种很有前途的方法:WTTE-RNN - Less hacky churn prediction

该方法的本质是使用循环神经网络在每个时间步预测 Weibull 分布的参数,并使用考虑审查的损失函数优化网络。

作者还在Github 上发布了他的实现

看看这些参考资料:

https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf

http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf

另请注意,传统的基于危害的模型(如 Cox 比例危害 (CPH))并非旨在预测事件发生时间,而是用于推断变量对 i) 事件观察结果的影响(相关性),因此 ii) 生存曲线. 为什么?查看 CPH 的 MLE。

因此,如果您想更直接地预测诸如“距离发生的天数”之类的事情,CPH 可能并不可取;如上述两个参考文献中所述,其他模型可能会更好地满足您的任务。

正如@dsaxton 所说,您可以构建离散时间模型。您将其设置为预测 p(在这一天失败,因为存活到前一天)。您的输入是当前日期(以您想要的任何表示形式),例如一种热编码、整数、.. 样条线......以及您可能想要的任何其他自变量

因此,您为每个存活到时间 t-1 的样本创建数据行,它是否在时间 t (0/1) 死亡。

所以现在存活到时间 T 的概率是 p 的乘积(在时间 t 不死给定在 t-1 没有死)对于 t=1 到 T。即你从你的模型中做出 T 预测然后相乘。

我想说直接预测故障时间的想法不是这样的原因是因为问题的隐藏结构。例如,你为没有失败的机器输入了什么。底层结构实际上是独立事件:在给定的时间 t 失败并没有失败到 t-1。因此,例如,如果您假设它是恒定的,那么您的生存曲线就会变成指数(参见危险模型)

请注意,在您的情况下,您可以以 10 分钟的间隔进行建模,或者将分类问题汇总到一天级别。