时序预测回归零样本直推
功能介绍
使用行业大规模时序数据进行预训练,获得能够捕捉时序特征的预置模型。在推理阶段,该预置模型根据输入的历史时序特征,对未来时序进行预测,最多支持1024个时间点的预测。
直推模式支持:
- 单目标推理:支持单变量时序预测。
- 多目标推理:支持多变量时序预测。
- 历史与未来协变量推理:支持协变量输入的时序预测。协变量分为两类:当前信息不可知的历史协变量,如传感器数据等信息;当前信息可知的已知协变量,如销量预测中的假期、天气等信息。
- 分位数预测:支持分位数预测,即模型可以输出多个分位数的预测结果,而不仅仅是单一的点预测。分位数预测有助于评估预测的不确定性,提供更全面的预测区间。
直推限制:
- 列名一致性要求:单次批处理请求中,所有数据条目必须保持列名完全一致。
- 显式指定预测长度:批请求需新增字段 prediction_len,用于指定期望的预测时序长度。
- 支持自动识别上下文长度:无需指定上下文长度(context_len),支持根据输入序列窗口长度自动识别。若在请求体中明确指定上下文长度(context_len),则输入序列窗口的长度必须大于或等于指定的上下文长度。若指定序列长度(context_len)小于实际序列长度时,以指定的上下文长度(context_len)为准,并取序列最后部分作为上下文内容。例如若输入序列长度为100且指定的上下文长度(context_len)为80时,取序列的最后80个数据作为上下文。
- 输入序列长度对齐:同一批次请求中的所有时序数据,目标列/历史协变量列的序列长度(target_col_length)必须相同;已知协变量列需等于目标列/历史协变量列的序列长度+预测长度(target_col_length + prediction_len)。
- 显示指定预测的目标列、历史协变量列、以及已知协变量列:分别以target_cols,past_cov_cols,known_cov_cols承载,都可取空值。若为空值,默认取值符合优先级规则target_cols>past_cov_cols>known_cov_cols,具体情况见下表。为了预测的精确性,建议使用时最好三者都指定。
表1 预测列名取值规则 target_cols(目标列)
past_cov_cols(历史协变量列)
known_cov_cols(已知协变量列)
取值规则
×
×
×
所有列均为target_cols,past_cov_cols和known_cov_cols均为空值。
√
×
×
除去target_cols指定列,剩余所有列均为past_cov_cols,known_cov_cols为空值
×
√
×
除去past_cov_cols指定列,剩余所有列均为target_cols,known_cov_cols为空值
×
×
√
除去known_cov_cols指定列,剩余所有列均为target_cols,past_cov_cols为空值
√
√
×
除去target_cols以及past_cov_cols指定列,剩余所有列known_cov_cols。且输入的target_cols以及past_cov_cols不可有交集
×
√
√
除去past_cov_cols以及known_cov_cols指定列,剩余所有列target_cols。且输入的past_cov_cols以及known_cov_cols不可有交集
√
×
√
除去target_cols以及known_cov_cols指定列,剩余所有列past_cov_cols。且输入的target_cols以及known_cov_cols不可有交集
√
√
√
三者为输入指定列。
需满足:
- 三者输入无交集
- 三者并集严格等于所有列名(all_cols)
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
X-Auth-Token |
是 |
String |
参数解释: 用户Token。 用于获取操作API的权限。如图4中响应消息头中X-Subject-Token的值即为Token。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
|
Content-Type |
是 |
String |
参数解释: 发送的实体的MIME类型。 约束限制: 不涉及 取值范围: 不涉及 默认取值: application/json |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
X-Apig-AppCode |
是 |
String |
参数解释: API Key值。 用于获取操作API的权限。API Key认证响应消息头中X-Apig-AppCode的值即为API Key。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
|
Content-Type |
是 |
String |
参数解释: 发送的实体的MIME类型。 约束限制: 不涉及 取值范围: 不涉及 默认取值: application/json |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
data |
是 |
Array |
参数解释: 时序数据请求的批处理队列。 约束限制: 盘古时序预测回归任务的输入数据内容,用字典承载。输入数据字典中,键对应特征列名,值为序列数据具体内容。 取值范围: 目标列仅支持数值型(int/float)取值,过去以及已知协变量支持数值型取值以及类别特征(int/float/string)取值。 目标列限制:List[int/float] 协变量列限制:List[int/float/str] 默认取值: 不涉及,此为必须填写字段。 |
|
context_len |
否 |
int |
参数解释: 时序任务的历史窗口大小,该参数主要服务于支持多尺度窗口的模型的推理。 约束限制: 填写时需要保证输入序列长度大于等于该值。 取值范围:
默认取值: 若不填写,支持根据输入序列窗口长度自动识别。 |
|
prediction_len |
是 |
int |
参数解释: 时序预测输出的窗口长度。数值越大输出预测的时间范围越大,但相应的显存占用会增加以及模型预测精度可能会下降。 约束限制: 无。 取值范围:
默认取值: 不涉及,此为必须填写字段。 |
|
target_cols |
否 |
List[str] |
参数解释: 时序预测的目标列列名,表示预测的目标列。 约束限制: 列名需包含于输入数据字典的键值中。详细取值规则见表1。 取值范围: 不涉及 默认取值: 详细取值规则见表1。 |
|
past_cov_cols |
否 |
List[str] |
参数解释: 时序预测的过去协变量列列名,表示待预测时刻的列信息不可预知的列,如传感器数据等信息。 约束限制: 列名需包含于输入数据字典的键值中。详细取值规则见表1。 取值范围: 不涉及 默认取值: 详细取值规则见表1。 |
|
known_cov_cols |
否 |
List[str] |
参数解释: 时序预测的已知协变量列列名,表示待预测时刻的列信息可获取的列,如节假日、天气等信息。 约束限制: 列名需包含于输入数据字典的键值中。详细取值规则见表1。 取值范围: 不涉及 默认取值: 详细取值规则见表1。 |
|
quantile_levels |
否 |
List[float] |
参数解释: 模型支持分位数预测。为了防止返回体过大,若此字段不指定,默认仅返回中位数结果,以"prediction"字段承载。若指定返回的分位数信息,例如[0.1, 0.5, 0.9](返回10%, 50%, 90%)分位数,以字段"prediction_{quantile_level}"承载,其中quantile_level取值范围为[0.1, ..., 0.9]。 约束限制: 需取[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]的子集。 取值范围: 需取[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]的子集。 默认取值: None, 默认仅返回中位数结果。 |
响应参数
状态码: 200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
data |
LIST<OutputMeta> |
参数解释: 时序预测结果的列表。若请求字段未指定quantile_levels,则默认仅返回中位数结果以字段"prediction"承载;若请求字段指定quantile_levels,则同时返回分位数结果,以字段"prediction_{quantile_level}"承载。例如[0.1, 0.9](返回10%, 90%)分位数,以字段"prediction_0.1"和"prediction_0.9"承载。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
|
time_cost |
JSON |
参数解释: 当启动服务时,本次请求服务各阶段耗时情况。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
|
参数名称 |
参数类型 |
说明 |
|---|---|---|
|
prediction |
JSON |
参数解释: 时序预测的输出结果,具体见样例调用示例。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
|
prediction_{quantile_level} |
JSON |
参数解释: 若请求字段指定quantile_levels,则同时返回分位数结果,以字段"prediction_{quantile_level}"承载。例如[0.1, 0.9](返回10%, 90%)分位数,以字段"prediction_0.1"和"prediction_0.9"承载。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
状态码: 400
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码。 |
|
error_msg |
String |
错误信息。 |
请求示例
{
"prediction_len": 96,
"target_cols": ["fetaure_0"],
"past_cov_cols": ["fetaure_1", "feature_2"],
"known_cov_cols": ["fetaure_3"],
"data": [
{
"context": {
"feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
"feature_1": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
"feature_2": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
"feature_3": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...]
}
},
{
"context": {
"feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
"feature_1": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
"feature_2": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
"feature_3": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...]
}
},
{...},
{...}
]
}
响应示例
## 若指定计算模式为返回异常分(option∈["重构误差","重构方差", "重构误差+方差"])
{
"data": [
{
# 预测结果
"prediction":{
"feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
},
# 预测结果(10%分位数)
"prediction_0.1":{
"feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
},
...
# 预测结果(90%)分位数
"prediction_0.9":{
"feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
}
},
{...},
{...},
{...}
],
"time_cost": {
"infer_cost_time": "82.609 ms",
"postprocess_cost_time": "0.29 ms",
"preprocess_cost_time": "0.1332 ms",
"service_cost_total_time": "84.965 ms"
}
}
状态码
请参见状态码。
错误码
请参见错误码。