在 Amazon SageMaker 中对时间序列数据使用逻辑回归

Using Logistic Regression For Timeseries Data in Amazon SageMaker

对于我正在从事的项目,该项目使用来自成功或已清算的公司的年度财务报告数据(多个类别)bust/into,我之前创建了一个(表现相当好的)模型使用多元线性回归算法的 AWS Sagemaker(具体来说,用于逻辑 regression/classification 问题的 AWS 库存算法 - 'Linear Learner' 算法)

该模型仅根据输入的一组年度数据生成简单的“公司状况良好”或“公司看起来会破产”的二元预测;例如

query input: {data:[{
"Gross Revenue": -4000,
"Balance Sheet": 10000,
"Creditors": 4000,
"Debts": 1000000 
}]}

inference output: "in good health" / "in bad health"

我训练这个模型的方法是忽略每家公司的价值来自哪一年,并加入所有年度财务报告数据(即一家公司一年的财务数据 = 一条输入线)进行培训,以及有“好”或“坏”的标签——好的公司是已经存在了一段时间但还没有倒闭的公司,坏的公司是被发现最终倒闭的公司;例如:

label Gross Revenue Balance Sheet Creditors Debts
good 10000 20000 0 0
bad 0 5 100 10000
bad 20000 0 4 100000000

因此,我在我的训练输入中使用了这些多重特征(总收入、余额 sheet...)以及标签 (good/bad) 来创建我的第一个模型。

我想使用与以前相同的功能作为输入(总收入、余额 sheet..),但要使用多年;例如,采用 2020 年和 2019 年的值并将它们(连同最终的公司状态“好”或“坏”)用作我的新模型的单一输入。但是我不确定以下内容:

label Gross Revenue(2019) Balance Sheet(2019) Creditors(2019) Debts(2019) Gross Revenue(2020) Balance Sheet(2020) Creditors(2020) Debts(2020)
good 10000 20000 0 0 30000 10000 40 500
bad 100 50 200 50000 100 5 100 10000
bad 5000 0 2000 800000 2000 0 4 100000000

我个人认为随着时间的推移变得更糟的公司(即公司 2020 年的财务状况比 2019 年更糟)应该更有可能被发现是“糟糕的”/可能会破产,所以我希望,如果我像上面的例子一样输入数据(即早年数据在晚年数据之前,在输入行上),我的训练工作最终会创建一个模型,该模型对早年数据给予更大的权重,当做出预测

任何建议或技巧将不胜感激 - 我对机器学习还很陌生,想了解更多

更新:

使用长短期记忆递归神经网络 (LSTM RNN) 是我认为我可以尝试采用的一种潜在途径,但这似乎通常只用于多个日期的多元数据;我的数据每个公司只有 2 或 3 个日期的多元数据。我想尝试使用我拥有的所有公司的数据,在少数有价值的数据中,在培训中

我曾经在 R 中开发了一个所谓的遗传时间序列。我使用了一种遗传算法,它从多变量数据中挑选出最佳解决方案,这些数据被安装在差异 VAR 或 VECM 上。您的数据似乎比以用户为中心的更宏观经济或金融,VAR 或 VECM 似乎更合适。 (当然可以以相同的方式处理时间序列数据,以便我们可以使用 LSTM 或其他方法,但这些方法很常见)但是,我不知道差异 VAR 或 VECM 是否适用于二进制分类标签。也许如果您要计算一个度量结果,您稍后将其标记为分类特征(或首先将其标记为分类特征),那么 VAR 或 VECM 可能也是合适的。

然而,您可以将所有年度数据点添加到每个公司的一个数据点以预测其生存,但您会失去很多洞察力。如果您对时间序列 ML 感兴趣,它的工作方式与神经网络或弹性网络(也可用于时间序列)略有不同,请告诉我。我们可以解决问题。或者我会给你贴一些资源。

总结: 1.) 可以使用 LSTM、弹性 NEt(时间点可能是虚拟的或被视为横截面面板),或者您使用差异 VAR 和 VECM,结果变量略有不同

2.) 这是可能的,但随着时间的推移你会丢失信息。

一切顺利, 帕特里克