对于我正在从事的一个项目,该项目使用来自已成功或破产/进入清算的公司的年度财务报告数据(多个类别),我之前使用多重线性在 AWS Sagemaker 上创建了一个(性能相当良好)模型回归算法(具体来说,用于逻辑回归/分类问题的 AWS 股票算法 - “线性学习器”算法)
这个模型只是根据输入的一组年度数据产生一个简单的“公司健康状况良好”或“公司看起来会破产”的二元预测;例如
query input: {data:[{
"Gross Revenue": -4000,
"Balance Sheet": 10000,
"Creditors": 4000,
"Debts": 1000000
}]}
inference output: "in good health" / "in bad health"
我通过忽略每家公司的值来自哪一年来训练这个模型,并在所有年度财务报告数据(即一家公司一年的财务数据=一条输入行)中进行训练,以及标签“好”或“坏”——好公司是已经存在了一段时间但尚未破产的公司,坏公司是被发现最终破产的公司;例如:
标签 | 总收入 | 资产负债表 | 债权人 | 债务 |
---|---|---|---|---|
好 | 10000 | 20000 | 0 | 0 |
不好 | 0 | 5 | 100 | 10000 |
不好 | 20000 | 0 | 4 | 10亿 |
因此,我在训练输入中使用了这些多个特征(总收入、资产负债表...)以及标签(好/坏)来创建我的第一个模型。
我想使用与以前相同的功能作为输入(总收入、资产负债表......),但要持续多年;例如,采用 2020 年和 2019 年的值并使用这些值(以及最终的公司状态“好”或“坏”)作为我的新模型的单一输入。但我不确定以下几点:
标签 | 总收入(2019) | 资产负债表(2019) | 债权人(2019) | 债务(2019) | 总收入(2020年) | 资产负债表(2020) | 债权人(2020) | 债务(2020) |
---|---|---|---|---|---|---|---|---|
好 | 10000 | 20000 | 0 | 0 | 30000 | 10000 | 40 | 500 |
不好 | 100 | 50 | 200 | 50000 | 100 | 5 | 100 | 10000 |
不好 | 5000 | 0 | 2000 | 800000 | 2000 | 0 | 4 | 10亿 |
我个人认为,一家随着时间的推移而变得更糟的公司(即公司 2020 年的财务状况比 2019 年更糟糕)应该更有可能被认定为“坏”/可能破产,所以我希望,如果我像上面的示例一样输入数据(即,在输入行上,早年的数据出现在晚年的数据之前),我的训练工作最终会创建一个模型,在进行预测时,该模型会为早年的数据赋予更大的权重
更新:
使用长短期记忆循环神经网络(LSTM RNN)是我认为我可以尝试采用的一种潜在途径,但这似乎通常只用于多个日期的多元数据;我的数据中每个公司只有 2 或 3 个日期的多元数据。我想尝试在训练中使用我拥有的所有公司的数据,在几个日期内都有有价值的数据
我曾经在 R 中开发了一个所谓的遗传时间序列。我使用遗传算法从多变量数据中筛选出最佳解决方案,并将其拟合到差异 VAR 或 VECM 上。您的数据似乎比以用户为中心更宏观的经济或金融数据,VAR 或 VECM 似乎更合适。 (当然可以以相同的方式处理时间序列数据,以便我们可以使用 LSTM 或其他方法,但这些方法很常见)但是,我不知道差异中的 VAR 或 VECM 是否适用于二进制分类标签。也许如果您要计算一个度量结果,稍后将其标记为分类特征(或首先将其标记为分类特征),那么 VAR 或 VECM 也可能更合适。
但是,您可以将所有年度数据点添加到每个公司的一个数据点中以预测其生存,但您会失去很多洞察力。如果您对时间序列 ML 感兴趣,它的工作原理与神经网络或弹性网络(也可以与时间序列一起使用)略有不同,请告诉我。我们可以解决一些问题。或者我给你贴一些资源。
总结: 1.) 可以使用 LSTM、弹性 NEt(时间点可能是虚拟点或被视为横截面面板),或者使用差异中的 VAR 和结果变量略有不同的 VECM
2.) 这是可能的,但随着时间的推移,您会丢失信息。