跳转到主要内容

用于生成机器学习时间序列分析日历的Python包。

项目描述

lilio:基于时间序列数据的机器学习日历生成器

Logo

github license badge rsd badge DOI SQAaaS badge shields.io fair-software.eu Documentation Status build workflow scc badge

A python包,用于生成日历来重采样时间序列数据,以供机器学习训练和目标数据使用。以格里高利日历的发明者命名。

Lilio最初是为s2spy设计的,这是一个高级Python包,集成了专业知识与人工智能以提高(次)季节性预测。

安装

workflow pypi badge supported python versions conda-forge

要安装lilio的最新版本,请执行以下操作

python3 -m pip install lilio

Lilio也可在conda-forge上使用。如果您使用conda,请执行以下操作

conda install -c conda-forge lilio

要从GitHub仓库安装开发版本,请执行以下操作

python3 -m pip install git+https://github.com/AI4S2S/lilio.git

配置包以进行开发和测试

更详细的开发者指南可在此处找到。

此处使用的测试框架是pytest。在运行测试之前,我们获取源代码的本地副本,并通过以下命令安装lilio

git clone https://github.com/AI4S2S/lilio.git
cd lilio
python3 -m pip install -e .[dev]

然后,运行测试

hatch run test

lilio日历的工作原理

在Lilio中,日历是二维的。每一行(年份)代表一个独特的数据观察,而每一列对应一个具有特定延迟的先导期。这是我们为机器学习应用组织数据的方式。

Conceptual illustration of Lilio Calendar

我们将“锚定日期”定义为在目标期和先导期之间(严格来说,是第一个目标区间的开始)。所有其他区间都表示为此锚定日期的偏移量。方便的是,这消除了与闰年相关的任何歧义。

以下是用Lilio生成的日历

>>> calendar = lilio.daily_calendar(anchor="11-30", length='180d')
>>> calendar = calendar.map_years(2020, 2021)
>>> calendar.show()
i_interval                         -1                         1
anchor_year
2021         [2021-06-03, 2021-11-30)  [2021-11-30, 2022-05-29)
2020         [2020-06-03, 2020-11-30)  [2020-11-30, 2021-05-29)

现在,用户可以加载数据input_data(例如pandas DataFrame),并将其重采样到日历中配置的所需时间尺度

>>> calendar = calendar.map_to_data(input_data)
>>> bins = lilio.resample(calendar, input_data)
>>> bins
  anchor_year  i_interval                  interval  mean_data  target
0        2020          -1  [2020-06-03, 2020-11-30)      275.5    True
1        2020           1  [2020-11-30, 2021-05-29)       95.5   False
2        2021          -1  [2021-06-03, 2021-11-30)      640.5    True
3        2021           1  [2021-11-30, 2022-05-29)      460.5   False

为了方便起见,Lilio为标准日历提供了一些缩写,例如monthly_calendarweekly_calendar。但是,您也可以通过直接调用Calendar来创建自定义日历。有关示例,请参阅此示例笔记本

文档

Documentation Status

有关使用lilio包的详细信息,请访问Readthedocs上托管的文档页面

贡献

如果您想为lilio的开发做出贡献,请查看贡献指南

如何引用我们

rsd badge DOI

如果您在研究中使用了此包,请使用Zenodo DOI来引用此包。

致谢

本包由荷兰eScience中心和阿姆斯特丹自由大学开发,资金来源于荷兰eScience中心资助NLESC.OEC.2021.005。

本包使用CookiecutterNLeSC/python-template创建。

项目详情


下载文件

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

源代码发行版

lilio-0.5.0.tar.gz (1.8 MB 查看哈希值)

上传时间 源代码

构建分发版

lilio-0.5.0-py3-none-any.whl (34.8 kB 查看哈希值)

上传时间 Python 3

支持者