【问题标题】:Sequence classification Tensorflow - LSTM序列分类 Tensorflow - LSTM
【发布时间】:2021-02-21 19:20:11
【问题描述】:

我有一个如下所示的数据框:

id.   date           mycol       label

1.    01/12/2019      c1             1
1.    03/12/2019      c2             1
1.    04/12/2019      c3             1
2.    01/12/2019      c1             0
2.    03/12/2019      c5             0 
3.    15/01/2020       ..            1
4.     ...                           1
.
.

同一id的标签总是相同的,这是一个二元分类问题。我想只为每个 id 预测基于 mycol 的标签,我需要提前 5 个月进行预测。我想我应该使用 LSTM,但问题在于日期和如何设置序列,因为我以前没有见过这种问题,而且我只是从 LSTM 开始。按 id 分组会为每一行提供非常大的 mycol 值列表。我不确定如何以月/周来区分这些值,我是否应该这样做,或者我应该像这样将它们留在每行的 1 个巨大列表中。非常感谢您的帮助。

【问题讨论】:

  • 我认为您应该将问题视为时间序列问题。是的,LSTM 可以解决它,但尝试使用更简单的模型,如 ARIMA 或 ARIMA 的一些变体
  • 你有什么例子可以说明这可能是如何工作的吗?

标签: python tensorflow lstm sequence


【解决方案1】:

你的第一个输入序列应该是 [c1, c2, c3], label - 1,

第二个 - [c1, c5],标签 - 0,

...

序列长度无关紧要(您不必添加填充)。 LSTM 学习如何根据新输入(序列元素)改变其状态权重。

【讨论】:

  • 你最初的问题是分类任务:你有一个序列作为输入,标签作为输出。请澄清 - 你将如何提前 6 个月预测:你想预测 mycol 而不是 label ?如果是这样 - 你必须训练另一个 LSTM 来预测 mycol 6 个月,然后将预测的序列提供给第一个 LSTM 进行分类。
  • 如果您的标签影响 mycol - 为这两个目的训练一个 LSTM 可能更有效(因为 LSTM 有两个输出)。您需要使用包含两个损失的损失(每个目的单独损失)
  • 我没有代码示例。您应该使用 BinaryCrossentropy 进行序列分类,使用 SparseCategoricalEntropy 进行下一个元素预测
猜你喜欢
  • 2018-04-13
  • 2016-10-20
  • 2016-10-07
  • 2018-03-29
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
相关资源
最近更新 更多