生成时间序列数据的库
项目描述
时间序列生成器
此存储库包含一个Python包,以通用方式生成合成时间序列数据集(位于/time-series_generator
下),以及关于如何生成合成时间序列数据的示例笔记本(位于/examples
下)。目标是提供非敏感数据,以便演示解决方案并测试这些解决方案和/或算法的有效性。为了测试您的算法,您希望拥有包含不同类型趋势的时间序列。Python包应有助于创建不同类型的时间序列,同时仍易于维护。
time-series-generator
包
对于此包,假设时间序列由基数乘以许多因子组成。
ts = base_value * factor1 * factor2 * ... * factorN + Noiser
这些因子可以是任何东西,随机噪声、线性趋势、季节性等。这些因子可以影响不同的特征。例如,您时间序列中的某些特征可能具有季节性成分,而其他则没有。
不同的因子以不同的类表示,这些类继承自BaseFactor
类。因子类是Generator
类的输入,该类创建一个包含特征、基数、所有作用于基数的不同因子以及最终因子和值的dataframe。
核心概念
- 生成器:一个Python类,用于生成时间序列。生成器包含一个因子和噪声的列表。通过叠加因子和噪声,生成器可以生成定制的时序。
- 因子:一个Python类,用于生成趋势、季节性、假日因子等。因子通过在生成器的基数上乘以而生效。
- 噪声:一个Python类,用于生成时间序列噪声数据。噪声通过在“因子化”时间序列之上求和而生效。此公式描述了上述概念
内置因子
- LinearTrend:基于输入的斜率和截距提供线性趋势
- 国家年度趋势:根据人均GDP给出基于年度的市场资本化因子。
- 欧盟经济趋势成分:基于欧盟行业产品公共数据给出每月变化因子。
- 假日趋势成分:模拟假日销售峰值。它根据不同国家的假日天数进行不同调整。
- 黑色星期五销售成分:模拟黑色星期五销售活动。
- 周末趋势成分:周末比工作日销售更多。
- 特征随机因子成分:为不同店铺和不同产品设置不同的销售额。
- 产品季节趋势成分:模拟季节敏感型产品销售。在此示例代码中,我们有3种不同类型的产品
- 冬季夹克:与温度成反比,冬季销售更多
- 篮球衫:与温度成正比,夏季销售更多
- 瑜伽垫:对温度不敏感
安装
pip install timeseries-generator
用法
from timeseries_generator import LinearTrend, Generator, WhiteNoise, RandomFeatureFactor
import pandas as pd
# setting up a linear tren
lt = LinearTrend(coef=2.0, offset=1., col_name="my_linear_trend")
g = Generator(factors={lt}, features=None, date_range=pd.date_range(start="01-01-2020", end="01-20-2020"))
g.generate()
g.plot()
# update by adding some white noise to the generator
wn = WhiteNoise(stdev_factor=0.05)
g.update_factor(wn)
g.generate()
g.plot()
示例笔记本
目前我们有2个示例笔记本可用
generate_stationary_process
:适用于介绍timeseries_generator
的基本知识。展示了如何应用简单的线性趋势,以及如何引入特征和标签,以及随机噪声。use_external_factors
:更深入地介绍并展示了如何使用external_factors
子模块。展示了如何创建季节性趋势。
基于Web的原型UI
我们还使用Streamlit构建了一个基于Web的UI,以演示如何使用此包在交互式Web UI中生成合成时间序列数据。
streamlit run examples/streamlit/app.py
许可
此软件包根据Apache License, Version 2.0发布
项目详情
关闭
timeseries_generator-0.1.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 80353712667be307afaa74df313e72d070fd03632691e0ecd86419323f198980 |
|
MD5 | f19cf60bc33e3288434f4d66a64acaf3 |
|
BLAKE2b-256 | 23c30bef00c04c0a633d2ffff2089331774ebae89ae35ca404ac5401b5df6855 |
关闭
timeseries_generator-0.1.0-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b2315473529f4222e6c1004dd3bca9fb4d03c88beaf67bf7630c15785520abc2 |
|
MD5 | 7f623fde64ce65d636baed949a01d2c9 |
|
BLAKE2b-256 | ad4285d882eca105dcfeaa5b55f7cf743e1c82709e81815e05fc37b87077ed77 |