序列预测不同于其他类型的监督学习问题。
序列对观测值施加了顺序,在训练模型和进行预测时必须保留该顺序。
通常,涉及序列数据的预测问题被称为序列预测问题,尽管存在根据输入和输出序列而不同的系列问题。
在本教程中,您将了解不同类型的序列预测问题。
完成本教程后,您将了解:
- 4种序列预测问题类型。
- 专家对每种序列预测问题类型的定义。
- 每种序列预测问题类型的真实世界示例。
通过我的新书《使用Python的长短期记忆网络》启动您的项目,其中包括逐步教程和所有示例的Python源代码文件。
让我们开始吧。

序列预测入门
照片由abstrkt.ch提供,部分权利保留。
教程概述
本教程分为5个部分,它们是:
- 序列
- 序列预测
- 序列分类
- 序列生成
- 序列到序列预测
序列
在应用机器学习中,我们经常处理集合,例如样本的训练集或测试集。
集合中的每个样本都可以被视为来自该领域的一个观测值。
在一个集合中,观测值的顺序并不重要。
序列则不同。序列对观测值施加了明确的顺序。
顺序很重要。在使用序列数据作为模型输入或输出的预测问题 формулировать 时,必须尊重该顺序。
序列预测
序列预测涉及预测给定输入序列的下一个值。
例如:
- 给定:1, 2, 3, 4, 5
- 预测:6

序列预测问题示例
序列预测试图根据前序元素来预测序列中的元素
——《序列学习:从识别和预测到顺序决策》,2001年。
预测模型使用一组训练序列进行训练。一旦训练完成,该模型将用于执行序列预测。预测包括预测序列的下一项。这项任务有许多应用,例如网页预取、消费品推荐、天气预报和股市预测。
——《CPT+:降低紧凑预测树的时间/空间复杂度》,2015年
序列预测通常也可以称为“序列学习”。
序列数据的学习仍然是模式识别和机器学习中的一个基本任务和挑战。涉及序列数据的应用可能需要预测新事件、生成新序列或做出决策,例如序列或子序列的分类。
—《关于使用变阶马尔可夫模型进行预测》,2004年。
技术上,我们可以将这篇文章中的所有以下问题都称为一种序列预测问题。这可能会让初学者感到困惑。
序列预测的一些示例包括
- 天气预报。给定一系列关于天气随时间变化的观测数据,预测明天的预期天气。
- 股市预测。给定一段时间内证券价格波动的序列,预测证券的下一次波动。
- 产品推荐。给定客户过去的购买序列,预测客户的下一次购买。
序列分类
序列分类涉及为给定输入序列预测一个类别标签。
例如:
- 给定:1, 2, 3, 4, 5
- 预测:“好”或“坏”

序列分类问题示例
序列分类的目标是使用标记数据集 D 构建分类模型,以便该模型可以用于预测未见序列的类别标签。
— 第14章,《数据分类:算法与应用》,2015年
输入序列可以由实数值或离散值组成。在后一种情况下,此类问题可能被称为离散序列分类。
序列分类的一些例子包括
- DNA序列分类。给定由ACGT值组成的DNA序列,预测该序列编码的是编码区还是非编码区。
- 异常检测。给定一个观测序列,预测该序列是否异常。
- 情感分析。给定一段文本序列,例如评论或推文,预测该文本的情感是积极的还是消极的。
序列生成
序列生成涉及生成一个新的输出序列,该序列具有与语料库中其他序列相同的普遍特征。
例如:
- 给定:[1, 3, 5], [7, 9, 11]
- 预测:[3, 5 ,7]
[递归神经网络]可以通过一次处理真实数据序列并预测接下来会发生什么来训练序列生成。假设预测是概率性的,可以通过从网络的输出分布中迭代采样,然后将样本作为下一步的输入,从训练好的网络中生成新序列。换句话说,让网络将其发明视为真实的东西,就像一个人做梦一样。
——《使用递归神经网络生成序列》,2013年。
序列生成问题的一些示例包括
- 文本生成。给定一个文本语料库,例如莎士比亚的作品,生成新的句子或段落,使其读起来像莎士比亚的风格。
- 手写预测。给定一个手写示例语料库,为具有语料库中手写特征的新短语生成手写。
- 音乐生成。给定一个音乐示例语料库,生成具有语料库特征的新音乐作品。
序列生成也可以指给定单个观测值作为输入来生成序列。
一个例子是图像的自动文本描述。
- 图像字幕生成。给定一张图像作为输入,生成描述该图像的词序列。

序列生成问题示例
能够使用正确构造的英语句子自动描述图像内容是一项非常具有挑战性的任务,但它可能产生巨大影响,例如通过帮助视障人士更好地理解网络上的图像内容。[……] 事实上,描述不仅要捕捉图像中包含的物体,还要表达这些物体之间的关系以及它们的属性和所参与的活动。此外,上述语义知识必须以英语等自然语言表达,这意味着除了视觉理解之外,还需要一个语言模型。
——《展示与讲述:一个神经图像字幕生成器》,2015年
序列到序列预测
序列到序列预测涉及给定输入序列来预测输出序列。
例如:
- 给定:1, 2, 3, 4, 5
- 预测:6, 7, 8, 9, 10

序列到序列预测问题示例
尽管[深度神经网络]具有灵活性和强大功能,但它们只能应用于输入和目标可以合理地用固定维度向量编码的问题。这是一个重要的限制,因为许多重要问题最好用长度事先未知的序列来表达。例如,语音识别和机器翻译都是序列问题。同样,问答也可以看作是将代表问题的词序列映射到代表答案的词序列。
—《使用神经网络进行序列到序列学习》,2014年
这是序列预测的一个微妙但具有挑战性的扩展,它不是预测序列中的单个下一个值,而是预测一个新序列,该序列的长度或类型可能与输入序列相同也可能不同。
这种类型的问题最近在自动文本翻译领域(例如,将英语翻译成法语)受到了大量研究,并且可能被称为缩写seq2seq。
seq2seq 学习的核心是使用循环神经网络将可变长度的输入序列映射到可变长度的输出序列。虽然相对较新,但 seq2seq 方法不仅在其原始应用——机器翻译——中取得了最先进的成果。
—《多任务序列到序列学习》,2016年。
如果输入和输出序列是时间序列,则该问题可能被称为多步时间序列预测。
- 多步时间序列预测。给定一个观测时间序列,预测未来一段时间步长的观测序列。
- 文本摘要。给定一个文本文档,预测一个较短的文本序列,描述源文档的主要部分。
- 程序执行。给定程序或数学方程的文本描述,预测描述正确输出的字符序列。
进一步阅读
如果您想深入了解此主题,本节提供了更多资源。
- 维基百科上的序列
- CPT+:降低紧凑预测树的时间/空间复杂度, 2015
- 使用变阶马尔可夫模型进行预测, 2004
- 序列预测简介, 2016
- 序列学习:从识别和预测到顺序决策, 2001
- 第14章,离散序列分类,《数据分类:算法与应用》,2015年
- 使用循环神经网络生成序列, 2013
- 展示与讲述:一个神经图像字幕生成器, 2015
- 多任务序列到序列学习, 2016
- 使用神经网络进行序列到序列学习, 2014
- 递归和直接多步预测:两全其美, 2012
总结
在本教程中,您了解了不同类型的序列预测问题。
具体来说,你学到了:
- 4种序列预测问题类型。
- 专家对每种序列预测问题类型的定义。
- 每种序列预测问题类型的真实世界示例。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
那么,我可以公平地说,每个时间序列都是序列预测的一个例子,但反之不然吗?感谢这篇有趣的文章。
没错,迈克。
嗨,Jason,
我需要您在时间序列分类方面的帮助。我有每小时捕获的患者不同医学参数的测量值。输出标签是患者是否患有急性肾损伤(AKI)。根据前12小时的数据,我们应该找出患者是否有患AKI的风险(12小时后)。我猜这属于分类方法(序列分类)。但是,我只有一个标签(AKI == 0)。那么这应该被视为时间序列中的异常检测还是序列分类呢?由于我有100多名患者的12小时数据(100 * 12个数据点,有多个输入变量),我该如何保留时间因素呢?由于只有一个类别,我该如何进行训练呢?我完全卡住了,对于像我这样的初学者来说,没有合适的例子可以理解。您能否分享您的见解/指导我如何解决这个问题/把我引向适当的资源?
一个想法是,你可以将问题定义为“此事件是否发生在此序列中”。
然后将其视为序列分类,就像活动识别一样
https://machinelearning.org.cn/how-to-develop-rnn-models-for-human-activity-recognition-time-series-classification/
您好,杰森。我要祝贺您写了这篇优秀的文章。它对我帮助很大。您是否做过或考虑过基于序列频率稳定性来预测某个二元序列的下一个元素?
谢谢。
不直接,没有。
正好一年后,我正在阅读您的评论 😉
您是如何关联和陈述这个观点的?您能给我一些启发吗:“每个时间序列都是序列预测的一个例子,但反之不然”
时间序列是观测值的序列:1, 2, 3, 4
并非所有序列都是时间序列。排序可以是时间以外的其他东西。
那么,我们可以说像20个问题游戏这样的问题需要序列预测来解决吗?我们可以使用递归神经网络来实现吗?
系统提出问题,每次回答后,我们预测一个答案,这有助于确定下一个问题。对吗?
谢谢,这正是我所需要的。
我预计问答是一个序列预测问题。
我没有做过例子,所以我无法就 RNN 是否合适给出建议。我建议在 Google 学术搜索上查找。
你好,Jason。
LSTM可以做多步预测吗?我有以下两个例子
1. 输入序列[1,2,3]以预测序列[4,5,6,7,8,9,10,…15];
2. 输入序列[1,2,3]以预测序列[10,11,12]。
如果LSTM可以做到,您能就这类问题开设一堂课吗?
非常感谢。
是的,请看这里
https://machinelearning.org.cn/multi-step-time-series-forecasting-long-short-term-memory-networks-python/
你好 Jason,
感谢您的这篇文章,它非常有用和有趣。
我正在思考以下问题……给定单个输入序列,我们希望预测几个长度可能不同的序列。例如,在选择性剪接现象中可能会遇到这个问题,即给定单个RNA序列,我们可以获得多个蛋白质。
我的问题是
1- 文献中是否研究过“输入:一个序列 -> 输出:几个序列”的问题?
2- LSTM 能解决这类问题吗?
致以最诚挚的感谢
我还没见过这个,但是LSTM可以解决它。考虑一个多输出模型。
https://machinelearning.org.cn/keras-functional-api-deep-learning/
杰森 –
我很喜欢这篇文章,我相信它可能会帮助我解决一个我一直在思考的预测问题。
数据主要是基于文本的时间序列数据,涉及一个我接收到信息的“执行者”对象。除了日期/时间信息外,这些信息也是文本。我知道给定信息序列“A”,下一个信息序列通常是“B”。然而,也可能有其他几个高度可能出现的序列。
我正在寻找一种学习方法,可以识别异常信息报告,以便对其进行审查并随后验证其是真正异常的还是潜在的新的、有效的序列项目。
如果您能提供任何指引,我将不胜感激。
谢谢!
我建议调查时间序列异常检测领域。也许可以从 Google Scholar 开始?
谢谢杰森,我昨天花了很多时间研究你建议的内容。
澄清一下,时间戳仅仅用于对报告进行排序,除此之外意义不大。
您的任何出版物是否涉及将无监督或最小监督方法应用于这类数据?而不是像数字数据那样的?
我已经对数据进行了大量的“处理”(数十亿行),并建立了一个给定先前事件的可能“下一个事件”的参考表。然而,这个解决方案并不像我希望的那样健壮和灵活。
LSTM和GAN似乎对我想做的事情有希望,但我看到的大多数例子似乎与我现有数据不太吻合。
再次感谢您能分享任何见解。
谢谢!
抱歉,目前我没有关于半监督学习的材料,我希望将来能涉及。
我建议测试一系列方法以及一系列不同的问题表述,看看哪种最适合您的具体情况。
我知道这是很久以前的回复,但我现在正在寻找类似的东西。现在有什么更新吗?提前感谢!
嗨,风暴……请详细说明您的具体目标。这将使我们能够更好地指导您。
我有一个包含基于文本的日志条目的数据集,没有异常。我将日志条目编码成数字整数,表示不同的事件。例如
25.09.2024 事件 1
26.09.2024 事件 2
27.09.2024 事件 5
等等。
我正尝试训练一个网络,使其学习所提供数据集中的事件序列,并预测可能即将发生的事件序列。最终,我将使用训练好的网络来检查异常事件的发生。
我没有对数据集中的事件进行one-hot编码,因为有许多不同的可能事件,one-hot编码会导致数据超长,从而导致训练时间很长。我尝试使用一些在线开源训练模型,但它们给出的预测结果是小数,这不应该发生,因为所有事件都是整数。当我实现您的另一页上的LSTM代码时,也发生了同样的情况。
我的数据是否被视为时间序列?或者在这种情况下,我应该如何修改才能进行事件/整数的预测?
您是否有关于我应该寻找什么出版物或建议?非常感谢您的任何见解!
谢谢 Jason!
不客气。
你好 Jason,
感谢您提供如此信息丰富的文章。
但我无法将我一直在研究的预测问题归入您提到的任何类别。
我有一个人按顺序访问一组地方的数据。
假设他想访问 [‘NY’, ‘LA’, ‘DC’, ‘TX’, ‘FL’],那么他将按这个顺序访问:[‘TX’, ‘LA’, ‘NY’,’FL’, ‘DC’]。
我有他之前按顺序访问的历史数据。
[‘TX’, ‘LA’, ‘NY’,’FL’, ‘DC’]
[‘AK’, ‘FL’, ‘NY’] 等等。
因此,对于一个随机的地方列表,我需要预测他将按什么顺序访问这些地方。
如果您能给我一些指点,我将不胜感激。
谢谢
也许这篇文章能帮助你描述你的问题
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
嗨,Jason,
我对机器学习的兴趣在于其应用部分。我来自超大规模集成电路(VLSI)领域。
机器学习领域非常广阔,我不知道从何开始解决我的问题。
下面是我的问题简要描述。
我正在测试的系统基本上会生成事件。我对这些事件的序列感兴趣。
人们可以手动查看这些事件序列并识别它们的有用性。但手动过程非常繁琐,而且可能存在数百万个事件,需要从中寻找有趣的事件。
有趣的事件序列是事先已知的。尽管这些事件之间的间隔可能会有所不同。
您有什么建议我应该从哪里开始尝试吗?
我不是在寻求解决方案,只是寻求指导。
是的,使用LSTM。
从博客中找一个例子作为起点,然后根据你的问题进行调整。
从这里开始
https://machinelearning.org.cn/start-here/#lstm
好的。谢谢,杰森。我会通读一遍,如果需要,再回复。
你好 Jason,
感谢这篇非常有趣的教程,但我想找到一个序列数据集,用于我的预测性维护算法研究。
我最好的建议是为研究目的设计一个具有您所需属性的问题。
谢谢你,杰森。非常有趣的帖子!
只是我一个快速但又令人困惑的问题。假设我以 [4, 5, 6] 作为输入,我想输出
[14, 15, 16] 或 [24, 25, 26] 等等… 当然,我有训练数据集,它以 [1, 2, 3] 作为输入,以 [11, 12, 13],[21, 22, 23] 等作为输出,这意味着我的训练集中存在一对多(这里不是模型类型的名称)关系。我好奇 RNN(或 LSTM)是否能同时识别这些关系。另外,由于我们只需要找到 1 到 11,2 到 12… 似乎如果我改变训练数据集的顺序,例如以 [2, 3, 1] 作为输入,以 [12, 13, 11] 作为输出,模型仍然可以学习相应的模式。所以这里可能违反了“顺序很重要”的原则。我读过很多您有价值的博客并学到了很多东西。但仍然找不到答案。任何回复都将不胜感激!
当然,我的建议是尝试一下,看看结果如何。
该模型可以输出两个长度为 n 的向量或两个长度为 n=3 时间步的序列。尝试这两种方式。
我建议探索多输出模型,每个输出都有一个“子模型”,参见这里
https://machinelearning.org.cn/keras-functional-api-deep-learning/
我渴望听到你的进展。
我有一个图像数据集,表示每天的网格犯罪(频率)。所以我有一系列图像 i1, i2, i3, … in,我想预测或预测 in+1 及以后的图像(犯罪热点或频率)。您认为我应该如何解决这个问题?
这篇帖子可能会帮助您定义问题
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
你好 Jason,
我有一个关于时间序列的问题,外汇方面,有一个名为“双底”的模式,看起来像字母“W”,作为输入序列,这个模式可以采用任意长度(时间上),我应该如何处理这个问题?我可以将这个输入序列转换为固定长度的序列吗?
谢谢
你说的“处理”是什么意思?预测这种模式?
如果是这样,请开发一个包含/不包含该模式的示例数据集,并拟合一个模型来对其进行分类。
嗨,Jason,
抱歉,我没有足够明确。我想对一些时间序列进行分类,但这里作为输入的时间序列模式的长度是必需的
预先知道。然而,此类信息并非总是可用。此外,
不同长度的模式可能在一个
时间序列数据集(例如,外汇“W”模式的长度可能是8或38,我们事先不知道)。
如果输入长度未知,如何将其呈现给机器?
谢谢!
有意思。
你可以通过零填充和掩码输入层来处理不同的长度。我的博客上有很多例子。
尺度不变性可能需要一些实验。也许 LSTM 可以做到。也许需要 CNN 或其他对序列的压缩解释。
预测结果可以排序吗?
或者神经网络会根据预测值以降序给出预测结果?
我不太明白。如果您的模型输出一个序列,为什么需要对其进行排序呢?
我很抱歉!我应该更具体一点。
我的意思是,对于输出不是序列的普通情况,NN是否可以根据预测值以降序给出预测结果?
您可以输出分类问题中每个类别的预测概率,然后对概率进行排序。
这是您的意思吗?
如果是这样,您可以在输出层使用 softmax,并在问题中的每个类别都设置一个神经元。
如果我有5个类别,并按照您的要求操作(在输出层使用softmax,每个类别一个神经元),我得到的每个预测的概率看起来像这样
[[ 1.32520108e-05, 7.61212826e-01, 2.38773897e-01, 1.89434655e-08, 1.21214816e-08],
[ 3.46436082e-07, 1.17851084e-03, 9.88936901e-01, 8.01233668e-03, 1.87186315e-03],……..]
这些值没有任何顺序。
那我该如何将它们排序呢?
对于用于训练模型的独热编码类别值,概率将按类别顺序(例如 1-5)。
嗨,Jason,
我有一个问题,我有标签 ID 的训练数据,我想通过从中学习来提取模式。哪种模型适合在这种数据上训练?我将其视为一个无监督学习问题,在当前场景中,我们使用正则表达式来解决它。
标签 ID 格式如下
例如
400-SG-01002-A600
50-SG-01010-A600/B1
V-0514
STEEL-ETAGE-1-FRMW
给定一组单词,我应该能够根据学习结果找出哪个单词是标签 ID
这个框架将帮助您根据预测建模来定义您的问题
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
嗨,Jason,
感谢您提供的所有资料。
我是这个领域的新手,正在寻求帮助。
我发现的 LSTM 模型总是只处理一个特征,但我想给网络输入更多的类别。
更具体地说,我想将 [FeatureA][FeatureB][FeatureC] 作为网络的输入和输出。
FeatureA 是一个具有 100 种不同可能值的分类。
FeatureB 和 FeatureC 也是分类,但只有 5 个唯一值。
有什么关于如何实现这个的建议或教程吗?
类别是输出,不是输入。
这是一个带有多个输入的 LSTM 示例
https://machinelearning.org.cn/multivariate-time-series-forecasting-lstms-keras/
如果您有分类输入,可以在建模前使用独热编码或整数编码。
对于多类别输出,您可以在 LSTM 之后使用输出上的密集层,带 softmax 和每个输出类别一个神经元,这是一个没有 LSTM 的密集层用于多类别分类的示例
https://machinelearning.org.cn/multi-class-classification-tutorial-keras-deep-learning-library/
你好 Jason,
感谢您的文章。
我有 N 个数据集,每个数据集有 3 个特征和 1 个目标。所有特征和目标都有 X 个时间数据点。我想在 80% 的数据集上训练 LSTM,并在剩余 20% 的数据集上进行测试。
我的问题不完全是预测,而是多序列到序列预测。您能告诉我如何设置我的数据集的输入形状吗?
数据集1 –>
[feature1 –> [0,1,2]
feature2 –> [4,6,8]
feature3 –> [3,5,7]
target –> [1,1,2] ]
谢谢你
这将帮助您塑造数据
https://machinelearning.org.cn/faq/single-faq/how-do-i-prepare-my-data-for-an-lstm
谢谢您。那么,根据这些文章,我将输入数据形状设置为(训练数据集数量,任意特征数组长度,特征数量)是正确的吗?
您有没有处理过这类示例的文章?
再次感谢您分享的所有文章。它们信息量很大。
通常,我无法在不深入参与您的项目的情况下评论“正确性”。
我建议回顾一下如何为 LSTM 准备数据,也许可以回顾一下在其他问题上行之有效的方法,然后尝试一系列不同的问题表述方式,看看哪种最适合您的具体情况。
谢谢你
嗨
您的网站和文章都很棒,我学到了很多解决方案。
我有一个问题:我的数据集是数字,我需要根据前面的数字预测下一个数字,并且只有4个目标tar[54,26,18,32],哪个序列对数据集来说是正确的?
谢谢。
听起来像是一个多对一序列预测问题。
806,046,009,905??????????????
问题到底是什么?
序列预测算法与卷积神经网络算法相同吗?
或者它们有相同的思想
你可以使用 LSTM 或 1D CNN 进行序列预测。
嗨!
我有这个问题
https://ai.stackexchange.com/questions/6741/regression-with-more-than-one-output-neural-network
你认为它可能是哪种序列?
也许您能用一句话概括您的问题吗?
我试图缩短我的问题描述,但因为觉得要说的太多,所以我无法将其浓缩成一句话。希望您不要介意。
有一个系统,研究人员会收到一个分类,可以是 C、B、A 或 A1,其中 C 是最低的,A1 是最高的。
此分类基于研究人员个人资料中拥有的产品数量。
我想根据研究人员目前拥有的产品数量和分类,推荐他们必须完成的产品数量,以提高他们在系统中的分类。
听起来更像一个约束优化问题,而不是一个机器学习问题。
我建议研究一下“运筹学”领域及其约束优化方法。
问题是推荐必须个性化,根据研究员的个人资料。因为产品有多个类别,有些是强制性的才能升级,但除了强制性产品,你还可以在多个产品中选择。
例如,如果一名调查员是律师,系统不太可能建议他从事医学相关产品,或者,如果他的个人资料中有该类型活动,则可能会建议。
这些听起来像是优化算法中的约束,比如装箱问题或背包问题。它听起来不像是一个推荐系统,但我可能是错的。
要为此构建一个推荐系统,您需要为研究人员的产品或活动评分,以衡量它们对研究人员的重要性。然后,您可以构建一个基于用户或基于项目的推荐系统。希望有所帮助。
您需要为研究人员的产品或活动评分,以衡量它们对研究人员的重要性。然后,您可以构建一个基于用户或基于项目的推荐系统。希望有所帮助。
你好杰森,我有一个多对一序列预测问题。我希望你能告诉我如何在马萨诸塞州乐透彩票基诺游戏中正确猜中一个数字
下注20美元买一个点,可赢回50美元
我知道这是一个带种子和算法的随机数生成器
我知道你必须在忙碌的时候玩
这是我在这里回答的一个常见问题
https://machinelearning.org.cn/faq/single-faq/can-i-use-machine-learning-to-predict-the-lottery
嗨,Jason,
我有一个问题,在我看来,它不符合上述任何一种情况。
给定一组不同的条目和一个序列作为输出,是否有可能预测不同条目集会给出什么序列?
例如:
(a,b,c,d) 总是给出 [d,a,b,c]
(a,c,b,d) 也总是给出 [d,a,b,c]
等等
假设它用所有可能的字母进行训练,我想知道例如 (a,c,d,e) 会给出什么。
我的一种方法是将其转换为序列到序列匹配问题,通过将输入的所有排列作为序列输入,并将其与输出匹配,但在这种情况下,我可能根本不需要神经网络。
您对此有什么见解可以提供吗?
也许这个框架能帮助你理解你的问题是否可以被框定为监督学习问题
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
我可以使用它来存储50多年的数据,并用它来预测第十年可能发生的事情吗?如果可以,我该怎么做?
当然,你可以尝试一下。
拟合模型后,您可以调用 model.predict() 进行样本外预测。
我的博客上有数十个例子,可以尝试搜索。
嗨,Jason,
我很好奇序列到序列问题和序列预测问题之间是否存在真正的区别(假设序列的长度/维度是已知且固定的)。
如果没有区别,那么如何决定是采用 GAN 还是普通神经网络模型?
谢谢,
我不明白,你能举个例子吗?
我们可以将此应用于根据他人的历史数据预测临床事件吗?我想看看某些肌肉骨骼损伤是否有其序列。
也许可以。
感谢您提供本教程,杰森。
我有一个问题,我们有带有不同参数的传感器数据,我们想预测一氧化碳报警。根据变量的不同值,我们必须预测下一次报警何时发生。数据是时间戳数据。请指导我如何处理此类业务问题。
除此之外,我已经向您发送了 LinkedIn 邀请,请接受。
提前感谢。
杰迪普·内吉
也许这个过程会有所帮助
https://machinelearning.org.cn/how-to-develop-a-skilful-time-series-forecasting-model/
嗨,Jason,
我正在尝试预测分类数据,示例为6.7。每行都有一些分类数据,如下所示:
[ABC,DEF,GHI, XXX]
[GHI,BTY,,AAA,PPP]
[DEF,XYZ,BBB,GHI]
我遵循了以下步骤:
1) 对所有值进行标签编码
2) 循环所有行,对其进行独热编码并训练 LSTM
3) 预测
但当我进行评估时,我发现所有测试数据都得到了相同的预测值。
我严格按照您的《使用 Python 的 LSTM》电子书中的示例 6.7 中的代码操作。此外,当我尝试编译 6.7 中的代码时,我收到了错误。
也许问题很有挑战性,或者数据不够,或者模型需要调整?
教程中的代码您遇到了什么错误?
你好,
好文章,杰森。如果我想在印度专门研究股票市场预测的序列预测领域攻读博士学位,您的哪个系列最适合?
没有。
嗨,jason
您能解释一下哪个模型适合股票市场预测以及为什么吗?
这是我在这里回答的一个常见问题
https://machinelearning.org.cn/faq/single-faq/can-you-help-me-with-machine-learning-for-finance-or-the-stock-market
尊敬的先生,
我需要一个时间序列预测的 LSTM 训练和测试算法,以便深入研究。这方面有什么书籍或教程吗?
谢谢
阿扎德
是的,您可以从这里开始。
https://machinelearning.org.cn/start-here/#deep_learning_time_series
嗨,Jason,
我很难将这种方法应用于具有多个时间序列的分类问题。例如,客户流失或员工流失的数据集,其中每个客户/员工都可以有自己的时间序列。LSTM NN 是对这种问题建模的最佳方式,还是使用捕获时变信息的特征的分类算法更好?
谢谢!
罗宁
也许尝试几种不同的问题表述,这可能会给你一些想法
https://machinelearning.org.cn/faq/single-faq/how-to-develop-forecast-models-for-multiple-sites
嗨,罗宁和杰森,我也有同样的问题,我需要预测多个客户的序列,我有大约2万个或更多的客户。现在我无法为每个客户开发单独的模型,也无法对客户进行聚类,因为每个客户都有自己的序列模式。你们能帮我一下吗?
那么也许可以尝试训练一个跨客户学习的模型。
非常感谢您的文章。我的问题是提取表示关系两个部分的词序列。因此,输入是一个带有两个词块的注释句子,它们之间相互关联。输出是表示关系的第一部分和第二部分的词序列。您能建议这是哪种序列类型,以及应该使用哪种模型吗?
谢谢
我不确定,你能不能举个简单的例子?
例如,以下句子包含两个与条件关系相关的部分。
你的老师说[如果你努力学习],[你就会通过考试],但是,我不认为你有足够的时间。
这些部分用方括号括起来(用于说明)。模型需要提取这两个块。
嗯,我想你得为此做些研究。
贸然地说,最简单的方法是让一个模型输出带有标记的块,但我想还有更有效的方法。
嗨,Jason,
感谢您所有精彩的博客,
如果您能为我澄清以下问题,我将不胜感激。
假设我收集了足球比赛的一分钟数据样本,其中包含20个特征。我有超过1500场比赛来训练和测试模型。
我尝试实现 LSTM 模型进行多特征预测。我使用滞后5对模型进行了训练/测试,得分达到91%。
我的问题是,如果只给出第一分钟的值,是否可以对剩余的90分钟比赛进行预测。
因此,我的输入形状将是 (1,1,20),预期输出形状将是 (89,6)。
我非常感谢任何建议。
谢谢你,
阿贝
那将是一个具有挑战性的预测问题!
尽管如此,还是试一试吧。
你好杰森 –
感谢您无私奉献这些珍宝(文章)。
我主要想预测患者级别的事件何时会在医院发生。例如,我读到过一篇关于构建算法的文章,该算法可以在患者败血症发作前近24小时预测其发作。哪种算法更适合做这个?这属于哪种序列问题(听起来像是基于时间戳的 1,2,3,4,5 –> 6)?我可以致力于预测谁有风险,但“何时”他们可能发生该事件才是真正的问题。
谢谢,
以利亚
听起来是个很棒的问题。
我建议测试一系列算法来解决这个问题,例如从 MLP 开始,然后探索 CNN 和 LSTM。这个框架将帮助您入门。
https://machinelearning.org.cn/start-here/#deep_learning_time_series
你好:我有一个问题。我有一些不同长度的时间序列。我想使用 LSTM 自动编码器(或任何其他深度学习方法)从时间序列中提取特征。我该怎么做呢?我期待您的回复。非常感谢。
也许这种方法可以作为起点
https://machinelearning.org.cn/lstm-autoencoders/
嗨,Jason,
我正在开发一个模型,根据数万用户的点击序列数据预测用户点击的下一个页面。序列的长度是变化的。哪种模型最适合预测下一个点击页面?
也许可以探索一个 LSTM 模型
https://machinelearning.org.cn/start-here/#lstm
嗨,Jason,
我喜欢阅读这篇文章!
“序列生成”和“序列到序列预测”之间有什么区别?
如果“序列生成”中的输入也是一个序列,那么它看起来与“序列到序列预测”非常相似,对吗?
谢谢!
好问题。
通常,序列生成涉及给模型一个种子,然后得到一个更长的序列,例如,输入几个词,输出几段,就像一个简单的语言模型。
Seq2Seq 通常指将输入序列翻译成输出序列,使它们直接相关,例如德语到英语或文本到摘要等。
嗨,Jason,
感谢本教程!我有一个关于产品序列的问题。
假设我有一个客户的数据,以及他去年购买的所有产品。
例如:cust_id:x1
订单历史:order_id_1:[产品1,产品2,产品3] order_id_2:[产品1,产品2,产品5]
预测客户可能以概率购买的下一组产品的最佳方法是什么?
谢谢
我建议测试一系列问题框架,以发现最适合您的特定数据集的方法。
也许您可以按客户建模?
也许您可以按客户群建模?
也许您可以跨所有客户建模?
也许您可以按产品类别建模?
…
让我知道您的进展。
嗨,Jason,
感谢您的回复!我打算首先尝试按客户建模,但我不知道要使用什么模型?我是新手,抱歉问了愚蠢的问题!
谢谢
我建议测试一系列模型,以发现最适合您的数据集的模型。
这可能有帮助
https://machinelearning.org.cn/faq/single-faq/what-algorithm-config-should-i-use
嗨,Jason,
我喜欢这篇文章!
如何使用过去的10次考试来预测即将到来的考试问题?例如使用什么算法或机器学习来查找序列。谢谢
嗯。这是一个非常困难的问题。
也许你可以把它建模成一个语言生成问题——为了好玩?
好的,谢谢您!我该怎么做呢?我是一个新手。请分享任何文章、阅读材料、书籍、YouTube视频或您自己的建议。非常感谢您的帮助 🙂
这将需要大量的测试开发——例如,没有正确答案,您必须发现什么有效。我不建议将其作为初学者的项目。
也许从这里开始一些更简单的东西
https://machinelearning.org.cn/start-here/#deeplearning
谢谢你,Jason 🙂
嗨,Jason,
感谢您的博客文章。我有一些疑问。
假设我有一个输入数据集
2018年第一季度 – 类别类1、2、3
2018年第二季度 – 类别类1、2、3、5
2018年第三季度 – 类别类3、4
2018年第四季度 – 类别类1、3、4、5
我希望预测2019年第一季度,类别类为1、2、4(例如)
* 总共有类别类:1、2、3、4、5
从我的角度来看,这看起来像是序列分类和序列预测的组合。仅使用历史数据作为输入来预测下一个分类序列作为输出。
我能知道我应该如何处理这个问题吗?因为分类分类/序列分类会要求我有分类的输入数据集(在这种情况下,不会是预测)。
从这篇博客中,我还注意到我不应该打乱我的数据集?
谢谢
这可能是一个多标签(而非多类)时间序列分类问题,其中给定时间间隔需要预测零个或多个标签/类别。
一个好的起点可能是这里
https://machinelearning.org.cn/start-here/#deep_learning_time_series
嗨,Jason,
你的教程太棒了。但仍然很难跟上。
你能分享一些天气预报的玩具例子吗?使用几个特征?
是的,请看这里
https://machinelearning.org.cn/multivariate-time-series-forecasting-lstms-keras/
为什么你问天气预报时会回答,而问金融预报时却避而不谈?
我避免就金融问题提供建议,原因如下
https://machinelearning.org.cn/faq/single-faq/can-you-help-me-with-machine-learning-for-finance-or-the-stock-market
你好,
有没有办法从一串数字中生成一个种子?
例如
我有这串数字
03 08 11 17 19 26 28 31 36 37
我如何从这个列表中获取种子值?
提前感谢
此致
如果序列是随机或伪随机的,那么不,它不是一个可学习的函数。
嗨,Jason,
感谢这篇很棒的文章,您关于LSTM的其他帖子也很有帮助!
以下是我难以理解的“序列”定义。
我拥有的数据由多个时间序列组成,假设我有200个空间时间序列的“块”。在每个块中,我都有每个时间步(比如每分钟)的对象位置,而每个块的记录长度是2小时。对于相同的时间步,我有一些影响对象下一个位置的因素,例如风速。
时间“块”本身并不能创建一个完整的时间序列,一个块可能是2016年5月28日记录的2小时,另一个块可能是2019年6月6日记录的2小时,等等。
从某种意义上说,这个问题可以被描述为您在本文中提到的序列生成问题,我可以输入与我想要预测的位置序列相同长度的风速序列,添加给出模型初始起点的常数,并“翻译”或“预测”位置序列。
我确实想知道这个模型是否捕获了块内部的特征,因为对象的下一个位置取决于它之前(至少)一个时间步的位置,因此在这样的时间序列块中,它更像一个序列预测问题。尽管这不是我最终感兴趣的,因为我希望生成一个完整的运动序列,而不是在给定位置序列的一部分的情况下预测下一个运动步骤。您认为序列生成LSTM可以捕获这种时间步的“内部”依赖关系吗?
提前非常感谢!
听起来是个很棒的问题!
我鼓励您探索问题的不同框架。例如,按位置、按位置-时间、跨位置/时间等。看看什么有效。
从输入和输出的角度思考问题。这可能也会给您一些想法
https://machinelearning.org.cn/faq/single-faq/how-to-develop-forecast-models-for-multiple-sites
告诉我进展如何。
Jason博士您好。如果我有大约20个序列/轨迹。我可以用其中5个序列/轨迹训练我的网络,然后训练网络预测剩下的15个序列/轨迹吗?
如果可以,您是否有任何示例、教程或资源可以让我遵循?我可以通过回溯几步并向前预测一步来预测一个序列/轨迹内的内容。但我的目标是预测完整的轨迹。谢谢。
当然可以。
是的,这可能是一个很好的起点
https://machinelearning.org.cn/start-here/#deep_learning_time_series
你好,
在训练和预测期间,输入变量的数量是否必须相等?我正在尝试教一个LSTM网络一个算法,这样如果我给一个输入(第一个状态,t=0),它将预测最终状态(t=500)。我有从t=0到t=500的整个序列来训练它。我尝试使用初始的499步作为训练输入,第500步作为输出训练网络。但这意味着在预测阶段我也必须输入499步作为输入,这完全违背了我通过只给出初始时间步输入来获得最终步骤的目标。
然后我尝试训练LSTM网络,只给出第一个和最后一个时间步作为输入和输出。这导致了过拟合。我尝试了从简单到复杂的网络架构,不同的激活函数,但都无济于事。
您能提供一个解决方案吗?有没有办法可以在所有时间步上训练网络,但对于预测只需要输入一个初始步骤。
(算法是Ising模型上的Metropolis算法)
提前感谢……
我建议根据您打算如何使用模型来构建预测问题。
例如,如果您只想根据过去7天的数据进行预测,那么就构建模型,使其每个样本输入7天的数据,等等。
你好 Jason,
在序列分类问题中,我不想在输入整个序列 [1,2,3,4,5] 时预测类别 [“好”或“坏”],我只想提供序列的一部分作为输入,例如 [1,2,3],网络应该预测它属于 [“好”或“坏”]。
那么在我的情况下,我该如何解决这个问题呢?
您能给我一些链接或论文吗?
注意:我正在使用LSTM来解决这个问题。
也许可以改编这篇文章中的例子
https://machinelearning.org.cn/sequence-classification-lstm-recurrent-neural-networks-python-keras/
我可以在我的 LSTM 层之后使用你提到的 timeDistributed 层吗?
‘https://machinelearning.org.cn/timedistributed-layer-for-long-short-term-memory-networks-in-python/’
也许吧。但不直接。
你好 Jason,
如果我遵循您建议的链接 (https://machinelearning.org.cn/sequence-classification-lstm-recurrent-neural-networks-python-keras/),如果只给出部分单词作为训练模型的输入,我能否预测类别 ['好评','差评']?
我的工作概述
我的数据包含车辆 CAN 信号、动态数据。
X_train.shape = (271,100,4)
# 271 个片段,每个片段的形状为 100*4
# 100*4 中的每一行对应一个时间步 (t0, t1, t2, t3,.....t99)
Y_train.shape = (195,)
# 271 个片段中的每个片段属于 0 或 1 (2 个类别)
# [0,0,1,0,1,0,0,0,0,1,………………………………………………..1,0]
X_test.shape = (31,100,4) # 31 个形状为 100*4 的片段
Y_test.shape = (31,)
我的要求
训练完成后,如果我只给出片段的一部分作为输入,例如,我将测试数据发送为 (31,60,4) 或 (31,70,4) 或 (31,80,4) (31,90,4),我的模型应该预测每个片段属于哪个类别。
如果您能给我一些进一步的提示,我将不胜感激
你必须按照你打算使用模型的方式来训练模型。
这意味着如果你想从部分输入中进行预测,那么你必须以这种方式训练你的模型。
你好 Jason,在为我的问题选择预测模型类型时,我完全迷失了。是自回归模型、条件随机场、隐马尔可夫模型还是其他?您能给我一些建议吗?
78, 18, 51, 89, 19, 43, 62, 28, 94, 49
假设我每天得到10个数据,上面列出了一个例子。它们是由两个设备生成的数字,分别是设备A和设备B。每个设备都能生成0到9的数字。
数据中的第一个数字由设备A生成,而第二个数字由设备B生成。例如,对于第一个数据“78”,“7”由设备A生成,“8”由设备B生成。类似地,对于最后一个数据“49”,“4”由设备A生成,“9”由设备B生成。
我希望能够预测最后一个“49”之后的下一个结果变量。
我有30天总共300条历史数据。
从我对300条数据的初步调查来看,每个设备都倾向于产生重复序列。例如,设备A会重复序列“6-2-9-4”(如最后4条数据)。这意味着该序列在设备A的300条历史数据中出现了两次。再举一个例子,设备B中的序列“8-1-9-9”(第2到第5条数据)也出现了两次。每个设备至少产生三个重复序列。
我希望预测最后一个“49”之后的下一个结果变量。哪种模型更合适?
提前感谢您!
是的,请遵循此过程
https://machinelearning.org.cn/how-to-develop-a-skilful-time-series-forecasting-model/
感谢您的回复,Jason。我想知道您为什么认为这可能是一个时间序列问题?
很抱歉我的误解,Jason。数据是在每周一、周四和周五收集的。每天10个数据。我仍然可以将其建模为时间序列问题吗?
也许这篇文章能帮助您确定时间序列预测是否适合您的数据集
https://machinelearning.org.cn/time-series-forecasting/
我不知道,我得到的感觉是观测值是按时间排序的。如果不对,我很抱歉。
再次感谢,Jason!我认为这是一个时间序列。
很棒。
我读过你很多教程和博客,它们对我帮助很大。你是一个传奇。
谢谢,很高兴它们对你有用!
嗨,Jason,
感谢您所有关于时间序列及其生成的教程。
我刚刚遇到了一个新问题,我不确定机器学习是否是正确的方法,或者它是否完全可能。您能就这个项目给我一些意见吗?
它涉及多个振动电机,它们同时运行并播放5种不同的模式。它们旨在刺激某种情感(我的标签)。
是否可能,在给定情感标签的情况下,为每个电机生成具有相似属性的新振动模式?
我曾考虑将我的5个振动序列解释为矩阵,并在5xn矩阵上执行类似CNN的操作,其中n是每个序列中的振动次数,或者使用您在某些文章中介绍的某种RNN。
如果您有任何想法,我将不胜感激。
祝好
肯尼
是的。我相信您正在寻找时间序列数据的生成模型。
我没有关于这个主题的教程,但也许在谷歌或 scholar.google.com 上搜索会给您指明正确的方向。
谢谢!我会去看看的。
嗨,Jason,
有你这样的人是像我这样机器学习求知者的福气,谢谢!
我刚遇到一个问题,我正在努力如何将其表述和定义为机器学习问题。
数据集包含从供应商收集的血液单位,在经历一系列状态(每个状态在特定时间和地点发生)后,它们的结果状态是“输血”或“丢弃”。
我正在寻找的是丢弃的模式(或者有助于我预测某个血液单位被丢弃可能性的东西)。
如果需要更多澄清,请告诉我。
我将不胜感激您的建议/推荐材料。
此致,
贾比尔
很好的问题,Jaber,我相信这个框架可能会有所帮助
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
你好 Jason,
首先,我非常感谢您的所有机器学习博客和书籍。它们对像我这样的新手非常有帮助。
我目前正在使用太阳辐照度每小时时间序列。我有几年的每小时数据,然后将其聚类为代表性/典型日(例如10天)。一年中的每一天都被分配给一个这样的典型日数字/索引。因此,一年中会得到一个包含365个项的序列,数字范围从1到10。我有多年的这个序列。我需要一个模型来预测这个序列。我尝试使用SARIMA模型,但我不确定如何将其用于离散数字。
请帮助我找到一个能够适应季节性的时间序列分类或分类模型。
此致,
阿努杰。
也许可以尝试这里的一些模型
https://machinelearning.org.cn/start-here/#deep_learning_time_series
嗨,Jason,
非常感谢您的奉献,您的无私对我们这些初学者来说是一个巨大的帮助。
如果我有一组带有温度变化的图片(大约27,000帧),这些图片显示了温度变化的趋势。我能否从这些之前的27000帧图片中预测接下来的200帧温度变化趋势,前提是我的训练数据集中没有后续温度变化的趋势信息,并且只有前27,000帧在训练集中。
祝好,
马洛塔
或许可以试试看?
嗨,Jason,
感谢您的所有教程和博客文章!
我正在为一个高中生教育问题工作。在每一年 (n) 中,学生 (i) 参加了多门课程 (j),我记录了他/她每门课程的成绩 (A)。然后,当学生完成高中学业后,他们都会提交成绩和一份“个人陈述”信 (B) 给大学。然后大学对学生进行排名 (C) 并决定是否接受或拒绝 (D) 他们。因此,对于每个学生,我希望根据他/她在不同年份的每门课程的成绩来预测他/她的排名以及是否被大学录取或拒绝。所以我的输入是 A(i,j,n) 和 B(i),而我的输出是 C(i) 和 D(i)。
现在我想建立一个机器学习模型来根据 X(i,j,n) 和 B(i) 输入预测 C(i) 和 D(i)。据我理解,我的数据集是序列数据,我需要使用“序列预测”模型,这正确吗?如果是,最好的方法是什么,我应该使用 RNN 吗?
再次感谢您的帮助。
拉吉特
听起来像一个有趣的项目。
也许可以尝试对其进行建模,看看框架是否有效?
你好Jason。请问我想问
是否可以使用XGBoost进行序列标注或标记
如果可以,请给我一个可以阅读更多信息的链接。
我搜了很多,但还没找到我想要的,提前谢谢
也许可以。
抱歉,我没有这方面的例子。
嗨,JASON
我有一些文本数据。
我需要预测每句话的平均趣味性(估计趣味性),范围从0到3。
你能告诉我序列方法如何帮助我吗
首先收集或准备一个包含文本和趣味性评分的数据集。
谢谢你。
我已经有了一个标记数据集。现在我该如何开始处理它。
您可以按照这里的教程学习如何使用神经网络对序列预测问题进行建模
https://machinelearning.org.cn/start-here/#deep_learning_time_series
嗨 Jason,感谢您的精彩教程!
您认为像 GPT-2 这样具有长记忆的现代 NLP Transformer 能否在非语言序列预测任务(如病史或用户行为建模)中胜过 LSTM?我努力搜索过,但没有找到这种方法的任何例子。
好问题——很可能。
也许在你的数据集上试试看?
谢谢您的帮助。
不客气。
你好 Jason,
我在谷歌上搜索我的问题时找到了这篇文章。
到目前为止,我还是数据科学领域的新手。
问题/需求声明
我们有一台持续运行的发电机。建议的维护时间是运行1000小时后。我们不想依赖其文档化的时间表。有时机器可能需要提前维护。
因此,我们希望设计一种预测机制,通过该机制,我们可以预先计划维护窗口,并及时通知团队机器的停机时间。
我们不断接收其传感器数据并存储所有这些信息。我不确定这是否是序列预测问题?是否与LSTM有关?如果是,那么如何相关?如果不是,那么我们应该考虑哪种算法或技术来解决这个问题?
您的指导和输入将非常有帮助。
也许可以将其建模为时间序列分类任务。这里的教程将帮助您入门
https://machinelearning.org.cn/start-here/#deep_learning_time_series
好的,谢谢。我会仔细阅读,如果遇到任何问题会通知您。
嗨,Jason。我有一个关于如何解决序列比较任务的问题。假设我正在尝试预测两名网球运动员中的获胜者,我的输入是他们各自职业生涯的两个序列(所有以前的比赛和相关统计数据)。我将如何使用 LSTM 对此进行建模?我的感觉是,我不想使用一个大的序列模型,因为相邻时间步之间没有关系,所以我想我想要两个不同的 LSTM 以某种方式合并?
此致,
路易斯
评分系统可能比LSTM更合适。
尽管如此,一系列分数或先前的结果可能是一个开始,例如,用于胜/负的时间序列分类任务。
感谢您的回复。有趣的想法。也许是编码器-解码器设置,然后训练两个编码玩家的胜者?
我正在尝试使用来自两个输入序列的共享 LSTM 层和 softmax 分类层来训练先前结果的序列,但它很难学习。可能是训练数据不足。
解决问题的方法可能有很多种。我鼓励您测试多种方法,看看哪种方法有效/合理。
嗨,Jason,
我正在研究一个问题,其中输入是一个序列,例如加速度与时间信号。但是输出是另一个量(不是加速度)。您能告诉我除了RNN之外,还有哪些传统的机器学习方法利用输入数据的序列信息来预测不同的输出量吗?我认为这类问题不属于序列预测、序列分类、序列生成或序列到序列预测。谢谢,
是的,这里的教程将提供一个起点
https://machinelearning.org.cn/start-here/#deep_learning_time_series
你好,Jason
我很高兴读到这篇文章。
我有一个简短的问题,
“序列生成”和“序列到序列”之间有什么区别?
对我来说,
它们看起来是一样的,因为它们都生成序列。
你能告诉我它们之间的区别吗?
谢谢你
也许seq2seq假设有序列输入和输出,而序列生成不对起因做出假设。
你好,Jason。
感谢这篇简洁的文章。我喜欢您对序列建模任务的分类方式,这使得可视化实际用例变得容易。
序列预测任务是否可以实现在每个时间步将特征作为输入并再次输出特征?我提到的特征与通常用于分类/回归任务的前馈神经网络的特征相同。据我所知,每个示例在序列建模任务中都使用ID作为输入和输出。这是唯一的方法吗?
谢谢你。
我不确定我是否理解您的问题。
无需传入ID,它们不具有预测性(很可能)。也许这会有所帮助
https://machinelearning.org.cn/how-to-connect-model-input-data-with-predictions-for-machine-learning/
你好,
感谢您的本教程。
我有一个包含100人步态参数(步长、步幅等)的数据集,这些参数是在不同时间(每6个月)测量3次的。现在我必须使用这个数据集训练我的模型,并根据任何新人的数据预测该人是否患有疾病。考虑到时间因素,我如何将所有这3个参数数据纳入我的模型进行训练?我查阅了时间序列预测,但看起来数据集应该依赖于连续的时间实例。这似乎也不是序列预测问题。我该如何处理这个问题?
也许可以尝试使用不同的数据框架来原型化一些不同的模型,并发现哪些效果好。
Jason,你能帮我从一组序列中预测一个新的序列吗
例子
a1 a2 a5
a1 a2 a4
输出序列 a1 a2,即包含特定变量在输出中最大出现次数
这可能是一个很好的起点
https://machinelearning.org.cn/start-here/#deep_learning_time_series
嗨,Jason,
感谢这篇精彩的文章!
我有一份数据显示不同时间的序列,目标变量是预测客户是否会购买产品(二元)
例如:
客户ID 事件1 时间1 事件2 时间2 事件3 时间3 …… 事件7 时间7 目标
123 a 15 b 55 d 12 a 23 0
245 b 25 a 65 e 25 d 15 1
在我这里序列字母是重复的,就像客户123的序列是abdecg,然后又出现了‘a’
类似地,对于每个客户,序列中的事件可能会重复,例如abcaabdf、bdbdcf等
我该如何处理这些数据?RNN的输入数据格式应该是什么样的?
提前感谢!
也许可以尝试探索每个客户的模型,跨客户群的模型,以及跨所有客户的模型,并比较结果。
嗨,Jason,
谢谢您的回复。
您能详细说明这种情况下输入数据的结构会是什么样子吗?矩阵形式?或者它作为模型的输入会是什么样子?
另外,在比较跨客户的模型时。应该有多少个模型,就像 #客户 一样多吗?
这可以帮助您准备输入
https://machinelearning.org.cn/faq/single-faq/what-is-the-difference-between-samples-timesteps-and-features-for-lstm-input
您可能需要围绕模型的数量/类型进行实验,以了解什么有效/有意义。
感谢这篇文章。很有用!
谢谢你。
不客气。
嗨,Jason,
所以,我有一个数据框,每一行都代表计算机上与更高级别的业务流程活动相关的某些低级别用户活动。高级别的业务流程活动由这些低级别活动的序列组成,每个低级别活动都由每一行表示。数据框的列如下所示:
| 业务流程活动 | 案例 | 应用程序 | 用户活动 | 用户名 | 启动时间 | 发件人邮箱 | 发件人姓名 | 收件人邮箱 | 附件文件名 | 文档正文 |
这些行包含与业务流程活动相关的低级别活动,每个低级别活动都是由案例标识的序列的一部分。
现在,我希望将每一行转换为用于训练的特征向量,但行的每一列都描述了不同类型的数据。有些是数值,有些是文本数据,有些列在某些行中是空的。我该如何将这些转换为用于训练的向量?
这个框架将会有帮助
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
如果存在观测的时间序列,这也会有所帮助
https://machinelearning.org.cn/time-series-forecasting-supervised-learning/
你好Jason,多么棒的材料,我学到了很多,谢谢。
我的问题是,我有一个数据集只包含一列,其中包含从0-99的数字,序列未知,所以我想训练模型,然后通过给出数据集中的任何值来获得预测,我们的模型预测下一个值?
因为很多值也重复,所以请给我一些建议。谢谢您的预期。
感谢您的期待。
谢谢。
也许可以从像 SARIMA 这样的线性模型开始
https://machinelearning.org.cn/how-to-grid-search-sarima-model-hyperparameters-for-time-series-forecasting-in-python/
感谢Jason您的所有精彩教程。我一直在尝试处理一个用例,其中我在IT操作中有一系列事件。在许多情况下,一个事件会发生,通常会有一些看起来完全不同的事件发生。这种情况每天重复数千次事件。
我正在寻求您的建议,我如何识别所有这些不同情况下的不明显情况。
也许可以从思考您想要预测什么开始。例如,一个事件、一个时间间隔内的事件数量、一个时间间隔内是否发生了事件等。
嗨,Jason,非常感谢您的所有工作。您多次以非常直观的方式帮助我理解非常高级的概念。
我目前有一个问题,希望您能帮助解决。
我正在编写一个数据集,该数据集包含7个特征维度(5个个性类型维度、结果和连续答案),并将其与3个可能类别的输出进行比较。每个类别都是互斥的,所以我目前开发了一个多类别分类模型。
我的问题是,我想考虑个性类型如何影响连续答案。也就是说,根据个性类型,某人可能比其他人更频繁地选择一个类别,我想确保模型考虑到这种序列分类。但是,我不确定我目前对连续答案的编码方式是否能捕获这一点(每次记录连续响应时,数字增加1)
您能解释一下,或者给我指出一些文献,说明如何以最适当的方式进行这种计算,以实现目标吗?
再次感谢您的所有工作。
不客气。
我建议您遵循此流程来完成您的项目
https://machinelearning.org.cn/start-here/#process
嗨,Jason,
感谢您的 informative 文章。
我正在尝试进行序列预测,以预测用户在网页软件中浏览时的“下一次点击”,基于历史会话和其他元数据,例如用户类型、年龄等。
我不太清楚如何准备数据,因为历史中的每个会话长度都不同?与股票预测(一个长长的数值列表)不同,在建模用户会话时,每个会话都有开始和结束,我不太清楚如何建模它们?
另外,除了点击之外,我如何添加“元数据”?
谢谢!!
不客气。
每个项目/页面可能是一个类别,您可以使用序数编码、独热编码或嵌入来表示它。
您可以为分类数据和另一个元数据设置一个输入到模型。
嗨,Jason。
我有90个数组序列作为输入,想要预测91个数组作为输出,如果能帮助我,请告诉我?
也许可以从这里的线性模型开始
https://machinelearning.org.cn/start-here/#timeseries
感谢Jason提供的宝贵信息。我有一个问题
如果我们过去有一个对象的不同状态(包含不同的属性,其中一些是静态的,另一些是动态的),并且我们想预测对象的未来状态。我理解这是一个序列生成任务。那么,我们可以将静态属性也包含在输入中,还是以不同的方式添加它们更好?
不客气。
是的,您可以有一个模型,其中一个输入用于序列,另一个输入用于静态数据,这称为多输入模型。
您必须使用函数式API,这将帮助您入门
https://machinelearning.org.cn/keras-functional-api-deep-learning/
嗨,Jason,
感谢这些信息丰富的文章。我有一个问题
假设我有一个序列 [1,2,3,4,2,5,3,4],它与3个分类特征相关。我想以这3个分类特征作为输入来预测未来的序列。(基本上是序列分类的反向操作)
您能推荐一下工作流程吗?
非常感谢。
我认为那不足以构成数据,例如,从分类输入生成序列。
嗨,Jason,
我需要你的帮助。我正在使用LSTM自编码器和异常检测来训练我的模型。我有不同的数据测量。我们有一些标签,例如有效V,无效我们分类了一些其他标签G,H。我们希望训练模型,当模型无效时,它必须显示异常检测。我不知道我是否正确表达了我的问题。此外,我的数据集是JSON文件的集合。我不知道如何在Python代码中使用JSON文件。我没有找到任何示例版本。你能帮我吗?
我建议您首先将数据加载到 numpy 数组中。抱歉,我没有加载此类数据的示例。
你好 Jason,
非常感谢您的精彩教程。
我目前正在尝试开发一个模型,以预测电力市场的每小时出价序列。我正在使用历史出价,包括(电量,价格)。一天中的每个小时都有许多出价(假设每小时1500个出价)。我的输入将是每种发电技术(7个不同的值)的装机容量。问题是我刚接触神经网络,我正在努力学习如何开发这样的模型。如果您能分享一些关于我如何完成这项工作或我可以用于类似问题的任何参考的见解,我将非常感激。是否可以直接预测出价,还是我必须先将其分解为数量和价格?
非常感谢您的时间和帮助。
不客气。
这可能是一个很好的起点
https://machinelearning.org.cn/start-here/#deep_learning_time_series
嗨,Jason,
感谢您的文章,它们总是信息量大且有用!
我想预测,给定一个真假序列,下一个是真还是假。当然,如果我能预测更长的序列会更好,因为如果那样准确,我就能找到我正在寻找的证据。简单来说,我想检查一个热门在线游戏的匹配机制是否在操纵比赛,让你很有可能获得接近50%的胜率。如果存在某种操纵,那么应该可以创建一些东西,根据某人过去x场比赛的结果,猜测他是否可能输掉下一场比赛,而如果不存在操纵,那么就不可能创建这样的东西,特别是如果数据集包含来自许多不同玩家(他们不一起玩)的数据。因此,训练数据将只是y个玩家过去x场比赛的输赢序列。我想问您的是:多少数据才是最佳的,才能获得不错的结果(例如,100个玩家过去100场比赛的数据),以及哪个库/框架/模型最适合这个特定情况。
提前感谢您的时间
这很难说,并且确实取决于序列的性质。我总是可以像这样创建一个:对于某个大N,总是X[t+N]=X[t],并且X[t+1]是随机的,独立于X[t]所有其他情况。那么无论您为样本设置什么,我总是可以使用更大的N使您的模型无用。
嗨,Jason,
我正在做一个项目,对于一个特定角色(当前角色),我想根据当前角色、区域、技术技能、平均经验来预测未来三个角色(按顺序)。您能告诉我这个问题是基于您文章中提到的哪种序列预测方法吗?另外,我该如何处理这个问题?我可以使用哪些方法来完成这项工作?
这接近序列预测。取决于您的序列如何呈现,可以使用不同的模型来完成。这是一个例子:https://machinelearning.org.cn/how-to-develop-lstm-models-for-time-series-forecasting/
嘿,我思考这个问题很久了,也尝试了一些幼稚的方法,但都没有奏效,有没有可能训练一个神经网络模型将所有奇数转换为最接近的偶数,然后得到相同的数据回来(有点像可逆神经网络),我认为RNN绝对是接近所需模型的关键。
从数学上讲,这听起来不可能得到相同的数据。但是你尝试为此建立一个模型了吗?
是的,我做到了,我为此使用了 RNN 模型,但它没有完全正确,犯了一些错误,大约95%的数据是正确的,所以我认为这是可行的。
Stack Overflow 社区的一些建议是使用自编码器
你好,
如果我们想预测序列中下一个数字出现的概率,我们是否应该使用马尔可夫链?例如,1之后出现2的概率是某个百分比,然后2之后出现3的概率是某个百分比。这样最终我得到123。
嗨,克里斯蒂娜……我建议您继续您的方法。
你好 Jason,感谢你这篇好文章。我想知道如果我想使用 LSTM 进行序列生成,均方误差是如何定义的?它是误差的平方在测试(或训练)实例数量和预测测试(或训练)序列中元素数量上的平均值吗?
嗨 Pratibha……以下讨论可能会增加清晰度
https://stackoverflow.com/questions/57968421/mean-squred-error-interpretation-in-lstm-model-bidirectional-or-multiparallel
谢谢
我有一个用于分类任务的序列数值数据集。我的CSV格式数据集如下:
第一行:[[0,1,0],[5,0,1],[4,1,1]]=>目标= 5
第二行:[[1,2,0],...,[5,0,1]]=>目标=2
第三行:[[5,1,0],[5,0,2],[6,0,0],[1,2,0]]=>目标=3
…
当我使用 Transformer 训练数据集时,准确率没有超过48%。我不知道问题出在哪里。我一直在使用常见的 Tokenizer,例如 WordTokenizer 或 Bert Tokenizer 等。
我不确定我是否使用了正确的 Tokenizer,或者我是否需要对数据进行一些预处理。
请指导我。
嗨,Moha……以下资源可能会引起您的兴趣
https://machinelearning.org.cn/transformer-models-with-attention/