series_decompose_forecast()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
根據數列分解進行預測。
接受包含數列的表示式(動態數值數位)作為輸入,並預測最後一個尾端點的值。 如需詳細資訊,請參閱 series_decompose。
語法
series_decompose_forecast(
數列,
點,
[ 季節性,
趨勢,
Seasonality_threshold ])
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
系列 | dynamic |
✔️ | 數值陣列,通常是make-series或 make_list運算子所產生的輸出。 |
分數 | int |
✔️ | 指定要預測或預測數列結尾的點數。 這些點會從學習或回歸程式中排除。 |
季節性 | int |
控制季節性分析。 可能的值是: - -1 :使用 series_periods_detect 自動偵測季節性。 這是預設值。- 期間:正整數,指定間隔數目的預期期間。例如,如果數列在量化中 1 - h ,則每周期間為168個間隔。- 0 :沒有季節性,因此請略過擷取此元件。 |
|
趨勢 | string |
控制趨勢分析。 可能的值是: - avg :將趨勢元件定義為 average(x) 。 這是預設值。- linefit :使用線性回歸擷取趨勢元件。- none :沒有趨勢,因此請略過擷取此元件。 |
|
Seasonality_threshold | real |
當季節性設定為自動偵測時 ,季節性 分數的臨界值。 默認分數閾值為 0.6。 如需詳細資訊,請參閱 series_periods_detect。 |
傳回
具有預測數列的動態陣列。
注意
- 原始輸入數位的動態數位應該包含要預測的 點 數位置。 預測通常是使用 make-series 並指定包含預測時間範圍的結束時間來完成。
- 應該啟用季節性或趨勢,否則函式是多餘的,而只會傳回填滿零的數列。
範例
在下列範例中,我們會以每小時的粒紋產生一系列四周,每周季節性和小上升趨勢。 接著,我們會使用 make-series
,並將另一個空白周新增至數列。 series_decompose_forecast
會以一周 (24*7 點) 呼叫,並會自動偵測季節性和趨勢,併產生整個五周期間的預測。
let ts=range t from 1 to 24*7*4 step 1 // generate 4 weeks of hourly data
| extend Timestamp = datetime(2018-03-01 05:00) + 1h * t
| extend y = 2*rand() + iff((t/24)%7>=5, 5.0, 15.0) - (((t%24)/10)*((t%24)/10)) + t/72.0 // generate a series with weekly seasonality and ongoing trend
| extend y=iff(t==150 or t==200 or t==780, y-8.0, y) // add some dip outliers
| extend y=iff(t==300 or t==400 or t==600, y+8.0, y) // add some spike outliers
| make-series y=max(y) on Timestamp from datetime(2018-03-01 05:00) to datetime(2018-03-01 05:00)+24*7*5h step 1h; // create a time series of 5 weeks (last week is empty)
ts
| extend y_forcasted = series_decompose_forecast(y, 24*7) // forecast a week forward
| render timechart