Prophet是Facebook开源的时间序列预测算法,适用于具有一定规律的数据。Prophet组件通过对每一行的MTable数据,进行Prophet时间序列预测,给出下一时间段的预测结果。本文为您介绍Prophet组件的配置方法。
使用限制
支持的计算引擎为MaxCompute。
可视化配置组件参数
输入桩
输入桩(从左到右)
数据类型
建议上游组件
是否必选
数据
无
是
组件参数
页签
参数
描述
字段设置
Value列
类型是STRING,并且格式是MTable。可以通过MATBEL聚合组件构造,其中聚合的数据有一列是Datetime类型,作为时序列。MTable示例:
{"data":{"ds":["2019-05-07 00:00:00.0","2019-05-08 00:00:00.0"],"val":[8588.0,8521.0]},"schema":"ds TIMESTAMP,val DOUBLE"}
。算法保留列
选择算法保留列的名称。
参数设置
预测结果列名
预测结果列的列名称。
cap
预测值上界。
changepoint_prior_scale
默认值0.05。
change_point_range
趋势变化点的比例,默认值0.8。
changepoints
突变点列表。格式以半角逗号(,)分隔。示例:
2021-05-02,2021-05-07
。daily_seasonality
是否按天拟合季节性,默认值auto。
floor
预测值下界。
growth
趋势类型,取值如下:
Linear(默认值)
Logistic
Flat
节假日
不同节假日用空格分隔,格式示例:
playoff:2021-05-03,2021-01-03 superbowl:2021-02-07,2021-11-02
。holidays_prior_scale
节假日模型参数,默认值10.0。
include_history
是否预测原数据中的日期对应的值。
interval_width
不确定区间,默认值0.8。
mcmc_samples
整数,进行贝叶斯推断使用的样本个数。如果是0,进行MAP估计。估计默认值100。
n_change_point
突变点的数目,默认值25。
预测条数
取值范围(0, inf),默认值12。
预测详细信息列名
预测详细列的列名称。
seasonality_mode
季节性类型,取值如下:
ADDITIVE(默认值)
MULTIPLICATIVE
seasonality_prior_scale
季节性模型的参数,默认值10.0。
初始值
初始模型,默认无初始值。
用来计算指标的采样数目
默认值1000。采样用于计算统计指标,如果不需要统计指标,并且需要提速,设置成0。
weekly_seasonality
是否按周拟合季节性,默认值auto。
yearly_seasonality
是否按年拟合季节性,默认值auto。
组件多线程线程个数
组件多线程线程个数。
执行调优
节点个数
与单个节点内存大小参数配对使用。取值为[1, 9999]的正整数。
单个节点内存大小,单位M
取值范围为1024 MB~64*1024 MB。
通过代码方式配置组件
您可以将以下代码复制到PyAlink脚本组件中,使PyAlink脚本组件实现与该组件相同的功能。
import time, datetime
import numpy as np
import pandas as pd
downloader = AlinkGlobalConfiguration.getPluginDownloader()
downloader.downloadPlugin('tf115_python_env_linux')
data = pd.DataFrame([
[1, datetime.datetime.fromtimestamp(1), 10.0],
[1, datetime.datetime.fromtimestamp(2), 11.0],
[1, datetime.datetime.fromtimestamp(3), 12.0],
[1, datetime.datetime.fromtimestamp(4), 13.0],
[1, datetime.datetime.fromtimestamp(5), 14.0],
[1, datetime.datetime.fromtimestamp(6), 15.0],
[1, datetime.datetime.fromtimestamp(7), 16.0],
[1, datetime.datetime.fromtimestamp(8), 17.0],
[1, datetime.datetime.fromtimestamp(9), 18.0],
[1, datetime.datetime.fromtimestamp(10), 19.0]
])
source = dataframeToOperator(data, schemaStr='id int, ts timestamp, val double', op_type='batch')
source.link(GroupByBatchOp()
.setGroupByPredicate("id")
.setSelectClause("id, mtable_agg(ts, val) as data")
).link(ProphetBatchOp()
.setValueCol("data")
.setPredictNum(4)
.setPredictionCol("pred")
).link(FlattenMTableBatchOp()
.setSelectedCol("pred_detail")
.setSchemaStr("ds timestamp, yhat double")
).print()
相关文档
您可以使用MTable展开组件,将MTable展开成Table。详情请参见MTable展开。
关于Designer组件更详细的内容介绍,请参见Designer概述。
Designer预置了多种算法组件,你可以根据不同的使用场景选择合适的组件进行数据处理,详情请参见组件参考:所有组件汇总。