跳转到主要内容

Nixtla API (TimeGPT) 的 Python SDK

项目描述

Nixtla   Tweet  Slack

TimeGPT-1

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

CI PyPi License docs Downloads Downloads Downloads

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, fcst_df, level=[80, 90])

Forecast Results

使用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 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模型并非基于任何现有的大语言模型(LLM)。它作为一个大型Transformer模型,独立地在大量的时间序列数据集上训练,并设计用来最小化预测误差。

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

Arquitecture

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


⚡️ 零样本结果

准确性

TimeGPT已经在其零样本推理能力上进行了测试,测试了超过30万个独特的序列,这些测试涉及在不进行测试数据集上的额外微调的情况下使用该模型。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与我们联系。

项目详情


下载文件

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

源代码分发

nixtla-0.6.1.tar.gz (32.9 kB 查看哈希值)

上传时间 源代码

构建分发

nixtla-0.6.1-py3-none-any.whl (28.3 kB 查看哈希值)

上传时间 Python 3

由以下机构支持