Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何用多组时间序列数据构建数据集 #110

Closed
daizzhisheng opened this issue Aug 18, 2022 · 12 comments
Closed

如何用多组时间序列数据构建数据集 #110

daizzhisheng opened this issue Aug 18, 2022 · 12 comments

Comments

@daizzhisheng
Copy link

No description provided.

@daizzhisheng
Copy link
Author

如何用多组时间序列数据构建数据集?

@daizzhisheng
Copy link
Author

如果有N条网络线路的流量时间序列数据,如何构建ts训练集?每条线路的流量数据都不一样,总不是直接全部拼接在一起吧?

@LinWencong
Copy link
Collaborator

如果有N条网络线路的流量时间序列数据,如何构建ts训练集?每条线路的流量数据都不一样,总不是直接全部拼接在一起吧?
我理解这与你的预测目标(实际业务)有很大关系,如果每个线路之间的流量与你的预测目标有关系,都拼在一起也不一定不好的方案。 若各个流量之间没关系的话,单独建立多个模型也是 ok 的。

@LinWencong
Copy link
Collaborator

多组数据构建一个数据集的方法可以参考 tsdataset 的使用文档 😁

@daizzhisheng
Copy link
Author

如果有N条网络线路的流量时间序列数据,如何构建ts训练集?每条线路的流量数据都不一样,总不是直接全部拼接在一起吧?
我理解这与你的预测目标(实际业务)有很大关系,如果每个线路之间的流量与你的预测目标有关系,都拼在一起也不一定不好的方案。 若各个流量之间没关系的话,单独建立多个模型也是 ok 的。

每条线路的流量趋势和波动情况都是有差异的,想训练一个通用的模型用于所有链路的流量预测,比如输入半年的流量数据预测未来一个月的结果,我有上万条链路流量数据,能不能将这一批数据怎么构建tsdataset 来训练一个模型?

@LinWencong
Copy link
Collaborator

我认为可行的方法有两种:
方案1:你可以建立一个多目标预测模型,例如网线①、②、③的流量都做为目标列,协变量也一起放在 tsdataset 里面,这样在一个 in_chunk_len 中可以包含①、②、③的特征信息、同时包含所有的协变量信息,从而达到建立一个统一模型的目的
方案2:(paddlets version<=0.1.1版本中的tsdataset暂未支持这个方案)利用网线 id 作为另一个索引,将所有网线流量放在一个tsdataset里面,只有一个目标列,即,流量;data adapter会同时利用时间索引与网线 id 去构建输入网络的数据。
方案2我们还在开发中,以后的paddlets版本会支持这个功能

@lyiuy
Copy link

lyiuy commented Aug 23, 2022

When training DL time-series model such as LSTM, the input is 3-dimension contains individual series index to calculate the gradient. It's a good reference for this issue.

@a10210532
Copy link
Collaborator

目前,多组时序联合训练功能已经在V1.0 版本中得到支持,可以升级paddlets到当前最新版本体验该功能,使用文档如下:
https://paddlets.readthedocs.io/zh_CN/latest/source/get_started/multiple_time_series.html

@pvalue31415936
Copy link

1、问题询问:多时序数据导入时,无法加入其他static_cov_cols变量,因为TSDataset.load中限制了len(np.unique(df[col])) != 1
2、报错信息:raise_if( col not in df.columns or len(np.unique(df[col])) != 1,"static cov cals data is not in columns or schema is not right!")
3、截图示范:见下图
image

@a10210532
Copy link
Collaborator

1:static变量有两种加入方法,第一种在load的时候导入,第二种在构建完成tsdataset之后,手动设置static的值
2:如果想在 load的时候导入static变量,需要满足两个条件
(1)static_col对应的列 存在 在样本中
(2)样本中的static列 在样本中同一个group_id的序列里面是常量
也就是:col not in df.columns or len(np.unique(df[col])) != 1 这个判断条件
可以先基于这两个提交看一下数据是否满足~

@pvalue31415936
Copy link

谢谢a10的解答,是我自己用错了~

@DaPenggg
Copy link

DaPenggg commented Jun 2, 2023

group id为什么不能是列表?我有多个组怎么办?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants