Nixtla
神经 🧠 预测
用户友好的最先进神经预测模型
NeuralForecast提供了大量神经预测模型,专注于其性能、可用性和稳健性。这些模型从经典的RNN网络到最新的transformer模型都有:MLP
、LSTM
、GRU
、RNN
、TCN
、TimesNet
、BiTCN
、DeepAR
、NBEATS
、NBEATSx
、NHITS
、TiDE
、DeepNPTS
、TSMixer
、TSMixerx
、MLPMultivariate
、DLinear
、NLinear
、TFT
、Informer
、AutoFormer
、FedFormer
、PatchTST
、iTransformer
、StemGNN
和TimeLLM
。
安装
你可以通过以下方式安装NeuralForecast
:
pip install neuralforecast
或
conda install -c conda-forge neuralforecast
访问我们的安装指南了解更多详情。
快速入门
最简示例
from neuralforecast import NeuralForecast
from neuralforecast.models import NBEATS
from neuralforecast.utils import AirPassengersDF
nf = NeuralForecast(
models = [NBEATS(input_size=24, h=12, max_steps=100)],
freq = 'M'
)
nf.fit(df=AirPassengersDF)
nf.predict()
从这个快速指南开始。
为什么?
人们普遍认为神经预测方法有能力提高预测流程的准确性和效率。
不幸的是,现有的实现和已发表的研究还未能充分发挥神经网络的潜力。它们难以使用,并且在提高统计方法的同时计算成本高昂。因此,我们创建了NeuralForecast
,这是一个偏好经过验证的准确高效模型的库,注重它们的可用性。
特性
- 30多种最先进模型的快速准确实现。在这里查看完整集合。
- 支持外生变量和静态协变量。
- 趋势、季节性和外生成分的可解释性方法。
- 使用分位数损失和参数分布适配器进行概率预测。
- 训练和评估损失包括尺度相关、百分比和尺度无关误差,以及参数似然。
- 具有分布式自动超参数调整的自动模型选择。
- 熟悉的sklearn语法:
.fit
和.predict
。
亮点
- 官方
NHITS
实现,发表于AAAI 2023。查看论文和实验。 - 官方
NBEATSx
实现,发表于《国际预测杂志》。查看论文。 - 与
StatsForecast
、MLForecast
和HierarchicalForecast
统一接口NeuralForecast().fit(Y_df).predict()
,输入和输出。 - 内置与
utilsforecast
和coreforecast
的集成,用于可视化和数据整理的高效方法。 - 与
Ray
和Optuna
集成,用于自动超参数优化。 - 使用迁移学习进行少量历史数据的预测。查看这里的实验。
示例和指南
文档页面包含所有示例和教程。
📈 自动超参数优化:使用Auto
模型在Ray
或Optuna
上进行简单且可扩展的自动超参数优化。
🌡️ 外生回归变量:如何纳入静态或时间相关的外生协变量,如天气或价格。
🔌 Transformer模型:学习如何使用多种最先进的Transformers模型进行预测。
👑 层次预测:预测非零观测值很少的序列。
👩🔬 添加你自己的模型:学习如何向库中添加新模型。
模型
在这里查看完整集合。
如何贡献
如果你希望为项目做出贡献,请参考我们的贡献指南。
参考文献
本工作深受之前贡献者和其他学者在此处介绍的神经预测方法方面的出色工作的影响。我们要特别强调 Boris Oreshkin、Slawek Smyl、Bryan Lim 和 David Salinas 的工作。关于神经预测方法的全面综述,我们推荐参考 Benidis 等人的文章。
贡献者 ✨
感谢这些优秀的人(表情符号说明):
fede 💻 🚧 | Cristian Challu 💻 🚧 | José Morales 💻 🚧 | mergenthaler 📖 💻 | Kin 💻 🐛 🔣 | Greg DeVos 🤔 | Alejandro 💻 |
stefanialvs 🎨 | Ikko Ashimine 🐛 | vglaucus 🐛 | Pietro Monticone 🐛 |
本项目遵循 all-contributors 规范。欢迎任何形式的贡献!