PaddleTS
PaddleTS copied to clipboard
如何用多组时间序列数据构建数据集
如何用多组时间序列数据构建数据集?
如果有N条网络线路的流量时间序列数据,如何构建ts训练集?每条线路的流量数据都不一样,总不是直接全部拼接在一起吧?
如果有N条网络线路的流量时间序列数据,如何构建ts训练集?每条线路的流量数据都不一样,总不是直接全部拼接在一起吧? 我理解这与你的预测目标(实际业务)有很大关系,如果每个线路之间的流量与你的预测目标有关系,都拼在一起也不一定不好的方案。 若各个流量之间没关系的话,单独建立多个模型也是 ok 的。
多组数据构建一个数据集的方法可以参考 tsdataset 的使用文档 😁
如果有N条网络线路的流量时间序列数据,如何构建ts训练集?每条线路的流量数据都不一样,总不是直接全部拼接在一起吧? 我理解这与你的预测目标(实际业务)有很大关系,如果每个线路之间的流量与你的预测目标有关系,都拼在一起也不一定不好的方案。 若各个流量之间没关系的话,单独建立多个模型也是 ok 的。
每条线路的流量趋势和波动情况都是有差异的,想训练一个通用的模型用于所有链路的流量预测,比如输入半年的流量数据预测未来一个月的结果,我有上万条链路流量数据,能不能将这一批数据怎么构建tsdataset 来训练一个模型?
我认为可行的方法有两种: 方案1:你可以建立一个多目标预测模型,例如网线①、②、③的流量都做为目标列,协变量也一起放在 tsdataset 里面,这样在一个 in_chunk_len 中可以包含①、②、③的特征信息、同时包含所有的协变量信息,从而达到建立一个统一模型的目的 方案2:(paddlets version<=0.1.1版本中的tsdataset暂未支持这个方案)利用网线 id 作为另一个索引,将所有网线流量放在一个tsdataset里面,只有一个目标列,即,流量;data adapter会同时利用时间索引与网线 id 去构建输入网络的数据。 方案2我们还在开发中,以后的paddlets版本会支持这个功能
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.
目前,多组时序联合训练功能已经在V1.0 版本中得到支持,可以升级paddlets到当前最新版本体验该功能,使用文档如下: https://paddlets.readthedocs.io/zh_CN/latest/source/get_started/multiple_time_series.html
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、截图示范:见下图
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 这个判断条件 可以先基于这两个提交看一下数据是否满足~
谢谢a10的解答,是我自己用错了~
group id为什么不能是列表?我有多个组怎么办?