跳转到主要内容

生成时间序列数据的库

项目描述

时间序列生成器

此存储库包含一个Python包,以通用方式生成合成时间序列数据集(位于/time-series_generator下),以及关于如何生成合成时间序列数据的示例笔记本(位于/examples下)。目标是提供非敏感数据,以便演示解决方案并测试这些解决方案和/或算法的有效性。为了测试您的算法,您希望拥有包含不同类型趋势的时间序列。Python包应有助于创建不同类型的时间序列,同时仍易于维护。

time-series-generator

对于此包,假设时间序列由基数乘以许多因子组成。

ts = base_value * factor1 * factor2 * ... * factorN + Noiser

Diagram

这些因子可以是任何东西,随机噪声、线性趋势、季节性等。这些因子可以影响不同的特征。例如,您时间序列中的某些特征可能具有季节性成分,而其他则没有。

不同的因子以不同的类表示,这些类继承自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个示例笔记本可用

  1. generate_stationary_process:适用于介绍timeseries_generator的基本知识。展示了如何应用简单的线性趋势,以及如何引入特征和标签,以及随机噪声。
  2. use_external_factors:更深入地介绍并展示了如何使用external_factors子模块。展示了如何创建季节性趋势。

基于Web的原型UI

我们还使用Streamlit构建了一个基于Web的UI,以演示如何使用此包在交互式Web UI中生成合成时间序列数据。

streamlit run examples/streamlit/app.py

Web UI

许可

此软件包根据Apache License, Version 2.0发布

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

timeseries_generator-0.1.0.tar.gz (102.5 kB 查看哈希)

上传时间

构建分布

timeseries_generator-0.1.0-py2.py3-none-any.whl (105.5 kB 查看哈希)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面