NixtlaClient

 NixtlaClient (api_key:Optional[str]=None, base_url:Optional[str]=None,
               timeout:Optional[int]=60, max_retries:int=6,
               retry_interval:int=10, max_wait_time:int=360)

与 Nixtla API 交互的客户端。

类型默认值详情
api_key可选用于与 Nixtla API 交互的授权 api_key。
如果未提供,将使用 NIXTLA_API_KEY 环境变量。
base_url可选自定义 base_url。
如果未提供,将使用 NIXTLA_BASE_URL 环境变量。
超时可选60请求超时时间(秒)。设置为 None 可禁用。
最大重试次数int6在放弃之前调用 API 的最大尝试次数。
它定义了客户端在 API 调用失败时将重试的次数。
默认值为 6,表示客户端总共将尝试调用 API 最多 6 次
重试间隔int10连续重试尝试之间的间隔(秒)。
这是客户端在失败尝试后再次尝试调用 API 之前的等待期。
默认值为 10 秒,表示客户端在重试之间等待 10 秒。
最大等待时间int360客户端在放弃之前所有重试尝试花费的最大总时间(秒)。
这为所有重试尝试的累计等待时间设置了上限。
如果超过此时间,客户端将停止重试并抛出异常。
默认值为 360 秒,表示如果总时间超过 360 秒,客户端将停止重试。
花费在重试上的时间超过 360 秒。
客户端在 60 秒不活动后会抛出 ReadTimeout 错误。如果您想捕获这些错误,请将
max_wait_time 设置得远大于 60。

NixtlaClient.validate_api_key

 NixtlaClient.validate_api_key (log:bool=True)

检查 API 密钥状态。

类型默认值详情
logboolTrue显示端点的响应。
返回值boolAPI 密钥是否有效。

NixtlaClient.forecast

 NixtlaClient.forecast (df:~AnyDFType, h:typing.Annotated[int,Gt(gt=0)],
                        freq:Union[str,int,pandas._libs.tslibs.offsets.Bas
                        eOffset,NoneType]=None, id_col:str='unique_id',
                        time_col:str='ds', target_col:str='y',
                        X_df:Optional[~AnyDFType]=None,
                        level:Optional[list[Union[int,float]]]=None,
                        quantiles:Optional[list[float]]=None,
                        finetune_steps:typing.Annotated[int,Ge(ge=0)]=0,
                        finetune_depth:Literal[1,2,3,4,5]=1, finetune_loss
                        :Literal['default','mae','mse','rmse','mape','smap
                        e']='default',
                        finetuned_model_id:Optional[str]=None,
                        clean_ex_first:bool=True,
                        hist_exog_list:Optional[list[str]]=None,
                        validate_api_key:bool=False,
                        add_history:bool=False, date_features:Union[bool,l
                        ist[Union[str,Callable]]]=False, date_features_to_
                        one_hot:Union[bool,list[str]]=False, model:Literal
                        ['azureai','timegpt-1','timegpt-1-long-
                        horizon']='timegpt-1', num_partitions:Optional[Ann
                        otated[int,Gt(gt=0)]]=None,
                        feature_contributions:bool=False)

使用 TimeGPT 预测您的时间序列。

类型默认值详情
dfAnyDFType函数将操作的 DataFrame。预期至少包含以下列:
- time_col
df 中包含时间序列时间索引的列名。这通常是一个日期时间
列,具有规律的间隔,例如每小时、每日、每月的数据点。
- target_col
df 中包含时间序列目标变量的列名,即我们
希望预测或分析的变量。
此外,您可以传入多个时间序列(堆叠在 dataframe 中),考虑使用一个附加列:
- id_col
df 中标识唯一时间序列的列名。此列中的每个唯一值
对应一个唯一的时间序列。
hAnnotated预测范围。
freqUnion时间戳的频率。如果为 None,将自动推断。
参见 pandas 可用的频率列表
id_colstrunique_id标识每个时间序列的列。
time_colstrds标识每个时间步的列,其值可以是时间戳或整数。
target_colstry包含目标变量的列。
X_df可选包含 [unique_id, ds] 列和 df 未来外生变量的 DataFrame。
level可选用于预测区间的置信水平,介于 0 到 100 之间。
quantiles可选要预测的分位数,列表,介于 (0, 1) 之间。
levelquantiles 不应同时使用。
输出 dataframe 将包含分位数列,
每个 q 的格式为 TimeGPT-q-(100 * q)。
100 * q 表示百分位数,但我们选择这种表示法
以避免列名中出现点号。
finetune_stepsAnnotated0用于在新数据上微调 TimeGPT 学习的步数。
新数据。
finetune_depthLiteral1微调的深度。使用 1 到 5 的范围,其中 1 表示微调程度较低,
5 表示整个模型都进行了微调。
finetune_lossLiteraldefault用于微调的损失函数。选项包括:default, mae, mse, rmse, mape, 和 smape
finetuned_model_id可选要使用的先前微调模型的 ID。
clean_ex_firstboolTrue在使用 TimeGPT 进行预测之前清理外生信号。
hist_exog_list可选历史外生特征的列名。
validate_api_keyboolFalse如果为 True,在发送请求前验证 api_key。
add_historyboolFalse返回模型的拟合值。
date_featuresUnionFalse从日期计算出的特征。
可以是 pandas 日期属性,或以日期为输入的函数。
如果为 True,将自动添加 df 频率下最常用的日期特征。
df 的频率。
date_features_to_one_hotUnionFalse对这些日期特征应用独热编码。
如果 date_features=True,则所有日期特征将
默认进行独热编码。
modelLiteraltimegpt-1要使用的模型(字符串)。选项包括:timegpt-1timegpt-1-long-horizon
如果希望预测超出数据频率一个季节性
周期以上的时间,我们建议使用 timegpt-1-long-horizon 进行预测。
根据您的数据频率确定的周期。
num_partitions可选使用的分区数量。
如果为 None,分区数量将等于
分布式环境中可用的并行资源。
feature_contributionsboolFalse
返回值AnyDFType包含 TimeGPT 点预测和概率预测(如果 level 不为 None)的 DataFrame
预测 (如果 level 不为 None)。

NixtlaClient.cross_validation

 NixtlaClient.cross_validation (df:~AnyDFType,
                                h:typing.Annotated[int,Gt(gt=0)], freq:Uni
                                on[str,int,pandas._libs.tslibs.offsets.Bas
                                eOffset,NoneType]=None,
                                id_col:str='unique_id', time_col:str='ds',
                                target_col:str='y', level:Optional[list[Un
                                ion[int,float]]]=None,
                                quantiles:Optional[list[float]]=None,
                                validate_api_key:bool=False, n_windows:typ
                                ing.Annotated[int,Gt(gt=0)]=1, step_size:O
                                ptional[Annotated[int,Gt(gt=0)]]=None, fin
                                etune_steps:typing.Annotated[int,Ge(ge=0)]
                                =0, finetune_depth:Literal[1,2,3,4,5]=1, f
                                inetune_loss:Literal['default','mae','mse'
                                ,'rmse','mape','smape']='default',
                                finetuned_model_id:Optional[str]=None,
                                refit:bool=True, clean_ex_first:bool=True,
                                hist_exog_list:Optional[list[str]]=None,
                                date_features:Union[bool,list[str]]=False,
                                date_features_to_one_hot:Union[bool,list[s
                                tr]]=False, model:Literal['azureai','timeg
                                pt-1','timegpt-1-long-
                                horizon']='timegpt-1', num_partitions:Opti
                                onal[Annotated[int,Gt(gt=0)]]=None)

使用 TimeGPT 对您的时间序列执行交叉验证。

类型默认值详情
dfAnyDFType函数将操作的 DataFrame。预期至少包含以下列:
- time_col
df 中包含时间序列时间索引的列名。这通常是一个日期时间
列,具有规律的间隔,例如每小时、每日、每月的数据点。
- target_col
df 中包含时间序列目标变量的列名,即我们
希望预测或分析的变量。
此外,您可以传入多个时间序列(堆叠在 dataframe 中),考虑使用一个附加列:
- id_col
df 中标识唯一时间序列的列名。此列中的每个唯一值
对应一个唯一的时间序列。
hAnnotated预测范围。
freqUnion时间戳的频率。如果为 None,将自动推断。
参见 pandas 可用的频率列表
id_colstrunique_id标识每个时间序列的列。
time_colstrds标识每个时间步的列,其值可以是时间戳或整数。
target_colstry包含目标变量的列。
level可选用于预测区间的置信水平,介于 0 到 100 之间。
quantiles可选要预测的分位数,列表,介于 (0, 1) 之间。
levelquantiles 不应同时使用。
输出 dataframe 将包含分位数列,
每个 q 的格式为 TimeGPT-q-(100 * q)。
100 * q 表示百分位数,但我们选择这种表示法
以避免列名中出现点号。
validate_api_keyboolFalse如果为 True,在发送请求前验证 api_key。
n_windowsAnnotated1要评估的窗口数量。
step_size可选每个交叉验证窗口之间的步长。如果为 None,将等于 h
finetune_stepsAnnotated0用于微调 TimeGPT 的步数,用于
新数据。
finetune_depthLiteral1微调的深度。使用 1 到 5 的范围,其中 1 表示微调程度较低,
5 表示整个模型都进行了微调。
finetune_lossLiteraldefault用于微调的损失函数。选项包括:default, mae, mse, rmse, mape, 和 smape
finetuned_model_id可选要使用的先前微调模型的 ID。
refitboolTrue在每个窗口中微调模型。如果为 False,仅在第一个窗口中进行微调。
仅当 finetune_steps > 0 时使用。
clean_ex_firstboolTrue在使用 TimeGPT 进行预测之前清理外生信号。
hist_exog_list可选历史外生特征的列名。
date_featuresUnionFalse从日期计算出的特征。
可以是 pandas 日期属性,或以日期为输入的函数。
如果为 True,将自动添加 df 频率下最常用的日期特征。
df 的频率。
date_features_to_one_hotUnionFalse对这些日期特征应用独热编码。
如果 date_features=True,则所有日期特征将
默认进行独热编码。
modelLiteraltimegpt-1要使用的模型(字符串)。选项包括:timegpt-1timegpt-1-long-horizon
如果希望预测超出数据频率一个季节性
周期以上的时间,我们建议使用 timegpt-1-long-horizon 进行预测。
根据您的数据频率确定的周期。
num_partitions可选使用的分区数量。
如果为 None,分区数量将等于
分布式环境中可用的并行资源。
返回值AnyDFType包含交叉验证预测结果的 DataFrame。

NixtlaClient.detect_anomalies

 NixtlaClient.detect_anomalies (df:~AnyDFType,
                                freq:Union[str,int,pandas._libs.tslibs.off
                                sets.BaseOffset,NoneType]=None,
                                id_col:str='unique_id', time_col:str='ds',
                                target_col:str='y',
                                level:Union[int,float]=99,
                                finetuned_model_id:Optional[str]=None,
                                clean_ex_first:bool=True,
                                validate_api_key:bool=False,
                                date_features:Union[bool,list[str]]=False,
                                date_features_to_one_hot:Union[bool,list[s
                                tr]]=False, model:Literal['azureai','timeg
                                pt-1','timegpt-1-long-
                                horizon']='timegpt-1', num_partitions:Opti
                                onal[Annotated[int,Gt(gt=0)]]=None)

使用 TimeGPT 检测您的时间序列中的异常。

类型默认值详情
dfAnyDFType函数将操作的 DataFrame。预期至少包含以下列:
- time_col
df 中包含时间序列时间索引的列名。这通常是一个日期时间
列,具有规律的间隔,例如每小时、每日、每月的数据点。
- target_col
df 中包含时间序列目标变量的列名,即我们
希望预测或分析的变量。
此外,您可以传入多个时间序列(堆叠在 dataframe 中),考虑使用一个附加列:
- id_col
df 中标识唯一时间序列的列名。此列中的每个唯一值
对应一个唯一的时间序列。
freqUnion时间戳的频率。如果为 None,将自动推断。
参见 pandas 可用的频率列表
id_colstrunique_id标识每个时间序列的列。
time_colstrds标识每个时间步的列,其值可以是时间戳或整数。
target_colstry包含目标变量的列。
levelUnion99用于检测异常的置信水平,介于 0 到 100 之间。
finetuned_model_id可选要使用的先前微调模型的 ID。
clean_ex_firstboolTrue在使用 TimeGPT 进行预测之前清理外生信号。
使用 TimeGPT。
validate_api_keyboolFalse如果为 True,在发送请求前验证 api_key。
date_featuresUnionFalse从日期计算出的特征。
可以是 pandas 日期属性,或以日期为输入的函数。
如果为 True,将自动添加 df 频率下最常用的日期特征。
df 的频率。
date_features_to_one_hotUnionFalse对这些日期特征应用独热编码。
如果 date_features=True,则所有日期特征将
默认进行独热编码。
modelLiteraltimegpt-1要使用的模型(字符串)。选项包括:timegpt-1timegpt-1-long-horizon
如果希望预测超出数据频率一个季节性
周期以上的时间,我们建议使用 timegpt-1-long-horizon 进行预测。
根据您的数据频率确定的周期。
num_partitions可选使用的分区数量。
如果为 None,分区数量将等于
分布式环境中可用的并行资源。
返回值AnyDFType包含 TimeGPT 标记的异常的 DataFrame。

NixtlaClient.usage

 NixtlaClient.usage ()

查询已消耗的请求数和限制


NixtlaClient.finetune

 NixtlaClient.finetune
                        (df:Union[pandas.core.frame.DataFrame,polars.dataf
                        rame.frame.DataFrame], freq:Union[str,int,pandas._
                        libs.tslibs.offsets.BaseOffset,NoneType]=None,
                        id_col:str='unique_id', time_col:str='ds',
                        target_col:str='y',
                        finetune_steps:typing.Annotated[int,Ge(ge=0)]=10,
                        finetune_depth:Literal[1,2,3,4,5]=1, finetune_loss
                        :Literal['default','mae','mse','rmse','mape','smap
                        e']='default', output_model_id:Optional[str]=None,
                        finetuned_model_id:Optional[str]=None, model:Liter
                        al['azureai','timegpt-1','timegpt-1-long-
                        horizon']='timegpt-1')

将 TimeGPT 微调到您的时间序列。

类型默认值详情
dfUnion函数将操作的 DataFrame。预期至少包含以下列:
- time_col
df 中包含时间序列时间索引的列名。这通常是一个日期时间
列,具有规律的间隔,例如每小时、每日、每月的数据点。
- target_col
df 中包含时间序列目标变量的列名,即我们
希望预测或分析的变量。
此外,您可以传入多个时间序列(堆叠在 dataframe 中),考虑使用一个附加列:
- id_col
df 中标识唯一时间序列的列名。此列中的每个唯一值
对应一个唯一的时间序列。
freqUnion时间戳的频率。如果为 None,将自动推断。
参见 pandas 可用的频率列表
id_colstrunique_id标识每个时间序列的列。
time_colstrds标识每个时间步的列,其值可以是时间戳或整数。
target_colstry包含目标变量的列。
finetune_stepsAnnotated10用于在新数据上微调 TimeGPT 学习的步数。
finetune_depthLiteral1微调的深度。使用 1 到 5 的范围,其中 1 表示微调程度较低,
5 表示整个模型都进行了微调。
finetune_lossLiteraldefault用于微调的损失函数。选项包括:default, mae, mse, rmse, mape, 和 smape
output_model_id可选要分配给微调模型的 ID。如果为 None,则使用 UUID。
finetuned_model_id可选用作基础的先前微调模型的 ID。
modelLiteraltimegpt-1要使用的模型(字符串)。选项包括:timegpt-1timegpt-1-long-horizon
如果希望预测超出数据频率一个季节性
周期以上的时间,我们建议使用 timegpt-1-long-horizon 进行预测。
根据您的数据频率确定的周期。
返回值str微调模型的 ID

NixtlaClient.finetuned_models

 NixtlaClient.finetuned_models (as_df:bool=False)

列出微调模型

类型默认值详情
as_dfboolFalse将微调模型作为 pandas dataframe 返回
返回值Union可用微调模型的列表。

NixtlaClient.finetuned_model

 NixtlaClient.finetuned_model (finetuned_model_id:str)

获取微调模型的元数据

类型详情
finetuned_model_idstr要获取元数据的微调模型的 ID。
返回值FinetunedModel微调模型的元数据。

NixtlaClient.delete_finetuned_model

 NixtlaClient.delete_finetuned_model (finetuned_model_id:str)

删除先前微调的模型

类型详情
finetuned_model_idstr要删除的微调模型的 ID。
返回值bool删除是否成功。

NixtlaClient.plot

 NixtlaClient.plot (df:Union[pandas.core.frame.DataFrame,polars.dataframe.
                    frame.DataFrame,NoneType]=None, forecasts_df:Union[pan
                    das.core.frame.DataFrame,polars.dataframe.frame.DataFr
                    ame,NoneType]=None, id_col:str='unique_id',
                    time_col:str='ds', target_col:str='y', unique_ids:Unio
                    n[list[str],NoneType,numpy.ndarray]=None,
                    plot_random:bool=True, max_ids:int=8,
                    models:Optional[list[str]]=None,
                    level:Optional[list[Union[int,float]]]=None,
                    max_insample_length:Optional[int]=None,
                    plot_anomalies:bool=False,
                    engine:Literal['matplotlib','plotly','plotly-
                    resampler']='matplotlib',
                    resampler_kwargs:Optional[dict]=None, ax:Union[Forward
                    Ref('plt.Axes'),numpy.ndarray,ForwardRef('plotly.graph
                    _objects.Figure'),NoneType]=None)

绘制预测值和样本内值。

类型默认值详情
dfUnion函数将操作的 DataFrame。预期至少包含以下列:
- time_col
df 中包含时间序列时间索引的列名。这通常是一个日期时间
列,具有规律的间隔,例如每小时、每日、每月的数据点。
- target_col
df 中包含时间序列目标变量的列名,即我们
希望预测或分析的变量。
此外,您可以传入多个时间序列(堆叠在 dataframe 中),考虑使用一个附加列:
- id_col
df 中标识唯一时间序列的列名。此列中的每个唯一值
对应一个唯一的时间序列。
forecasts_dfUnion包含 [unique_id, ds] 列和模型的 DataFrame。
id_colstrunique_id标识每个时间序列的列。
time_colstrds标识每个时间步的列,其值可以是时间戳或整数。
target_colstry包含目标变量的列。
unique_idsUnion要绘制的时间序列。
如果为 None,时间序列将随机选择。
plot_randomboolTrue随机选择要绘制的时间序列。
max_idsint8要绘制的最大 ID 数量。
models可选要绘制的模型列表。
level可选如果传入,要绘制的预测区间列表。
max_insample_length可选要绘制的最大训练/样本内观测值数量。
plot_anomaliesboolFalse为每个预测区间绘制异常。
engineLiteralmatplotlib用于绘图的库。'matplotlib'、'plotly' 或 'plotly-resampler'。
resampler_kwargs可选要传递给 plotly-resampler 构造函数的 Kwargs。
如需进一步自定义 (“show_dash”),请调用该方法,
存储绘图对象并将额外参数添加到
show_dash 方法中。
axUnion将添加绘图的对象。