使用多组顺序数据学习

数据挖掘 机器学习 时间序列
2022-02-26 06:24:38

假设我有一个数据集,如下所示:

person, Time, Value, Event
person1, 2010-07-02 00:00:00, 5.4, 0
person2, 2010-07-02 10:00:00, 12.7, 0

我们在工作中使用了一个当前模型,它没有考虑数据的时间方面。在该实现中,模型仅使用“人”的唯一值进行训练,并且丢弃了时间变量。然而,我们注意到我们可以将数据视为一个序列。这个开始时间对于每个人来说都是独一无二的,并且显然只与那个人相关联,所以仅仅假装每个人都是独立的并且只是将每一行视为一个单独的数据点是没有任何意义的。以下是我将数据重组为:

person, Time, Value, Event
person1, 2010-07-02 00:00:00, 5.4, 0
person1, 2010-07-02 00:00:15, 3.6, 0
person1, 2010-07-02 00:00:30, 2.4, 0
person2, 2010-07-02 10:00:00, 12.7, 0
person2, 2010-07-02 10:01:15, 12.8, 0
person2, 2010-07-02 10:01:30, 13.1, 1

每个人的这个顺序将一直持续到“事件”或“非事件”。我对时间序列数据的机器学习完全不熟悉。我读过的所有使用不同模型的示例都将数据视为对应于一个实体的一个大序列,而我们的数据显然不是这样工作的。我构建数据的方式是处理时间序列模型的正确方式吗?如果是这样,应该考虑什么合适的模型?

1个回答

您显示的数据是典型的生存数据。如果您想根据时间和价值对事件进行建模,您应该研究具有时间相关协变量的生存模型。如果您想在不对分布进行任何假设的情况下执行此操作,您可以从 Kaplan Meier 估计开始,如此所述。如果您想使用参数模型,您可以查看 Weibull 或 Gamma 回归。

如果您不熟悉该主题,我强烈建议您浏览CRAN Survival Task View中的软件包示例。