Teilen über


Kalenderfeatures für Zeitreihenvorhersagen in automatisiertem ML

Der Schwerpunkt dieses Artikels liegt auf den kalenderbasierten Features, die automatisiertes ML erstellt, um die Genauigkeit von Vorhersageregressionsmodellen zu erhöhen. Da Feiertage einen starken Einfluss auf das Verhalten des modellierten Systems haben können, kann die Zeit vor, während und nach einem Feiertag die Muster der Serie beeinflussen. Jeder Feiertag generiert ein Fenster für Ihr vorhandenes Dataset, dem der Lernende einen Effekt zuweisen kann. Dies kann besonders in Szenarien nützlich sein, wenn Feiertage eine hohe Nachfrage nach bestimmten Produkten generieren. Weitere allgemeine Informationen zur Vorhersagemethodik bei automatisiertem ML finden Sie im Artikel mit einer Übersicht über Methoden. Anweisungen und Beispiele zum Trainieren von Vorhersagemodellen in automatisiertem ML finden Sie in unserem Artikel Einrichten von AutoML zum Trainieren eines Zeitreihenvorhersagemodells mit Python.

Im Rahmen der Featurisierung transformiert automatisiertes ML Spalten vom Typ „datetime“, die in den Trainingsdaten bereitgestellt werden, in neue Spalten mit kalenderbasierten Features. Diese Features können Regressionsmodellen dabei helfen, saisonale Muster in mehreren Intervallen zu erlernen. Automatisiertes ML kann Kalenderfeatures immer aus dem Zeitindex der Zeitreihe erstellen, da dies eine erforderliche Spalte in den Trainingsdaten ist. Kalenderfeatures werden auch aus anderen Spalten mit dem Typ „datetime“ erstellt, sofern vorhanden. Weitere Informationen zu Datenanforderungen finden Sie im Leitfaden zur Verwendung von Daten durch automatisiertes ML.

Automatisiertes ML berücksichtigt zwei Kategorien von Kalenderfeatures: Standardfeatures, die vollständig auf Datums- und Uhrzeitwerten basieren, und Feiertagsfeatures, die für ein Land oder eine Region der Welt spezifisch sind. Diese Features werden im weiteren Verlauf des Artikels erläutert.

Standardkalenderfeatures

Die folgende Tabelle zeigt den vollständigen Satz der Standardkalenderfeatures von automatisiertem ML zusammen mit einer Beispielausgabe. Im Beispiel wird das Standardformat YY-mm-dd %H-%m-%d für die datetime-Darstellung verwendet.

Feature name BESCHREIBUNG Beispielausgabe für 2011-01-01 00:25:30
year Numerisches Feature, das das Kalenderjahr darstellt 2011
year_iso Stellt das ISO-Jahr gemäß ISO 8601 dar. ISO-Jahre beginnen in der ersten Woche des Jahres, die einen Donnerstag enthält. Wenn der 1. Januar beispielsweise ein Freitag ist, beginnt das ISO-Jahr am 4. Januar. ISO-Jahre können sich von Kalenderjahren unterscheiden. 2010
half Feature, das angibt, ob das Datum in der ersten oder zweiten Jahreshälfte liegt. Der Wert lautet „1“, wenn das Datum vor dem 1. Juli liegt, andernfalls „2“.
quarter Numerisches Feature, das das Quartal des angegebenen Datums darstellt. Für dieses Feature können die Werte 1, 2, 3 oder 4 verwendet werden, die jeweils für das erste, zweite, dritte oder vierte Quartal des Kalenderjahres stehen. 1
month Numerisches Feature, das den Kalendermonat darstellt. Dafür können die Werte 1 bis 12 verwendet werden. 1
month_lbl Zeichenfolgenfeature, das den Namen des Monats darstellt 'January'
day Numerisches Feature, das den Tag des Monats darstellt. Dafür können die Werte 1 bis 31 verwendet werden. 1
hour Numerisches Feature, das die Tageszeit darstellt. Dafür können die Werte 0 bis 23 verwendet werden. 0
minute Numerisches Feature, das die Minuten darstellt. Dafür können die Werte 0 bis 59 verwendet werden. 25
second Numerisches Feature, das die Sekunden des angegebenen datetime-Werts darstellt. Wenn nur das Datumsformat angegeben wird, wird dafür „0“ angenommen. Dafür können die Werte 0 bis 59 verwendet werden. 30
am_pm Numerisches Feature, das angibt, ob es sich um eine Uhrzeit am Morgen oder Abend handelt. Für eine Uhrzeit vor 12 Uhr wird „0“ und für eine Uhrzeit nach 12 Uhr wird „1“ festgelegt. 0
am_pm_lbl Zeichenfolgenfeature, das angibt, ob es sich um eine Uhrzeit am Morgen oder Abend handelt. 'am'
hour12 Numerisches Feature, das die Tageszeit im 12-Stunden-Format darstellt. Für die erste Tageshälfte werden die Werte 0 bis 12 und für die zweite Tageshälfte die Werte 1 bis 11 verwendet. 0
wday Numerisches Feature, das den Wochentag darstellt. Es werden die Werte 0 bis 6 verwendet, wobei 0 dem Montag entspricht. 5
wday_lbl Zeichenfolgenfeature, das den Namen des Wochentags darstellt
qday Numerisches Feature, das den Tag innerhalb des Quartals darstellt. Dafür können die Werte 1 bis 92 verwendet werden. 1
yday Numerisches Feature, das den Tag des Jahres darstellt. Dafür können die Werte 1 bis 365 bzw. 1 bis 366 im Falle eines Schaltjahres verwendet werden. 1
week Numerisches Feature, das die ISO-Woche darstellt, wie in ISO 8601 definiert. ISO-Wochen beginnen immer am Montag und enden am Sonntag. Es werden die Werte 1 bis 52 verwendet (bzw. 1 bis 53 für Jahre, in denen der 1. Januar auf einen Donnerstag fällt, oder für Schaltjahre, in denen der 1. Januar auf einen Mittwoch fällt). 52

Unter Umständen wird nicht in allen Fällen der gesamte Satz an Standardkalenderfeatures erstellt Der generierte Satz hängt von der Häufigkeit der Zeitreihe ab und davon, ob die Trainingsdaten zusätzlich zum Zeitindex datetime-Features enthalten. In der folgenden Tabelle sind die Features aufgeführt, die für verschiedene Spaltentypen erstellt werden:

Spaltenzweck Kalenderfeatures
Zeitindex Der vollständige Satz ohne Kalenderfeatures, die eine hohe Korrelation mit anderen Features aufweisen. Wenn die Zeitreihenhäufigkeit beispielsweise täglich ist, werden alle Features mit einer präziseren Häufigkeit als täglich entfernt, da sie keine nützlichen Informationen bereitstellen.
Andere datetime-Spalte Ein reduzierter Satz, der Year, Month, Day, DayOfWeek, DayOfYear, QuarterOfYear, WeekOfMonth, Hour, Minute und Second umfasst. Wenn die Spalte ein Datum ohne Uhrzeit enthält, sind Hour, Minute und Second 0.

Feiertagsfeatures

Automatisiertes ML kann optional Features erstellen, die Feiertage aus einem bestimmten Land oder einer bestimmten Region darstellen. Diese Features werden in automatisiertem ML mit dem Parameter country_or_region_for_holidays konfiguriert, für den ein ISO-Ländercode zulässig ist.

Hinweis

Feiertagsfeatures können nur für Zeitreihen mit täglicher Häufigkeit erstellt werden.

In der folgenden Tabelle sind die Feiertagsfeatures zusammengefasst:

Feature name BESCHREIBUNG
Holiday Zeichenfolgenfeature, das angibt, ob ein Datum ein landesweiter oder regionaler Feiertag ist. Tage, die um einen Feiertag herum liegen, werden ebenfalls markiert.
isPaidTimeOff Binäres Feature, das den Wert 1 hat, wenn der Tag im angegebenen Land oder in der angegebenen Region ein „bezahlter arbeitsfreier Tag“ ist

Automatisiertes ML verwendet Azure Open Datasets als Quelle für Feiertagsinformationen. Weitere Informationen finden Sie in der PublicHolidays-Dokumentation.

Betrachten Sie die folgenden Beispieldaten, um die Generierung von Feiertagsfeatures besser zu verstehen:

sample_data

Um amerikanische Feiertagsfeatures für diese Daten zu generieren, legen wir country_or_region_for_holiday in den Vorhersageeinstellungen auf „USA“ fest, wie im folgenden Codebeispiel gezeigt:

from azure.ai.ml import automl

# create a forcasting job
forecasting_job = automl.forecasting(
    compute='test_cluster',   # Name of single or multinode AML compute infrastructure created by user
    experiment_name=exp_name, # name of experiment 
    training_data=sample_data,  
    target_column_name='demand',
    primary_metric='NormalizedRootMeanSquaredError',
    n_cross_validations=3,
    enable_model_explainability=True
)

# set custom forecast settings
forecasting_job.set_forecast_settings(
    time_column_name='timeStamp',
    country_or_region_for_holidays='US'
)

Die generierten Feiertagsfeatures sehen wie die folgende Ausgabe aus:

sample_data_output

Beachten Sie, dass bei generierten Features den Spaltennamen das Präfix _automl_ vorangestellt wird. Automatisiertes ML verwendet dieses Präfix im Allgemeinen, um Eingabefeatures von entwickelten Features zu unterscheiden.

Nächste Schritte