使用 ML.NET 按顺序预测下一个整数

数据挖掘 喀拉斯 回归 lstm 自动
2022-02-14 18:25:22

给定一个冗长的整数序列,0-1我希望能够根据前一个序列预测下一个可能的整数。

示例数据集:1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0

快速浏览一下上面的内容可能会显示一些可以被 ML 模型识别的明显模式。经过大量研究后,我似乎在寻找 LSTM 解决方案,但找不到任何处理上述模式序列的教程或示例。

我在数据集中确实有其他可用的功能,但我认为它们与整数结果无关,因此预测应该纯粹基于提供的整数数据集的统计相关性。

我正在使用 ML.NET,但也欢迎任何有关如何使用任何其他框架来解决此问题的一般指示。目前正在研究Keraspython。

3个回答

了解序列预测

3 种类型的序列预测问题,即:预测类标签、预测序列或预测下一个值

在您的情况下,您期待预测下一个值。

教程

我发现很少有与带有代码示例的序列预测相关的教程。

  1. 使用 LSTM 进行简单序列预测有助于预测下一个值
  2. 使用紧凑预测树 python 进行序列预测的指南,CPT 模型是一种无损模型,可确保准确的序列预测
  3. LSTM的 5 个简单序列预测问题示例有助于使用 LSTM 循环神经网络实现序列预测

序列预测模型

有许多不同的方法可以执行序列预测,例如使用机器学习领域的马尔可夫模型、有向图等,以及深度学习领域的 RNN/LSTM。然而,RNN 和 LSTM 几乎没有缺点

  • 训练时间更长
  • 上一次训练迭代中未见过的序列需要重新训练。这是一个非常昂贵的过程,对于经常遇到新项目的场景是不可行的

下面提到了来自研究界的最流行的序列预测模型

  • 部分匹配预测 (PPM)它基于马尔可夫属性,并启发了许多其他模型,例如

  • 依赖图 (DG)

  • 全 K 阶马尔可夫 (AKOM)

  • 转移有向无环图 (TDAG)

  • 概率后缀树 (PST)

  • 上下文树权重 (CTW)

  • 紧凑预测树 (CPT)是最近提出的一种预测模型,它通过利用子序列之间的相似性来压缩训练序列而不会丢失信息。据报道,它在各种真实数据集上比最先进的模型 PPM、DG、AKOM 更准确。

结论

从我发现的研究社区中,Compact Prediction Tree考虑到它与其他模型相比的表现如何,这是研究人员的选择。该教程在 #2 中提到了在 python 中的实现,但是它的原始实现是在Java.

参考

如果您正在寻找一本书,这似乎涵盖了大多数用例,LSTM 网络与 Python:使用深度学习开发序列预测模型

希望我的帖子能解决你的问题

一种解决方案是将 0 和 1 视为字符(或您喜欢的单词),因此问题变成了在给定先前文本的情况下预测下一个字母。这正是这个Keras 示例的内容。您可以尝试一些参数设置(例如 LSTM 的维度数)以找到最佳位置。

我不熟悉 ML.NET 也不熟悉它如何与 Keras 交互,但这个想法就在这里。

LSTM 和 AutoML 在查找整数模式方面可能过于复杂。

更成熟的选择是: