用于生成机器学习时间序列分析日历的Python包。
项目描述
lilio:基于时间序列数据的机器学习日历生成器
A python包,用于生成日历来重采样时间序列数据,以供机器学习训练和目标数据使用。以格里高利日历的发明者命名。
Lilio最初是为s2spy
设计的,这是一个高级Python包,集成了专业知识与人工智能以提高(次)季节性预测。
安装
要安装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中,日历是二维的。每一行(年份)代表一个独特的数据观察,而每一列对应一个具有特定延迟的先导期。这是我们为机器学习应用组织数据的方式。
我们将“锚定日期”定义为在目标期和先导期之间(严格来说,是第一个目标区间的开始)。所有其他区间都表示为此锚定日期的偏移量。方便的是,这消除了与闰年相关的任何歧义。
以下是用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_calendar
和weekly_calendar
。但是,您也可以通过直接调用Calendar
来创建自定义日历。有关示例,请参阅此示例笔记本。
文档
有关使用lilio
包的详细信息,请访问Readthedocs上托管的文档页面。
贡献
如果您想为lilio的开发做出贡献,请查看贡献指南。
如何引用我们
如果您在研究中使用了此包,请使用Zenodo DOI来引用此包。
致谢
本包由荷兰eScience中心和阿姆斯特丹自由大学开发,资金来源于荷兰eScience中心资助NLESC.OEC.2021.005。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
构建分发版
lilio-0.5.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75e0a4cc46ed998cf072295c1188e11b61e194290f201dfc0ebeb95b1a1daadd |
|
MD5 | 436a910fa30feae97f747fb4ce8fa2de |
|
BLAKE2b-256 | b464f3a1622e02425b3b4a6752249c1dcd194950e349a3691f384b861c88f164 |
lilio-0.5.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ecd20ee3285c52dc0e8bd7dde8a103fc76ae32c63696ee68d81e0fabf5001637 |
|
MD5 | 5b115eb1e4098a9a6891f9fa56bb8e48 |
|
BLAKE2b-256 | 388050482dafd6ba4fafec32177325ac5532e0180bb76300229d50a2c70c23e2 |