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 ausführliche Anleitung zum Konfigurieren der hierarchischen Prognose beim Trainieren Ihres Prognosemodells mithilfe der API finden Sie unter Prognosemodell trainieren.
Was ist die hierarchische Prognose?
Zeitachsen sind häufig in einer verschachtelten Hierarchie strukturiert. Beispielsweise kann das gesamte Produktinventar, das ein Einzelhändler verkauft, in Produktkategorien unterteilt werden. Die Kategorien können in einzelne Produkte unterteilt werden. Bei der Prognose zukünftiger Verkäufe sollten die Prognosen für die Produkte einer Kategorie zusammen die Prognose für die Kategorie selbst ergeben usw.
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:
Die hierarchische Prognose hat 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.
In Vertex AI berücksichtigt die hierarchische Prognose die hierarchische Struktur von Zeitachsen mithilfe von zusätzlichen Verlustbegriffen für aggregierte Vorhersagen.
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 Spalten 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 Reduzierung von Verzerrungen
Sie sollten mit einem Typ von Aggregation (Gruppe oder Zeit) mit einer Gewichtung von 10.0
beginnen und dann den Wert auf der Grundlage der Ergebnisse halbieren oder verdoppeln.
Gesamtverzerrung reduzieren
In detaillierten Prognosen für die Verteilung des Lagerbestands auf Geschäfte, bei denen der gewichtete absolute Prozentfehler (WAPE) auf der Produktebene für den X-Zeitraum des Produkts als Prognosemesswert verwendet wird, werden die Prognosen häufig auf der aggregierten Ebene vorhergesagt. Um diese Gesamtverzerrung auszugleichen, können Sie Folgendes versuchen:
- Setzen Sie
group_total_weight
auf10.0
. - Bestimmen Sie
group_columns
nicht. - Lassen Sie andere Gewichtungen nicht festgelegt.
Das bedingt eine Zusammenfassung über alle Zeitachsen hinweg und reduziert so die Gesamtverzerrung.
Vorübergehende Verzerrungen reduzieren
Bei der Langzeitplanung können Prognosen auf Produktebene x Region x Wochenebene erstellt werden. Die relevanten Messwerte können jedoch in Bezug auf saisonale Summen gemessen werden. Um diese zeitliche Verzerrung auszugleichen, können Sie Folgendes versuchen:
- Setzen Sie
temporal_total_weight
auf10.0
. - Bestimmen Sie
group_columns
nicht. - Lassen Sie andere Gewichtungen nicht festgelegt.
Das bedingt eine Zusammenfassung über alle Datumsangaben im Horizont einer Zeitachse und reduziert die zeitliche Verzerrung.
Verzerrungen 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 ihres kombinierten Werts definiert. Die besten Ergebnisse erzielen Sie, wenn Sie Gruppenspalten mit maximal 100 verschiedenen Werten verwenden. - Lassen Sie andere Gewichtungen nicht festgelegt.
Das bedingt eine Zusammenfassung aller Zeitachsen in derselben Gruppe für dasselbe Datum und reduziert Verzerrungen auf Gruppenebene.
Limits
- Nur eine Ebene der Zeitachsenaggregation wird 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 die Verwendung von maximal 100 Gruppen.