将时间序列数据集转换为监督学习数据集

Posted

技术标签:

【中文标题】将时间序列数据集转换为监督学习数据集【英文标题】:Transform time series data set to supervised learning data set 【发布时间】:2019-09-19 06:08:55 【问题描述】:

我有一个包含多个项目(例如用户)的时间序列(每天)的数据集。 数据看起来像这样简化: https://i.ibb.co/Pj4TnHW/trans-original.jpg(我无法发布图片,因为缺少代表点,抱歉)

该数据集对每个用户都具有相同的属性(例如度量)。这些措施是每天在一个时间窗口内采取的。每个用户都有自己的“活动日期”。

我的目标是将这个时间序列(面向行的)数据集转换为可用于监督学习的数据集。 我想要的布局如下所示: https://i.ibb.co/8DxYpCy/Unbenannt.jpg

目前,我将我的解决方案应用于具有约 60 个度量的数据集。 到目前为止,我通过对“user_id”使用迭代并使用 pandas.melt()、pandas.transpose() 函数应用多个步骤来实现这一点。 但这需要大量的预格式化,并且随着数据集的增大而变得更慢。

有没有更好的方法来进行我的转换?我读到了这个https://machinelearningmastery.com/convert-time-series-supervised-learning-problem-python/,但这似乎是另一种类型的问题......

//编辑#1:根据要求,我创建了尽可能小的笔记本/python 脚本,并使用简化的数据集来演示我在做什么:https://www.file-upload.net/download-13590592/timeseries_to_supervised.zip.html (Jupyter Notebook,导出的 HTML 版本,示例输入数据集)

【问题讨论】:

复制少量数据会很有帮助,比如以定义 pandas 数据框的代码以及您当前正在使用的代码的形式。这样可以提出更具体的建议! 嗨 Josh,我创建了一个 jupyter notebook + 示例数据集。请找到附件中的文件。 【参考方案1】:

我曾经用R 做类似的事情,它是一门精心设计用于操作行的语言(函数式编程)。您可以使用库datatable,它非常快。如果我可以问您要预测哪个专栏?注意不要根据现在或未来的数据来预测结果,你只能使用过去:)

【讨论】:

谢谢,我一定会看看这个库!就我而言,我不打算预测其中一个与时间序列相关的元素。我将始终处理已经存在的数据,但在了解这些措施的模式后,我知道是否发生了某些事情(例如机器故障)。

以上是关于将时间序列数据集转换为监督学习数据集的主要内容,如果未能解决你的问题,请参考以下文章

将时间序列元素的Tensorflow数据集转换为窗口序列的数据集

将不同单元格中具有两个日期的数据集转换为系列或序列(Google 工作表)

如何将 RDD [ Vector ] 中的合成控制数据集转换为 K-Means 算法

11.分类与监督学习,朴素贝叶斯分类算法

11.分类与监督学习,朴素贝叶斯分类算法

为深度机器学习标记数据集