mlforecast

mlforecast

高性能可扩展的机器学习时间序列预测框架

mlforecast是一个基于机器学习模型的时间序列预测框架,具有高效的特征工程实现和良好的可扩展性。该框架支持pandas、polars、spark等多种数据格式,兼容sklearn API,能够处理海量数据。除了支持概率预测和外生变量,mlforecast还提供分布式训练功能,适用于大规模生产环境的时间序列预测任务。框架采用熟悉的fit和predict接口,便于快速上手和集成到现有项目中。

MLForecast时间序列预测机器学习特征工程分布式训练Github开源项目

mlforecast

发推 Slack

<!-- 警告:此文件是自动生成的!请勿编辑! --> <div align="center"> <center> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/943167d9-bc68-4184-a68e-a272f08e147a.png" /> </center> <h1 align="center"> 机器学习 🤖 预测 </h1> <h3 align="center"> 可扩展的时间序列预测机器学习 </h3>

CI Python PyPi conda-forge 许可证

mlforecast 是一个使用机器学习模型进行时间序列预测的框架,可选择使用远程集群来处理海量数据。

</div>

安装

PyPI

pip install mlforecast

conda-forge

conda install -c conda-forge mlforecast

更详细的安装说明请参考安装页面

快速入门

从这个快速指南开始。

按照这个端到端演练了解最佳实践。

示例笔记本

为什么选择mlforecast?

目前Python中的机器学习模型替代方案速度慢、精度低且扩展性差。因此我们创建了一个可用于生产环境的预测库。MLForecast包含高效的特征工程,可用于训练任何机器学习模型(具有fitpredict方法,如sklearn)以适应数百万个时间序列。

特性

  • Python中最快的时间序列预测特征工程实现。
  • 与pandas、polars、spark、dask和ray开箱即用的兼容性。
  • 基于保形预测的概率预测。
  • 支持外生变量和静态协变量。
  • 熟悉的sklearn语法:.fit.predict

缺少什么功能?请提出issue或在Slack上与我们联系。

示例和指南

📚 端到端演练:多个时间序列的模型训练、评估和选择。

🔎 概率预测:使用保形预测生成预测区间。

👩‍🔬 交叉验证:稳健的模型性能评估。

🔌 预测需求高峰:用于检测日峰值和降低电费的电力负荷预测。

📈 迁移学习:使用一组时间序列预训练模型,然后使用该预训练模型预测另一个时间序列。

🌡️ 分布式训练:使用Dask、Ray或Spark集群进行大规模模型训练。

如何使用

以下提供了一个非常基本的概述,更详细的描述请参阅文档

数据设置

将您的时间序列以长格式存储在pandas数据框中,即每行表示特定序列和时间戳的一个观测值。

from mlforecast.utils import generate_daily_series series = generate_daily_series( n_series=20, max_length=100, n_static_features=1, static_as_categorical=False, with_trend=True ) series.head()
<div>
unique_iddsystatic_0
0id_002000-01-0117.51916772
1id_002000-01-0287.79969572
2id_002000-01-03177.44297572
3id_002000-01-04232.70411072
4id_002000-01-05317.51047472
</div> > 注意:unique_id 作为数据集中每个独特时间序列的标识符。如果您只使用数据集中的单一时间序列,请将此列设置为常量值。

模型

接下来定义您的模型,每个模型都将在所有系列上进行训练。这些可以是任何遵循scikit-learn API的回归器。

import lightgbm as lgb from sklearn.linear_model import LinearRegression
models = [ lgb.LGBMRegressor(random_state=0, verbosity=-1), LinearRegression(), ]

预测对象

现在使用模型和您想要使用的特征实例化一个 MLForecast 对象。特征可以是滞后项、滞后项的转换和日期特征。您还可以定义在拟合前应用于目标的转换,这些转换在预测时会被恢复。

from mlforecast import MLForecast from mlforecast.lag_transforms import ExpandingMean, RollingMean from mlforecast.target_transforms import Differences
fcst = MLForecast( models=models, freq='D', lags=[7, 14], lag_transforms={ 1: [ExpandingMean()], 7: [RollingMean(window_size=28)] }, date_features=['dayofweek'], target_transforms=[Differences([1])], )

训练

要计算特征并训练模型,在您的 Forecast 对象上调用 fit

fcst.fit(series)
MLForecast(models=[LGBMRegressor, LinearRegression], freq=D, lag_features=['lag7', 'lag14', 'expanding_mean_lag1', 'rolling_mean_lag7_window_size28'], date_features=['dayofweek'], num_threads=1)

预测

要获取未来 n 天的预测,在预测对象上调用 predict(n)。这将自动处理特征所需的更新,使用递归策略。

predictions = fcst.predict(14) predictions
<div>
unique_iddsLGBMRegressorLinearRegression
0id_002000-04-04299.923771311.432371
1id_002000-04-05365.424147379.466214
2id_002000-04-06432.562441460.234028
3id_002000-04-07495.628000524.278924
4id_002000-04-0860.78622379.828767
...............
275id_192000-03-2336.26678028.333215
276id_192000-03-2444.37098433.368228
277id_192000-03-2550.74622238.613001
278id_192000-03-2658.90652443.447398
279id_192000-03-2763.07394948.666783
<p>280 行 × 4 列</p> </div>

可视化结果

from utilsforecast.plotting import plot_series
fig = plot_series(series, predictions, max_ids=4, plot_random=False)

如何贡献

请参阅 CONTRIBUTING.md

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多