这可以看作是一个“简单的”二元分类问题。我的意思是问题的类型是“简单的”,任务本身当然不是……而且我什至不会提及有关其潜在应用的严重伦理问题!
首先,显然您需要在数据中输入患者死亡的信息。如果你有这些信息,我不是很清楚吗?重要的是,每当患者死亡时,都会在数据中报告这一点,否则您无法区分这两个类别。
所以设计可能是这样的:
- 一个实例代表一个单一的患者历史t,并且它被标记为活着或死了t+N天。
- 这需要重构数据。假设数据跨越从 0 到T, 可以取多个时间点t和t<T−N(例如每个月从 0 到T−N)。请注意,理论上我认为不同的时间t只要所有实例一致地表示相同的持续时间并且相应地计算它们的特征和标签,就可以在数据中使用同一患者。
- 设计特征当然是棘手的部分:当然特征必须具有所有实例的值,因此您不能依赖仅对某些患者进行的特定测试(当然可以,但是这些特征存在偏差)。
- 老实说,我怀疑这部分能否可靠地完成:要么特征是由标准的同质指标组成,但这些指标通常可能无法预测死亡;或者它们包含针对某些患者的专门诊断测试,但它们在患者之间不是同质的,因此模型将有偏差并且可能过度拟合。
理想情况下,我建议在以这种方式准备数据之前将训练数据和测试数据分开,通常是选择一段时间用于训练数据,另一个时间用于测试数据。
一旦准备好数据,理论上任何二元分类方法都可以应用。当然,概率分类器可以用来预测概率,但这可能会产生误导,所以要非常小心:概率本身就是一个预测,它不能被解释为患者死亡与否的真实机会。例如,众所周知,朴素贝叶斯在经验上总是给出极端概率,即接近 0 或接近 1,而且它的预测通常是完全错误的。这意味着通常预测的概率只是一个猜测,它不能用来表示置信度。
[编辑:示例]
假设我们有:
- 2000 年至 2005 年的数据
- N=1,即我们看一个病人明年是否死亡。
- 一个单一的指标,例如胆固醇水平。当然,在现实中你会有很多其他的功能。
- 每次t在特征中,我们代表过去 2 年到当前年份的“测试值”t. 这意味着我们可以迭代t从 2002 (2000+2) 到 2004 (2005-N)
让我们想象一下以下数据(为简化起见,我假设时间单位是年):
patientId birthYear year indicator
1 1987 2000 26
1 1987 2001 34
1 1987 2002 18
1 1987 2003 43
1 1987 2004 31
1 1987 2005 36
2 1953 2000 47
2 1953 2001 67
2 1953 2002 56
2 1953 2003 69
2 1953 2004 - DEATH
3 1969 2000 37
3 1969 2001 31
3 1969 2002 25
3 1969 2003 27
3 1969 2004 15
3 1969 2005 - DEATH
4 1936 2000 41
4 1936 2001 39
4 1936 2002 43
4 1936 2003 43
4 1936 2004 40
4 1936 2005 38
那将变成这样:
patientId yearT age indicatorT-2 indicatorT-1 indicatorT-0 label
1 2002 15 26 34 18 0
1 2003 16 34 18 43 0
1 2004 17 18 43 31 0
2 2002 49 47 67 56 0
2 2003 50 67 56 69 1
3 2002 33 37 31 25 0
3 2003 34 31 25 27 0
3 2004 35 25 27 15 1
4 2002 66 41 39 43 0
4 2003 67 39 43 43 0
4 2004 68 43 43 40 0
请注意,我写前两列只是为了显示数据是如何计算的,这两列不是特征的一部分。