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:
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:
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
- Erfahren Sie mehr über das Einrichten von AutoML zum Trainieren eines Zeitreihenvorhersagemodells.
- Durchsuchen Sie Häufig gestellte Fragen zur Vorhersage in automatisiertem ML.
- Erfahren Sie mehr über verzögerte Features für Vorhersagen in automatisiertem ML.
- Erfahren Sie mehr über die Verwendung von maschinellem Lernen in automatisiertem ML zum Erstellen von Vorhersagemodellen.