series_periods_detect()
Ermittelt die signifikantesten Zeiträume in einer Zeitreihe.
Syntax
series_periods_detect(
Serie,
,
min_period,
max_periodnum_periods)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
Serie | dynamic |
✔️ | Ein Array numerischer Werte, in der Regel die resultierende Ausgabe der Make-Series- oder make_list-Operatoren . |
min_period | real |
✔️ | Der minimale Zeitraum, für den gesucht werden soll. |
max_period | real |
✔️ | Der maximale Zeitraum, für den gesucht werden soll. |
num_periods | long |
✔️ | Die maximal erforderliche Anzahl von Perioden. Diese Zahl entspricht der Länge der dynamischen Ausgabearrays. |
Wichtig
- Der Algorithmus kann Perioden erkennen, die mindestens 4 Punkte und höchstens die Hälfte der Reihenlänge enthalten.
- Legen Sie die min_period ein wenig unten fest und max_period etwas über den Zeiträumen, die Sie in der Zeitreihe erwarten. Wenn Sie beispielsweise über ein stündlich 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 % Margen um diese Zeiträume herum belassen.
- Die Eingabezeitreihen müssen regelmäßig sein. Das heißt, aggregiert in konstanten Bins, 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 aus:
- Perioden: Ein dynamisches Array, das die gefundenen Punkte in Einheiten der Bin-Größe nach ihren Bewertungen geordnet enthält.
- Scores: Ein dynamisches Array mit Werten zwischen 0 und 1. Jedes Array misst die Bedeutung eines Zeitraums an seiner jeweiligen Position im Periodenarray .
Beispiel
Die folgende Abfrage bettet einen Momentaufnahme eines Monats des Datenverkehrs einer Anwendung ein, der zweimal täglich aggregiert wird. Die Bin-Größe beträgt 12 Stunden.
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
Wenn diese Serie ausgeführt series_periods_detect()
wird, ergibt sich der wöchentliche Zeitraum, 14 Punkte lang.
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)
Ausgabe
series_periods_detect_y_periods | series_periods_detect_y_periods_scores |
---|---|
[14.0, 0.0] | [0.84, 0.0] |
Hinweis
Der tägliche Zeitraum, der auch im Diagramm angezeigt werden kann, wurde nicht gefunden, da die Stichprobenentnahme zu grob ist (12h-Behältergröße), sodass ein täglicher Zeitraum von 2 Behältern unter der vom Algorithmus geforderten mindestdauerngröße von 4 Punkten liegt.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für