全部產品
Search
文件中心

Platform For AI:Prophet

更新時間:Jul 13, 2024

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