共用方式為


series_periods_detect()

適用於:✅Microsoft網狀架構Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel

尋找存在於時間序列中最重要的期間。

語法

series_periods_detect(,min_period max_period num_periods ,,)

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
系列 dynamic ✔️ 數值陣列,通常是make-seriesmake_list運算子所產生的輸出。
min_period real ✔️ 要搜尋的最小期間。
max_period real ✔️ 要搜尋的最大期間。
num_periods long ✔️ 所需期間數目上限。 這個數位將是輸出動態數位的長度。

重要

  • 演算法可以偵測包含至少 4 點和最多一半數列長度的期間。
  • 設定下方的min_period一點,並max_period您預期在時間序列中找到的期間。 例如,如果您有每小時匯總的訊號,而且您同時尋找每日和每周期間(分別為 24 和 168 小時),您可以設定 min_period=0.8*24,max_period=1.2*168,並保留 20% 的邊界。
  • 輸入時間序列必須是一般。 也就是說,在常數量化中匯總,如果是使用 make-series建立,則一律會發生這種情況。 否則,輸出是毫無意義的。

傳回

函式會輸出具有兩個資料列的數據表:

  • periods:動態陣列,包含依其分數排序的間隔大小單位找到的期間。
  • scores:動態陣列,包含介於 0 到 1 之間的值。 每個陣列都會測量句點在句點陣列中其各自位置的意義

範例

下列查詢會內嵌應用程式流量一個月的快照集,每天匯總兩次。 間隔大小為12小時。

print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y  
| render linechart

數列期間。

在此系列上執行 series_periods_detect() ,導致每周期間,長 14 點。

print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y  
| project series_periods_detect(y, 0.0, 50.0, 2)

輸出

series_periods_detect_y_periods series_periods_detect_y_periods_scores
[14.0, 0.0] [0.84, 0.0]

注意

找不到圖表中也可以看到的每日期間,因為取樣太粗(12 小時間隔大小),所以每天 2 個間隔的期間低於演算法所需的最小期間大小 4 點。