请注意:该项目仍处于测试阶段。如果您遇到任何问题或有建议,请及时反馈,我们会尽力快速处理。非常欢迎大家的贡献!
NeuralProphet: 以人为本的预测工具
NeuralProphet 是一个易于学习的可解释时间序列预测框架。 NeuralProphet 基于 PyTorch 构建,结合了神经网络和传统时间序列算法,灵感来自 Facebook Prophet 和 AR-Net。
- 通过几行代码,您可以定义、定制、可视化和评估您自己的预测模型。
- 它设计用于迭代的人机协同模型构建。这意味着您可以快速构建第一个模型,解释结果,改进,重复。由于重点在于可解释性和定制能力,NeuralProphet 可能不会成为开箱即用的最准确模型;因此,不要犹豫调整和迭代,直到您对结果满意为止。
- NeuralProphet 最适合高频(每日以下)和长时间跨度(至少两个完整周期/年)的时间序列数据。
文档
文档页面 可能并不完全最新。Docstrings 应该是可靠的,存疑时请参考这些。我们正在改进文档,非常感谢任何帮助以改进和更新文档。
如需了解 NeuralProphet 的视觉介绍,查看此演示文稿。
贡献
我们编制了贡献指南,其中包括实用说明和更多资源,帮助您成为我们大家庭的一员。
社区
讨论和帮助
如果您有任何问题或建议,您可以在我们的 Github 社区 参与讨论。
Slack 聊天
我们也有一个活跃的 Slack 社区。欢迎加入我们的讨论!
教程
有几个 示例笔记本 可以帮助您入门。
您可以在我们的 neuralprophet-data 仓库 中找到教程中使用的数据集,包括数据预处理示例。
请参考我们的文档页面获取更多资源。
最简示例
from neuralprophet import NeuralProphet
在导入包后,您可以在代码中使用 NeuralProphet:
m = NeuralProphet()
metrics = m.fit(df)
forecast = m.predict(df)
您可以使用内置的绘图功能可视化您的结果:
fig_forecast = m.plot(forecast)
fig_components = m.plot_components(forecast)
fig_model = m.plot_parameters()
如果您想预测未知的未来,可以在预测前扩展数据框:
m = NeuralProphet().fit(df, freq="D")
df_future = m.make_future_dataframe(df, periods=30)
forecast = m.predict(df_future)
fig_forecast = m.plot(forecast)
安装
您现在可以通过 pip 直接安装 neuralprophet:
pip install neuralprophet
安装选项
如果您计划在 Jupyter notebook 中使用该包,建议安装 'live' 版本:
pip install neuralprophet[live]
这将允许您在 fit
函数中启用 plot_live_loss
,以获得训练(和验证)损失的实时图。
如果您希望获得最新版本,也可以直接从 github 安装:
git clone <从 github 复制的链接>
cd neural_prophet
pip install .
Windows 用户注意:请使用 WSL2。
特性
模型组件
- 自回归:自相关建模 - 线性或神经网络 (AR-Net)。
- 趋势:带有可选自动拐点检测的分段线性趋势。
- 季节性:使用傅里叶项的不同周期(如年、日、周、小时)。
- 滞后回归量:滞后观测值(例如温度传感器) - 线性或神经网络。
- 未来回归量:已知的未来特征(例如温度预测) - 线性或神经网络。
- 事件:国家假日和自定义重复事件。
- 全球建模:组件可以是本地、全球或“混合”(全球 + 正则化本地)。
框架特性
- 多时间序列:拟合具有(部分)共享模型参数的全局/混合模型。
- 不确定性:估计特定分位数的值 - 分位数回归。
- 正则化模型组件。
- 预测组件、模型系数等的绘图功能。
- 时间序列交叉验证工具。
- 模型检查点和验证。
即将推出:tm:
- 滞后回归量的交叉关系。
- 多序列静态元数据回归。
- 趋势组件的逻辑增长。
有关过去更改的列表,请参考发布页面。
引用
如果 NeuralProphet 对您的研究有帮助,请在您的出版物中引用 NeuralProphet:
@misc{triebe2021neuralprophet,
title={NeuralProphet: Explainable Forecasting at Scale},
author={Oskar Triebe and Hansika Hewamalage and Polina Pilyugina and Nikolay Laptev and Christoph Bergmeir and Ram Rajagopal},
year={2021},
eprint={2111.15397},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
感谢所有贡献者:
关于
NeuralProphet 是一个开源社区项目,由像您一样的优秀人士支持。 如果您有兴趣加入项目,请随时联系我(Oskar) - 您可以在 NeuralProphet 论文 中找到我的电子邮件。