Auf dieser Seite werden hierarchische Prognosen und Ziele erläutert. Außerdem erfahren Sie, mit welchen Trainingsstrategien Sie Bias in Ihren Prognosemodellen reduzieren können.
Eine detaillierte Anleitung zum Konfigurieren der hierarchischen Prognose beim Trainieren Ihres Prognosemodells mit der API finden Sie unter Prognosemodell trainieren.
Was ist die hierarchische Prognose?
Zeitreihen sind oft in einer verschachtelten Hierarchie strukturiert. So kann beispielsweise das gesamte Inventar der Produkte, die ein Einzelhändler verkauft, in Produktkategorien unterteilt werden. Die Kategorien können weiter in einzelne Produkte unterteilt werden. Bei der Prognose zukünftiger Umsätze sollten sich die Prognosen für die Produkte einer Kategorie zur Prognose für die Kategorie selbst addieren, und so weiter bis zur Spitze der Hierarchie.
Ebenso kann die Zeitdimension einer einzelnen Zeitachse eine Hierarchie nutzen. Beispielsweise sollten die prognostizierten Verkäufe für ein einzelnes Produkt auf der Tag-Ebene dem prognostizierten Umsatz des Produkts auf Wochen-Ebene entsprechen. Die folgende Abbildung zeigt diese Gruppen- und Zeithierarchie als Matrix:
Hierarchische Prognosen haben drei Ziele:
- Reduzieren Sie die Gesamtverzerrung, um die Messwerte über alle Zeitachsen (Gesamtumsatz) zu verbessern.
- Reduzieren Sie die zeitliche Verzerrung, um Messwerte über den Horizont (Saisonumsatz) zu verbessern.
- Reduzieren Sie die Verzerrung auf Gruppenebene, um Messwerte über eine Gruppe von Zeitachsen (Artikelverkauf) zu verbessern.
Bei hierarchischen Prognosen in Vertex AI wird die hierarchische Struktur von Zeitreihen berücksichtigt, indem zusätzliche Verlustfunktionen für aggregierte Vorhersagen verwendet werden.
Hierarchical loss = (1 x loss) +
(temporal total weight x temporal total loss) +
(group total weight x group total loss) +
(group temporal total weight x group temporal total loss)
Beispiel: Wenn die hierarchische Gruppe "Kategorie" ist, sind die Vorhersagen auf der "Kategorie"-Ebene die Summe der Vorhersagen für alle "Produkte" in der Kategorie. Wenn das Ziel des Modells ein durchschnittlicher absoluter Fehler (MAE, Mean Absolute Error) ist, würde der Verlust den MAE für Vorhersagen auf den Ebenen "Produkt" und "Kategorie" enthalten. Dies hilft, die Konsistenz von Prognosen auf verschiedenen Hierarchieebenen zu verbessern. In einigen Fällen können sogar Messwerte auf der untersten Ebene verbessert werden.
Hierarchische Aggregation für das Modelltraining konfigurieren
Sie können beim Trainieren Ihrer Prognosemodelle die hierarchische Aggregation konfigurieren. Konfigurieren Sie dazu AutoMLForecastingTrainingJob
im Vertex AI SDK oder hierarchyConfig
in der Vertex AI API.
Zu den verfügbaren Parametern für AutoMLForecastingTrainingJob
und hierarchyConfig
gehören:
group_columns
group_total_weight
temporal_total_weight
group_temporal_total_weight
Die Parameter ermöglichen verschiedene Kombinationen aggregierter Gruppen- und Zeitverluste. Sie ermöglichen auch die Zuweisung von Gewichtungen, um die Priorität der Minimierung des aggregierten Verlusts im Verhältnis zum individuellen Verlust zu erhöhen. Beispiel: Wenn die Gewichtung auf 2.0
festgelegt ist, wird sie doppelt so hoch gewichtet wie der einzelne Verlust.
group_columns
Spaltennamen in der Trainingseingabetabelle, die die Gruppierung für die Hierarchieebene identifizieren. Die Spalte(n) müssen time_series_attribute_columns
sein. Ist die Gruppenspalte nicht festgelegt, werden alle Zeitachsen als Teil derselben Gruppe behandelt und die Aggregierung erfolgt über alle Zeitachsen.
group_total_weight
Gewichtung der aggregierten Verluste der Gruppe im Verhältnis zum individuellen Verlust. Deaktiviert, wenn 0.0
oder nichts festgelegt ist.
temporal_total_weight
Gewichtung des aggregierten Verlusts über die Zeit relativ zum individuellen Verlust. Deaktiviert, wenn 0.0
oder nichts festgelegt ist.
group_temporal_total_weight
Gewichtung des Gesamtverlusts (Gruppe x Zeit) im Verhältnis zum individuellen Verlust. Deaktiviert, wenn 0.0
oder nichts festgelegt ist. Ist die Gruppenspalte nicht festgelegt, werden alle Zeitachsen als Teil derselben Gruppe behandelt und die Aggregierung erfolgt über alle Zeitachsen.
Strategien zur Verringerung von Bias
Sie können mit einer Aggregationsart (Gruppe oder Zeit) mit einem Gewicht von 10.0
beginnen und den Wert dann je nach den Ergebnissen halbieren oder verdoppeln.
Allgemeine Verzerrungen reduzieren
Bei detaillierten Prognosen zur Verteilung des Inventars auf die Geschäfte, bei denen der gewichtete absolute Prozentfehler (WAPE) auf Produkt x Geschäft x Datum-Ebene als Prognosemesswert verwendet wird, werden die Prognosen auf den aggregierten Ebenen häufig zu niedrig geschätzt. Sie können Folgendes versuchen, um diese allgemeine Verzerrung auszugleichen:
- Setzen Sie
group_total_weight
auf10.0
. - Bestimmen Sie
group_columns
nicht. - Lassen Sie die anderen Gewichte unverändert.
Das bedingt eine Zusammenfassung über alle Zeitachsen hinweg und reduziert so die Gesamtverzerrung.
Zeitliche Verzerrungen reduzieren
Bei der langfristigen Planung können Prognosen auf Produkt x Region x Woche-Ebene erstellt werden, die relevanten Messwerte können jedoch in Bezug auf saisonale Gesamtwerte gemessen werden. Sie können Folgendes versuchen, um diesen zeitlichen Bias zu kompensieren:
- Setzen Sie
temporal_total_weight
auf10.0
. - Bestimmen Sie
group_columns
nicht. - Lassen Sie die anderen Gewichte unverändert.
Das bedingt eine Zusammenfassung über alle Datumsangaben im Prognosezeitraum einer Zeitreihe und reduziert so die zeitliche Verzerrung.
Verzerrung auf Gruppenebene reduzieren
Bei Prognosen, die im Auffüllprozess mehrere Zwecke umfassen, können detaillierte Prognosen auf der Produkt X Lager X Datum- oder der Wochen-Ebene bis zu den Produkt X Verteilerzentrum X Daten-Ebenen zur Distribution oder auf den Produktkategorie X Daten-Ebenen für Materialbestellungen aggregiert werden. Führen Sie dazu folgende Schritte aus:
- Setzen Sie
group_total_weight
auf10.0
. - Legen Sie
group_columns
fest, z. B. ["region"] oder ["region", "category"]. Wenn Sie mehrere Gruppenspalten festlegen, wird die Gruppe anhand des kombinierten Werts definiert. Die besten Ergebnisse erzielen Sie mit Gruppenspalten mit maximal 100 verschiedenen kombinierten Werten. - Lassen Sie die anderen Gewichte unverändert.
Dadurch werden alle Zeitreihen in derselben Gruppe für dasselbe Datum zusammengefasst und die Verzerrung auf Gruppenebene reduziert.
Limits
- Es wird nur eine Zeitreihenaggregationsebene unterstützt. Wenn mehr als eine Gruppierungsspalte wie "product, store" angegeben ist, befinden sich die Zeitachsen nur in derselben Gruppe, wenn sie dieselben Werte von "product" und "store" haben.
- Wir empfehlen, nicht mehr als 100 Gruppen zu verwenden.