Logo

HierarchicalForecast: Python库实现分层时间序列预测

HierarchicalForecast:分层时间序列预测的Python利器

在当今数据驱动的商业环境中,准确的预测对于决策制定至关重要。然而,许多企业和组织面临的是具有层次结构的复杂时间序列数据,如产品类别、品牌或地理分组等。这就需要一种能够在不同层次之间保持一致性的预测方法。HierarchicalForecast应运而生,为解决这一挑战提供了强大的工具。

HierarchicalForecast简介

HierarchicalForecast是一个开源的Python库,专门用于分层时间序列预测。它提供了一系列reconciliation(协调)方法,可以确保不同层次的预测结果之间保持一致性。这个库的核心目标是为机器学习和统计建模领域提供可靠的基准和工具,促进分层预测研究的发展。

HierarchicalForecast logo

主要特性

HierarchicalForecast提供了多种经典和创新的reconciliation方法:

  1. 经典方法:

    • BottomUp: 从最底层向上聚合预测结果
    • TopDown: 从顶层向下分配预测结果
  2. 替代方法:

    • MiddleOut: 在中间层锚定预测,向上和向下分别使用BottomUp和TopDown方法
    • MinTrace: 通过最小化一致预测空间的总预测方差来优化
    • ERM: 通过最小化L1正则化目标函数来优化reconciliation矩阵
  3. 概率一致性方法:

    • Normality: 在正态性假设下使用MinTrace方差-协方差闭式矩阵
    • Bootstrap: 使用Gamakumara的bootstrap方法生成分层协调预测的分布
    • PERMBU: 通过重新注入多变量依赖性和执行Bottom-Up聚合来协调独立样本预测

为什么选择HierarchicalForecast?

  1. 弥补统计建模和机器学习之间的鸿沟

HierarchicalForecast旨在将统计和计量经济学方法与机器学习技术结合起来。它为研究人员和实践者提供了一个平台,可以比较不同方法的性能,并开发新的算法。

  1. 公开可用的数据集和评估指标

该库集成了经过处理的公开数据集和各种评估指标,使得研究人员可以更容易地进行实验和比较不同方法的效果。

  1. 易于使用和扩展

HierarchicalForecast提供了简洁的API,使用户可以轻松地应用各种reconciliation方法。同时,它的设计也考虑到了可扩展性,允许用户添加自定义的方法。

  1. 社区支持和持续维护

作为一个开源项目,HierarchicalForecast得到了活跃社区的支持。开发团队承诺持续维护和更新库,以适应不断发展的需求。

使用示例

以下是一个简单的使用示例,展示了如何使用HierarchicalForecast进行预测和协调:

import numpy as np
import pandas as pd
from datasetsforecast.hierarchical import HierarchicalData
from statsforecast.core import StatsForecast
from statsforecast.models import AutoARIMA, Naive
from hierarchicalforecast.core import HierarchicalReconciliation
from hierarchicalforecast.methods import BottomUp, TopDown, MiddleOut

# 加载数据
Y_df, S, tags = HierarchicalData.load('./data', 'TourismSmall')
Y_df['ds'] = pd.to_datetime(Y_df['ds'])

# 分割训练集和测试集
Y_test_df  = Y_df.groupby('unique_id').tail(4)
Y_train_df = Y_df.drop(Y_test_df.index)

# 使用AutoARIMA进行基础预测
fcst = StatsForecast(df=Y_train_df,
                     models=[AutoARIMA(season_length=4), Naive()],
                     freq='Q', n_jobs=-1)
Y_hat_df = fcst.forecast(h=4)

# 使用不同的reconciliation方法
reconcilers = [
    BottomUp(),
    TopDown(method='forecast_proportions'),
    MiddleOut(middle_level='Country/Purpose/State',
              top_down_method='forecast_proportions')
]
hrec = HierarchicalReconciliation(reconcilers=reconcilers)
Y_rec_df = hrec.reconcile(Y_hat_df=Y_hat_df, Y_df=Y_train_df,
                          S=S, tags=tags)

这个例子展示了如何加载数据、进行基础预测,然后使用不同的reconciliation方法来协调预测结果。

安装和文档

HierarchicalForecast可以通过pip或conda安装:

pip install hierarchicalforecast

conda install -c conda-forge hierarchicalforecast

详细的文档和更多示例可以在HierarchicalForecast官方文档中找到。

结论

HierarchicalForecast为分层时间序列预测提供了一个强大而灵活的解决方案。无论是研究人员还是实践者,都可以利用这个库来改进预测模型,确保不同层次的预测结果保持一致性。随着机器学习在时间序列预测领域的不断发展,HierarchicalForecast将继续发挥重要作用,推动这一领域的进步。

如果您正在处理复杂的分层时间序列数据,不妨尝试使用HierarchicalForecast。它可能会为您的预测任务带来新的洞察和改进。记得查看GitHub仓库以获取最新更新和贡献指南。让我们一起推动分层预测技术的发展,为更准确、更一致的决策提供支持。

相关项目

Project Cover
pytorch-forecasting
PyTorch Forecasting 是一个基于 PyTorch 的时间序列预测包,适用于实际应用和研究。它支持多种神经网络架构及自动日志记录,利用 PyTorch Lightning 实现多 GPU/CPU 的扩展训练,并内置模型解释功能。关键特性包括时间序列数据集类、基本模型类、增强的神经网络架构、多视角时间序列指标和超参数优化。安装简便,支持 pip 和 conda,文档详尽,并包含模型比较和使用案例。
Project Cover
neural_prophet
NeuralProphet是一个基于PyTorch的开源框架,将神经网络与传统时间序列算法结合,专为时间序列预测而设计。它提供简便的代码接口,支持模型定制、趋势检测、季节性分析和事件影响评估,适合高频次和长期数据。项目仍在beta阶段,欢迎社区贡献。
Project Cover
gluonts
GluonTS是一个基于Python的时间序列建模库,专注于采用深度学习方法进行概率预测。支持多种深度学习框架,包括PyTorch和MXNet,提供易于安装和使用的特性。适用于多种应用场景,如商业分析和数据科学。由一个积极的开源社区维护和发展。
Project Cover
iTransformer
iTransformer是一种用于多变量时间序列预测的开源模型,无需修改任何Transformer模块。它在处理大规模数据时表现出色,具备显著的性能提升和强大的泛化能力。iTransformer已在多种基准测试中表现优异,支持静态协变量和概率发射头。用户可通过pip安装,并使用项目提供的详细训练和评估脚本。更多信息请参阅官方论文。
Project Cover
flow-forecast
Flow Forecast 是一个开源时间序列预测深度学习框架,提供最新的Transformer、注意力模型、GRU等技术,并具有易于理解的解释指标、云集成和模型服务功能。该框架是首个支持Transformer模型的时间序列框架,适用于流量预测、分类和异常检测。
Project Cover
Time-LLM
Time-LLM将大型语言模型重新用于时序预测,利用其强大功能处理时序数据,并结合专家知识和任务说明提升预测精度。支持Llama-7B、GPT-2和BERT等模型,框架灵活且适应性广泛。了解Time-LLM的最新更新、使用案例和技术细节,访问我们的详细介绍及相关资源。
Project Cover
orbit
Orbit 是一个用于贝叶斯时间序列预测和推断的 Python 包,提供直观的初始化-拟合-预测接口。支持的模型包括ETS、LGT、DLT和KTR,采用MCMC、MAP和VI等方法进行优化。用户可以通过PyPI、源码或Anaconda安装,并提供详细的文档和教程。
Project Cover
LTSF-Linear
LTSF-Linear是一个高效的线性模型家族,包括Linear、NLinear和DLinear,专为时间序列预测设计。该模型支持单变量和多变量长时间预测,具有高效率、可解释性和易用性,显著优于Transformer模型。
Project Cover
Informer2020
Informer引入ProbSparse注意机制,大幅提升长序列时间序列预测的效率和精度。该模型利用概率分布选择活跃查询,避免冗余计算,适用于多种数据集,并在AIJ和AAAI'21获奖。提供详细的实验设置、Colab示例和数据下载链接,帮助用户快速上手并复现结果。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号