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預置了多種演算法組件,你可以根據不同的使用情境選擇合適的組件進行資料處理,詳情請參見組件參考:所有組件匯總。