跳转到主要内容

Nixtla API (TimeGPT) 的 Python SDK

项目描述

Nixtla   Tweet   Slack

TimeGPT-1

预测和异常检测的第一个基础模型

CI PyPi License docs Downloads Downloads Downloads fern shield

TimeGPT 是一个适用于时间序列的生成式预训练变换器,适用于生产环境。它只需要几行代码就能准确预测各种领域,如零售、电力、金融和物联网 🚀。

📖 目录

🚀 快速开始

https://github.com/Nixtla/nixtla/assets/4086186/163ad9e6-7a16-44e1-b2e9-dab8a0b7b6b6

安装 nixtla 的 SDK

pip install nixtla>=0.5.1

导入库并加载数据

import pandas as pd
from nixtla import NixtlaClient

使用 TimeGPT 进行预测,只需3步

# Get your API Key at dashboard.nixtla.io

# 1. Instantiate the NixtlaClient
nixtla_client = NixtlaClient(api_key = 'YOUR API KEY HERE')

# 2. Read historic electricity demand data 
df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/electricity-short.csv')

# 3. Forecast the next 24 hours
fcst_df = nixtla_client.forecast(df, h=24, level=[80, 90])

# 4. Plot your results (optional)
nixtla_client.plot(df, timegpt_fcst_df, time_col='timestamp', target_col='value', level=[80, 90])

Forecast Results

使用TimeGPT进行异常检测的三步法

# Get your API Key at dashboard.nixtla.io

# 1. Instantiate the NixtlaClient
nixtla_client = NixtlaClient(api_key = 'YOUR API KEY HERE')

# 2. Read Data # Wikipedia visits of NFL Star (
df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/peyton_manning.csv')


# 3. Detect Anomalies 
anomalies_df = nixtla_client.detect_anomalies(df, time_col='timestamp', target_col='value', freq='D')

# 4. Plot your results (optional)
nixtla_client.plot(df, anomalies_df,time_col='timestamp', target_col='value')

AnomalyDetection

🤓 支持其他语言的API

探索我们的API参考,了解如何利用TimeGPT在JavaScript、Go等多种编程语言中发挥其作用。

🔥 特点和功能

  • 零样本推理:TimeGPT可以直接生成预测并检测异常,无需先前的训练数据。这允许即时部署并快速从任何时间序列数据中获得洞察。

  • 微调:通过在您的特定数据集上微调模型来增强TimeGPT的功能,使模型能够适应您独特的时间序列数据的细微差别,并提高特定任务上的性能。

  • API访问:通过我们强大的API将TimeGPT无缝集成到您的应用程序中。即将支持的Azure Studio将为提供更多灵活的集成选项。或者,将TimeGPT部署到您自己的基础设施上,以保持对您的数据和工作流程的完全控制。

  • 添加外生变量:结合可能影响您预测的额外变量以提高预测精度。(例如,特殊日期、事件或价格)

  • 多序列预测:同时预测多个时间序列数据,优化工作流程和资源。

  • 自定义损失函数:通过自定义损失函数来调整微调过程,以满足特定的性能指标。

  • 交叉验证:实现开箱即用的交叉验证技术,以确保模型的稳健性和泛化能力。

  • 预测区间:在您的预测中提供区间以有效地量化不确定性。

  • 不规则时间戳:处理具有不规则时间戳的数据,无需预处理即可适应非均匀间隔序列。

📚 带示例和用例的文档

深入了解我们的全面文档,了解TimeGPT的示例和实际用例。我们的文档涵盖了广泛的主题,包括

🗞️ TimeGPT-1:革命性的预测和异常检测

时间序列数据在金融、医疗保健、气象学和社会科学等多个行业中至关重要。无论是监测海潮还是跟踪道琼斯指数的每日收盘价,时间序列数据对于预测和决策至关重要。

传统的分析方法,如ARIMA、ETS、MSTL、Theta、CES,以及XGBoost和LightGBM等机器学习模型和深度学习方法一直是分析师的标准工具。然而,TimeGPT凭借其卓越的性能、效率和简单性引入了范式转变。多亏了其零样本推理能力,TimeGPT简化了分析过程,使其对具有最少编码经验的用户来说也变得可访问。

TimeGPT易于使用且低代码,允许用户上传他们的时间序列数据,只需一行代码即可生成预测或检测异常。作为唯一的开箱即用时间序列分析基础模型,TimeGPT可以通过我们的公共API、Azure Studio(即将推出)或部署在您自己的基础设施上。

⚙️ TimeGPT的架构

自注意力,这是由论文“Attention is all you need”引入的革命性概念,是此基础模型的基础。TimeGPT模型不是基于任何现有的大型语言模型(LLMs)。它是独立地在庞大的时间序列数据集上作为大型Transformer模型进行训练,并设计用来最小化预测误差。

该架构由一个多层编码器-解码器结构组成,每一层都具有残差连接和层归一化。最后,一个线性层将解码器的输出映射到预测窗口维度。一般的直觉是,基于注意力的机制能够捕捉过去事件的多样性,并正确地外推潜在的将来分布。

Arquitecture

据我们所知,TimeGPT是在最大的公开时间序列集合上进行的训练,总共涵盖了超过1000亿个数据点。这个训练集包含了来自金融、经济、人口统计、医疗保健、天气、物联网传感器数据、能源、网络流量、销售、交通和银行业的广泛领域的时间序列。由于这些不同领域的多样性,训练数据集包含具有广泛特征的时间序列。


⚡️ 零样本结果

准确度

TimeGPT在300K多个独特序列上对其零样本推理能力进行了测试,这些序列涉及在不进行测试数据集上的额外微调的情况下使用模型。TimeGPT在广泛的频率上始终排名前三位,优于一系列广泛认可的统计和最前沿的深度学习模型。

易用性

TimeGPT还通过提供简单快速的使用预训练模型进行预测而表现出色。这与其他通常需要广泛训练和预测管道的模型形成鲜明对比。

Results

效率和速度

对于零样本推理,我们内部测试记录了TimeGPT的平均GPU推理速度为每序列0.6毫秒,这几乎与简单的季节性朴素相同。

📝 如何引用?

如果您觉得TimeGPT对您的研究有用,请考虑引用相关的论文

@misc{garza2023timegpt1,
      title={TimeGPT-1}, 
      author={Azul Garza and Max Mergenthaler-Canseco},
      year={2023},
      eprint={2310.03589},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

🎉 特点和提及

TimeGPT已在许多出版物中展示,并因其创新的时间序列预测方法而受到认可。以下是一些特点和提及

🔖 许可证

TimeGPT是闭源。然而,此SDK是开源的,可在Apache 2.0许可证下使用。请自由贡献。

📞 联系我们

对于任何问题或反馈,请随时通过ops [at] nixtla.io与我们联系。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

nixtlats-0.5.2.tar.gz (63.1 kB 查看哈希值)

上传时间

构建分布

nixtlats-0.5.2-py3-none-any.whl (73.9 kB 查看哈希值)

上传时间 Python 3

由以下组织支持