如何在面板数据上使用LSTM?

2024-09-28 23:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几年内许多个人的健康索赔小组数据。每一行都包含一个做出某种医疗索赔的个人的记录,以及有关个人/索赔的一些信息,如年龄和诊断。我的一小部分数据如下所示:


+----+----------+---------------------+-------------------+-------+-----+
| ID |   Date   |        Diag1        |       Diag2       | Diag3 | Age |
+----+----------+---------------------+-------------------+-------+-----+
| A  | 12/1/19  | obesity             | hi blood pressure |       |  59 |
| A  | 12/14/20 | high blood pressure |                   |       |  59 |
| A  | 2/1/21   | High blood pressure |                   |       |  59 |
| B  | 5/1/19   | arm pain            | broken wrist      |       |  34 |
| B  | 5/6/19   | arm pain            | broken wrist      |       |  34 |
| C  | 6/6/19   | headaches           | trouble sleeping  |       |  41 |
| C  | 6/9/19   | headaches           | trouble sleeping  |       |  41 |
| C  | 7/1/20   | trouble sleeping    |                   |       |  41 |
+----+----------+---------------------+-------------------+-------+-----+

我试图使用LSTM来预测一个人(以ID为标志)是否会在最近的将来(比如3个月)根据当前日期再次诊断。举个例子,如果今天是2021年2月底,那么我有兴趣发现从现在到2021年5月底,人们可能至少会进行一次访问

然而,我不知道LSTM是否可以根据每个主题进行调整。我见过LSTM用来预测股票价格,但这些例子只有一只股票需要检查,而我有多个ID。Keras顺序LSTM是否自动处理此类面板数据?我不认为我应该删除ID列,因为我正在寻找的输出应该或多或少地给我一个可能性,即某个有医疗索赔历史的人在不久的将来会进行就诊


Tags: 数据id小组例子arm医疗lstmpain
1条回答
网友
1楼 · 发布于 2024-09-28 23:20:58

是的,LSTM应该可以工作。但keras不会自动处理您的数据。您需要将数据转换为诊断列表:

input = [
  [[1, 2], [2, 0], [2, 0]],
  [[3, 4], [3, 4]],
  [[5, 6], [5, 6],[6, 0]]
]
# I used only two features (two diagnosises) for simplicity.
# You should add other features: [12/1/19, 1, 2, 0, 59]

# shift input to the left to get labels so that the next features are predicted on the every step

labels = [ 
  [[2, 0], [2, 0], [0, 0]],
  [[3, 4], [0, 0]],
  [[5, 6],[6, 0], [0, 0]]
]

相关问题 更多 >