工具系列:TimeGPT_(1)获取token方式和初步使用

文章目录

    • 介绍
    • 获取Token
    • 用法
    • 数据的重要要求
    • 使用DateTime索引推断频率。

介绍

Nixtla的TimeGPT是一种用于时间序列数据的生成式预训练预测模型。TimeGPT可以在没有训练的情况下,仅使用历史值作为输入,为新的时间序列生成准确的预测。TimeGPT可以用于各种任务,包括需求预测、异常检测、财务预测等等。

TimeGPT 利用 Transformer 架构和基于 Google 和多伦多大学 2017 年开创性工作的自注意力机制。该模型是根据来自公开数据的 1000 亿个数据点进行训练的。

TimeGPT模型的工作方式类似于人类阅读句子的方式-从左到右。它查看过去数据的窗口,我们可以将其视为“标记”,并预测接下来会发生什么。这种预测是基于模型在过去数据中识别出的模式,并推断到未来。

该API提供了与TimeGPT的接口,允许用户利用其预测能力来预测未来事件。TimeGPT还可以用于其他与时间序列相关的任务,例如假设情景、异常检测等等。

在这里插入图片描述

获取Token

1、官网网站:
https://docs.nixtla.io

2、登录入口
在这里插入图片描述
红色框处的Log in
3、登录控制台
在这里插入图片描述

4、创建Token
在这里插入图片描述

5、查看使用次数
请添加图片描述
可以免费使用420次

用法


# Import the colab_badge module from the nixtlats.utils package
from nixtlats.utils import colab_badge
# 导入colab_badge函数
from IPython.display import colab_badge# 调用colab_badge函数,显示Colab徽章
colab_badge('docs/getting-started/1_getting_started_short')
# 导入load_dotenv函数,用于加载.env文件中的环境变量
from dotenv import load_dotenv
# 加载dotenv模块,用于从.env文件中加载环境变量
load_dotenv()
True
# 导入TimeGPT模块
from nixtlats import TimeGPT
/home/ubuntu/miniconda/envs/nixtlats/lib/python3.11/site-packages/statsforecast/core.py:25: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.htmlfrom tqdm.autonotebook import tqdm

您可以实例化TimeGPT类并提供您的凭据。

# 导入TimeGPT类
from timegpt import TimeGPT# 创建TimeGPT对象,传入token参数,如果没有提供则默认使用环境变量中的TIMEGPT_TOKEN
timegpt = TimeGPT(token='my_token_provided_by_nixtla')
# 创建一个TimeGPT对象,用于生成时间相关的文本。
timegpt = TimeGPT()

您可以通过调用validate_token方法来测试您的令牌的有效性。

# 调用timegpt模块的validate_token()函数进行token验证
timegpt.validate_token()
INFO:nixtlats.timegpt:Happy Forecasting! :), If you have questions or need support, please email ops@nixtla.ioTrue

现在您可以开始进行预测了!让我们导入一个经典的AirPassengers数据集的示例。该数据集包含1949年至1960年期间澳大利亚每月的航空公司乘客数量。首先,让我们加载数据集并绘制它:

# 导入pandas库,用于数据处理和分析
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/air_passengers.csv')# 显示数据集的前5行
df.head()
timestampvalue
01949-01-01112
11949-02-01118
21949-03-01132
31949-04-01129
41949-05-01121
# 使用timegpt模块的plot函数绘制图表
# 参数df为数据集,time_col为时间列,target_col为目标列
timegpt.plot(df, time_col='timestamp', target_col='value')

数据的重要要求

  • 确保目标变量列没有缺失或非数字值。
  • 在第一个和最后一个日期戳之间不要包含日期戳的间隔/跳跃(对于给定的频率)。预测函数不会填补缺失的日期。
  • 日期戳列的格式应该可以被Pandas读取(有关更多详细信息,请参见此链接)。

下一步,使用SDK的forecast方法预测接下来的12个月。设置以下参数:

  • df:包含时间序列数据的pandas dataframe。
  • h:要预测的步数。
  • freq:时间序列的频率,使用Pandas格式。参见pandas可用的频率。
  • time_col:标识日期时间戳列的列。
  • target_col:我们想要预测的变量。
# 使用timegpt库中的forecast函数对数据进行预测
# 参数说明:
# - df: 待预测的数据框
# - h: 预测的时间步数
# - freq: 预测的时间频率
# - time_col: 时间列的列名
# - target_col: 目标列的列名
timegpt_fcst_df = timegpt.forecast(df=df, h=12, freq='MS', time_col='timestamp', target_col='value')# 打印预测结果的前几行
timegpt_fcst_df.head()
INFO:nixtlats.timegpt:Validating inputs...
INFO:nixtlats.timegpt:Preprocessing dataframes...
INFO:nixtlats.timegpt:Calling Forecast Endpoint...
timestampTimeGPT
01961-01-01437.837952
11961-02-01426.062744
21961-03-01463.116577
31961-04-01478.244507
41961-05-01505.646484

# 导入必要的库
import timegpt# 使用timegpt库中的plot函数绘制图表
# 参数df为原始数据集,timegpt_fcst_df为预测数据集
# time_col参数指定时间列的名称为'timestamp'
# target_col参数指定目标列的名称为'value'
timegpt.plot(df, timegpt_fcst_df, time_col='timestamp', target_col='value')

您还可以通过增加时间范围参数来生成更长的预测。例如,让我们预测接下来的36个月:

# 使用timegpt模块中的forecast函数对数据进行预测
# 参数df表示输入的数据框
# 参数h表示预测的时间步数
# 参数time_col表示时间列的名称
# 参数target_col表示目标列的名称
# 参数freq表示数据的频率
timegpt_fcst_df = timegpt.forecast(df=df, h=36, time_col='timestamp', target_col='value', freq='MS')# 打印预测结果的前几行
timegpt_fcst_df.head()
INFO:nixtlats.timegpt:Validating inputs...
INFO:nixtlats.timegpt:Preprocessing dataframes...
WARNING:nixtlats.timegpt:The specified horizon "h" exceeds the model horizon. This may lead to less accurate forecasts. Please consider using a smaller horizon.
INFO:nixtlats.timegpt:Calling Forecast Endpoint...
timestampTimeGPT
01961-01-01437.837952
11961-02-01426.062744
21961-03-01463.116577
31961-04-01478.244507
41961-05-01505.646484
# 使用timegpt模块中的plot函数来绘制图表
# 参数df是原始数据,timegpt_fcst_df是预测数据
# time_col指定时间列的名称,target_col指定目标列的名称
timegpt.plot(df, timegpt_fcst_df, time_col='timestamp', target_col='value')

或者一个更短的:

# 使用timegpt模块的forecast函数对数据进行预测
# 参数df表示输入的数据框
# 参数h表示预测的时间步长
# 参数time_col表示时间列的名称
# 参数target_col表示目标列的名称
# 参数freq表示数据的频率
timegpt_fcst_df = timegpt.forecast(df=df, h=6, time_col='timestamp', target_col='value', freq='MS')# 使用timegpt模块的plot函数绘制原始数据和预测数据的图形
# 参数df表示原始数据框
# 参数timegpt_fcst_df表示预测数据框
# 参数time_col表示时间列的名称
# 参数target_col表示目标列的名称
timegpt.plot(df, timegpt_fcst_df, time_col='timestamp', target_col='value')
INFO:nixtlats.timegpt:Validating inputs...
INFO:nixtlats.timegpt:Preprocessing dataframes...
INFO:nixtlats.timegpt:Calling Forecast Endpoint...

TimeGPT-1目前针对短期预测进行了优化。虽然forecast方法可以允许任何正数和大的预测范围,但预测的准确性可能会降低。我们目前正在努力提高对长期预测的准确性。

使用DateTime索引推断频率。

freq参数表示连续数据点之间的时间单位,特别关键。幸运的是,您可以将具有DateTime索引的DataFrame传递给预测方法,确保您的时间序列数据配备了必要的时间特征。通过将适当的freq参数分配给DataFrame的DateTime索引,您可以向模型提供有关观测之间一致间隔的信息,无论是天(‘D’)、月(‘M’)还是其他适当的频率。

# 将DataFrame的索引设置为'timestamp'列
df_time_index = df.set_index('timestamp')# 将索引转换为DatetimeIndex对象,并设置频率为'MS'(月初)
df_time_index.index = pd.DatetimeIndex(df_time_index.index, freq='MS')# 使用timegpt模型对DataFrame进行预测,预测未来36个时间点的值
# 预测使用的数据为df,时间列为'timestamp',目标列为'value'
forecast_result = timegpt.forecast(df=df, h=36, time_col='timestamp', target_col='value')
INFO:nixtlats.timegpt:Validating inputs...
INFO:nixtlats.timegpt:Preprocessing dataframes...
INFO:nixtlats.timegpt:Inferred freq: MS
WARNING:nixtlats.timegpt:The specified horizon "h" exceeds the model horizon. This may lead to less accurate forecasts. Please consider using a smaller horizon.
INFO:nixtlats.timegpt:Calling Forecast Endpoint...
timestampTimeGPT
01961-01-01437.837952
11961-02-01426.062744
21961-03-01463.116577
31961-04-01478.244507
41961-05-01505.646484

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu磁盘管理常用命令

写的不全,后面随时修改。 Linux 磁盘管理常用三个命令为 df、du 和 fdisk。 df(英文全称:disk free):列出文件系统的整体磁盘未使用量du(英文全称:disk used):检查磁盘空…

如何避免卡尔曼滤波器的发散? Q P R参数怎么调?

文章目录 1.什么是发散2.发散的原因3.解决方法4.参数意义及调试方法5.工程经验(1)抑制P矩阵发散(2)抑制K矩阵发散1.什么是发散 当滤波的实际误差远远超过滤波误差的允许范围,甚至于趋向无穷大,使得滤波器推动作用,这种现象叫做滤波的发散。 2.发散的原因 (1)系统的…

【PID精讲12】基于MATLAB和Simulink的仿真教程

文章目录 写在前面一、基于Simulink的仿真1. 新建Simulink模型2. 保存Simulink模型3. 建模4. 运行二、基于MATLAB的仿真1. 编码2. 运行3. 调整曲线格式4. 导出图窗写在前面 第11讲介绍的连续系统的数字PID仿真是基于 Matlab的 M 语言实现的,对于初学者或者工程应用人员来说,…

Bytebase:统一数据库 CI/CD 解决方案 | 开源日报 No.128

bytebase/bytebase Stars: 7.9k License: NOASSERTION Bytebase 是一个数据库 CI/CD 解决方案,为开发人员和 DBA 提供统一的工具来管理不同数据库系统的开发生命周期。其主要功能包括标准化操作流程、SQL 代码审查、GitOps 集成以及数据访问控制等。关键特性和核心…

关于edge浏览器以及插件推荐

目录 广告拦截和隐私工具 密码管理器 生产力和组织工具 写作和语法工具 购物助手 娱乐和个性化 安全性和VPN 开发者工具 其他实用工具 Microsoft Edge 是一款基于Chromium开源项目的现代网络浏览器,由微软开发。它是Internet Explorer的继任者,…

QT 输入框输入限制 正则表达式限制 整理

在使用 输入数值时,经常遇到限制其范围的需要,比如角太阳高度角范围为[-90,90],经度值范围[-180,180],方位角范围[0,360]。Qt提供了QIntValidator和QDoubleValidator可以限定数值输入范围,如使用QIntValidator限制整数…

TypeScript学习笔记归纳(先做基础梳理,后期不断丰满,持续更新ing)

文章目录 前言 二、TypeScript的优势体现在哪里? 1、执行时间上的区别 2、基础数据类型区别 3、TS优势 三、TypeScript的关键特性 四、TypeScript的类型系统 1、什么是类型注释? 2、类型系统核心 - 常用类型 1) 基本类型&#xff0…

计网03-数据的封装和解封装

数据封装和解封装的过程 实例:有两台电脑 PC1和PC2,PC1要给PC2发送一个文本文件 1、数据的封装过程: 应用层:将原始数据转换成计算机能识别的二进制数传输层:在传输层是有固定的传…

智能,轻量,高效的爬虫工具 (爬虫宝第一代), HSpider

场景 之前玩爬虫宝一时爽,但是我很快发现了一个致命的问题。就是chat3.5 有时候误判,Claude2 是遇到大一点的html就无法解析,chat4 Api没有申请下来,chat3.5 误判这个可以纠正,但是每次爬取花费的钱都是2刀以上&#…

springboot 查询

ServiceImpl中 getBaseMapper()的使用 public IPage<ProductPageVO> getProductPage(Integer regionOrCityCode, Integer brandId, LocalDate usedDate, Page<ProductPageVO> page) {return getBaseMapper().getProductPage(regionOrCityCode, brandId, usedDate, …

为什么说依赖抽象就变得更加灵活呢?举例

说依赖抽象变得更加灵活的主要原因在于它提供了更大的替换和扩展的空间。让我们通过一个简单的例子来说明&#xff1a; 考虑一个电商系统&#xff0c;其中有一个OrderProcessor类负责处理订单&#xff0c;它依赖于一个PaymentGateway用于处理支付。最初的设计可能如下所示&…

MacOS安装PHP5.6的Redis扩展

更多版本下载地址&#xff1a;https://pecl.php.net/package/redis 安装步骤 wget http://pecl.php.net/get/redis-2.2.7.tgztar -zxvf redis-2.2.7.tgzcd redis-2.2.7phpize./configure --with-php-config/usr/local//php/5.6.40/bin/php-configmake && make instal…

LabVIEW进行激光斑点图像处理与分析

LabVIEW进行激光斑点图像处理与分析 近年来&#xff0c;激光技术的应用日益繁荣。激光光斑的质量评估和分析技术决定了应用效果&#xff0c;对机器视觉、武器装备、光学测量和医疗设备产生深远影响。就具体用途和技术而言&#xff0c;激光光斑的采集和处理至关重要。即插即用的…

前端-部署配置前端项目时,关于env.development、env.production以及nginx.conf的关系

今天要打包前端项目生产镜像部署&#xff0c;学习到了关于env.development、env.production以及nginx.conf的关系 env.development 首先是env.development&#xff0c;这里面主要放的是我们本地开发时的代理服务器&#xff08;需要代理来解决跨域问题的话&#xff09; env.p…

渗透测试 | php的webshell绕过方法总结

目录 1.php的异或运算 2.通过获取注释去绕过 3.利用字符的运算符​​​​​​​ 4.通过end函数代替[] 5.通过常量去绕过 6.字符串拼接双美元符 7.通过函数定义绕过 8.通过类定义&#xff0c;然后传参分割 9.多传参方式绕过​​​​​​​ 10.通过get_defined_function…

离散傅立叶变换和线性变换的关系:什么是线性空间?

离散傅立叶变换和线性变换的关系&#xff1a;什么是线性空间&#xff1f; 本篇博客是在学习线性空间知识的时候联想到的&#xff0c;通过分析DFT背后的数学原理&#xff0c;以便更好地理解什么是线性空间、什么是线性变换。 1、离散傅立叶变换&#xff08;DFT&#xff09;和F…

使用Maven Archetype插件制作项目脚手架(一)

Archetype是一个Maven项目模板工具包。通过Archetype我们可以快速搭建Maven项目。比如我们在ide里面创建项目时&#xff0c;可以选择很多maven内置的Archetype&#xff0c;我们最常用的可能是maven-archetype-quickstart 当然maven提供了能力&#xff0c;让我们自定义项目结构&…

Mac[M1]安装mongodb

要在Mac&#xff08;M1芯片&#xff09;上安装MongoDB&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开终端&#xff1a;你可以在“应用程序”文件夹中找到“终端”应用程序&#xff0c;或者使用Spotlight搜索并打开它。安装Homebrew&#xff1a;在终端中运行以下命令安…

帮我超越技术壁垒的“泰斗”服务--Amazon ElastiCache

前言 作为开发者&#xff0c;外加上云服务的使用者&#xff0c;对于借助云服务来提升日常开发中的效率是一个非常关键且重要的事情。在日常实际开发中&#xff0c;关于缓存服务领域想必作为开发者应该都不陌生&#xff0c;比如常用到的 Redis 就是缓存服务之一。对于互联网领域…

使用ffmpeg实现视频旋转并保持清晰度不变

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg -i source.mp4 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-…