series_periods_detect()
Gilt für: ✅Microsoft Fabric✅✅
Sucht die wichtigsten Zeiträume innerhalb einer Zeitreihe.
Die funktion series_periods_detect() ist nützlich, um regelmäßige Muster in Daten zu erkennen, z. B. tägliche, wöchentliche oder monatliche Zyklen.
Syntax
series_periods_detect(
min_period,
,
max_period num_periods,
)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
Reihe | dynamic |
✔️ | Ein Array numerischer Werte, in der Regel die resultierende Ausgabe der Make-Series - oder make_list Operatoren. |
min_period | real |
✔️ | Die minimale Dauer, nach der gesucht werden soll. |
max_period | real |
✔️ | Die maximale Dauer, für die gesucht werden soll. |
num_periods | long |
✔️ | Die maximale Anzahl von Perioden, die zurückgegeben werden sollen. Diese Zahl ist die Länge der dynamischen Ausgabearrays. |
Wichtig
- Der Algorithmus kann Punkte erkennen, die mindestens 4 Punkte und höchstens die Hälfte der Datenreihenlänge enthalten.
- Legen Sie die min_period ein wenig unter und max_period etwas über den Zeiträumen, die Sie in der Zeitreihe erwarten. Wenn Sie z. B. über ein stündliches aggregiertes Signal verfügen und nach täglichen und wöchentlichen Zeiträumen (24 bzw. 168 Stunden) suchen, können Sie min_period=0,8*24, max_period=1,2*168 festlegen und 20 % Ränder um diese Zeiträume belassen.
- Die Eingabezeitreihe muss normal sein. Das heißt, aggregiert in Konstantencontainern, was immer der Fall ist, wenn sie mithilfe von Make-Series erstellt wurde. Andernfalls ist die Ausgabe bedeutungslos.
Gibt zurück
Die Funktion gibt eine Tabelle mit zwei Spalten zurück:
- Punkte: Ein dynamisches Array mit den gefundenen Punkten in Einheiten der Bin-Größe, sortiert nach ihren Bewertungen.
- Bewertungen: Ein dynamisches Array mit Werten zwischen 0 und 1. Jedes Array misst die Bedeutung eines Punkts an seiner jeweiligen Position im Punktearray .
Beispiel
Die folgende Abfrage bettet eine Momentaufnahme des Anwendungsdatenverkehrs für einen Monat ein. Der Datenverkehr wird zweimal täglich aggregiert, was bedeutet, dass die Größe des Bins 12 Stunden beträgt. Die Abfrage erzeugt ein Liniendiagramm, das ein Muster in den Daten deutlich anzeigt.
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
Sie können die series_periods_detect()
-Funktion in derselben Datenreihe ausführen, um die wiederkehrenden Muster zu identifizieren. Die Funktion sucht nach Mustern im angegebenen Zeitraum und gibt zwei Werte zurück. Der erste Wert gibt ein erkanntes Muster an, das 14 Punkt lang mit einer Punktzahl von ungefähr 0,84 ist. Der andere Wert ist Null, der angibt, dass kein zusätzliches Muster gefunden wurde.
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)
Output
series_periods_detect_y_periods | series_periods_detect_y_periods_scores |
---|---|
[14, 0] | [0.84, 0] |
Der Wert in series_periods_detect_y_periods_scores wird abgeschnitten.
Hinweis
Es ist auch ein tägliches Muster im Diagramm sichtbar, aber dies wird nicht von der Abfrage zurückgegeben, da das Sampling zu grob ist (Größe 12h Bin). Eine tägliche Periode von 2 Bins liegt unter der Mindestdauergröße von 4 Punkten, die vom Algorithmus benötigt wird.