工具系列: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.html
  from 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.io





True

现在您可以开始进行预测了!让我们导入一个经典的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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊云科技 re:Invent 大会 - ElastiCache Serverless 模式来袭

大会介绍 亚马逊云科技的 re:Invent 大会是一年一度的,面向全球技术开发者科技盛会。几乎每次都会发布云科技、云计算等相关领域的产品重磅更新,不但将时下主流热门的技术不断整合,也未将来的发展标明了方向。 亚马逊云科技开发者社区为开发…

安卓系统和鸿蒙系统,哪个更适合老人使用

安卓系统和鸿蒙系统各有优势,但总体来说,鸿蒙系统可能更适合老人使用。以下是几个原因: 1.易用性: 鸿蒙系统针对老年人的使用习惯和需求进行了优化设计。它采用了更加直观、简洁的界面设计,降低复杂度并提升操作效率。…

Vue在页面上添加水印

第一步:在自己的项目里创建一个js文件;如图所示我在在watermark文件中创建了一个名为waterMark.js文件。 waterMark.js /** 水印添加方法 */ let setWatermark (str1, str2) > {let id 1.23452384164.123412415if (document.getElementById(id) …

为什么深度学习神经网络可以学习任何东西

下图你所看到的,是著名的曼德尔布罗特集,我们可以见证这个集合呈现出的复杂形态: 要理解神经网络如何学习曼德尔布罗特集,我们首先需要从最基础的数学概念讲起:什么是函数?函数本质上是一个将输入转化为输出…

AR智慧校园三维主电子沙盘系统研究及应用

一 、概述 易图讯科技(www.3dgis.top)自主研发的智慧校园三维主电子沙盘系统,采用B/S架构模式,采用自主可控高性能WebGIS可视化引擎,支持多用户客户端通过网络请求访问服务器地图和专题数据,提供地理信息数据、专题数据的并发访问…

问题解决 | Ubuntu重启无法进入系统

Ubuntu18.04重启无法进入系统,重开后如图 一直在加载系统内核4.15.0-213-generic,无法加载 错误原因 原本的系统是Ubuntu16.04,使用命令升级到Ubuntu18.04版本,升级重启后,远程无法连接! 错误解决 第一步:进入GRUB…

java爬虫(jsoup)如何设置HTTP代理ip爬数据

目录 前言 什么是HTTP代理IP 使用Jsoup设置HTTP代理IP的步骤 1. 导入Jsoup依赖 2. 创建HttpProxy类 3. 设置代理服务器 4. 使用Jsoup进行爬取 结论 前言 在Java中使用Jsoup进行网络爬虫操作时,有时需要使用HTTP代理IP来爬取数据。本文将介绍如何使用Jsoup设…

2023年9月25日,开启华为鸿蒙应用开发新纪元!!!

鸿蒙!鸿蒙!鸿蒙! 要说2023年IT圈最火爆的名词,一定是鸿蒙! 2023年9月25日,华为发布会正式宣布2024年第一季度将推出HarmonyOS NEXT版本,这意味着鸿蒙原生应用开发将彻底摆脱Android手机系统&a…

实现阿里云oos云存储,简单几步

一、前言 虽然平常学习用的不多&#xff0c;但是用的时候再去找官方文档&#xff0c;也很繁琐&#xff0c;不如直接整理以下&#xff0c;方便粘贴复制&#xff0c;本文介绍两种图片上传方式①普通上传②服务端签名直传 1.普通上传 加载maven依赖 <dependency><grou…

【PHP】发送HTTP请求时参数快速组装

1.POST、GET参数组装 利用compact、http_build_query函数 // post的数组体$a 1;$b 2;$c $a $b;$array compact(a,b,c); // 组合请求参数print_r($array);// get的url组装$paramsStr http_build_query($array);print_r($paramsStr); 打印结果 2.一个请求示例 使用guzzle …

设计模式-依赖注入模式

设计模式专栏 模式介绍模式特点应用场景依赖注入和控制反转的区别代码示例Java实现依赖注入模式Python实现依赖注入模式 依赖注入模式在spring中的应用 模式介绍 依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&#xff09;是一种面向对象编程中的设计模式&…

【宇宙猜想】AR文创入驻今日美术馆、北京天文馆等众多展馆,在AR互动中感受科技魅力!

近日&#xff0c;由「宇宙猜想」推出的AR系列文创产品先后入驻今日美术馆、北京天文馆、国家自然博物馆、上海天文馆、国家海洋馆、中华手工展馆等各大馆场并与其展开相关合作。 「宇宙猜想」致力于创造虚拟空间价值&#xff0c;用AR技术与文创产品碰撞出新的火花&#xff0c;为…

【星海随笔】网络运维

[rootlocalhost ~]# source admin-openrcRabbitMQ 工作机理 1.客户端连接到消息队列服务器&#xff0c;打开一个channel。 2.客户端声明一个exchange&#xff0c;并设置相关属性。 3.客户端声明一个queue&#xff0c;并设置相关属性。 4.客户端使用routing key&#xff0c;在ex…

初识k8s

k8s: kubernetes:八个字母省略&#xff0c;就是k8s 自动部署&#xff0c;自动扩展和管理容器化部署的应用程序的一个开源系统 k8s是负责自动化运维管理多个容器化程序的集群&#xff0c;是一个功能强大得容器编排工具 分布式和集群化的方式进行容器管理 市面上常用的版本&…

HTTP小记2

目录 HTTP/1.1优化 QUIC协议 路由器 RTT&#xff08;Round-Trip Time&#xff09; 计算机网络体系结构 体系结构各层在整个过程中的作用 HTTP/1.1优化 1.通过缓存技术来避免/减少发送HTTP请求 2.减少HTTP请求的次数 将原本由客户端处理的重定向请求&#xff0c;交给代理…

alertmanage调用企业微信告警(k8s内部署)

一、前言 alertmanage调用企业微信应用告警会比直接使用钉钉告警更麻烦一点&#xff0c;调用企业微信应用告警需要在应用内配置企业可信ip&#xff0c;不然调用企业微信接口就会报错&#xff0c;提示ip地址有风险 二、部署 先自行创建企业微信&#xff0c;再使用管理后台创建应…

机器视觉实战应用:手势、人脸、动作以及手势鼠标构建(一)

CV实战应用手势、人脸、动作以及手势鼠标构建&#xff08;一&#xff09;总起 核心思想 手势识别是一种常见的计算机视觉应用&#xff0c;它可以通过摄像头或者预先录制的视频图像来追踪和识别人类手势。手势识别的应用非常广泛&#xff0c;例如在游戏、虚拟现实、人机交互等…

RuoYi-Cloud集成DataRoom大屏设计器

基于RuoYi-Cloud 3.6.3 版本集成 先贴一下开源地址: https://gitee.com/wxjstudy/jove-fast DataRoom开源地址: https://gitee.com/gcpaas/DataRoom 后端 新建modules 启动类 增加注解扫描,以及配置分页插件 import com.baomidou.mybatisplus.extension.plugins.MybatisPlu…

Leetcode—54.螺旋矩阵【中等】

2023每日刷题&#xff08;七十&#xff09; Leetcode—54.螺旋矩阵 实现代码 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> ans;int m matrix.size();int n matrix[0].size();int row 0, col…

虚拟环境和Pycharm中均有transforms仍报ModuleNotFoundError:No module named ‘transformers‘

问题&#xff1a;运行新模型&#xff0c;配置了新环境&#xff0c;下载了包后&#xff0c;仍然报ModuleNotFoundError&#xff1a;No module named transformers 错误。 查看Pycharm解释器&#xff1a; 没问题&#xff01;&#xff01;&#xff01;&#xff1f; 命令行查看虚…