Project Icon

mlforecast

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

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

mlforecast

发推 Slack

机器学习 🤖 预测

可扩展的时间序列预测机器学习

CI Python PyPi conda-forge 许可证

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

安装

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()
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
> 注意: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
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

280 行 × 4 列

可视化结果

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

如何贡献

请参阅 CONTRIBUTING.md

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号