Prognoseverzerrungen durch hierarchische Aggregation reduzieren

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 eines Einzelhändlers in Produktkategorien unterteilt werden. Die Kategorien können weiter in einzelne Produkte unterteilt werden. Bei der Prognose zukünftiger Umsätze müssen 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.

Eine Hierarchie aus Produkten und Kategorien.

Ebenso kann die Zeitdimension einer einzelnen Zeitachse eine Hierarchie nutzen. So müssen sich beispielsweise die prognostizierten Umsätze für ein einzelnes Produkt auf Tagesebene zu den prognostizierten wöchentlichen Umsätzen des Produkts addieren. Die folgende Abbildung zeigt diese Gruppen- und Zeithierarchie als Matrix:

Eine Zeitreihenmatrix.

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 der Gemini Enterprise Agent Platform 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 in the Agent Platform SDK oder by configuring hierarchyConfig in the Agent Platform 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 2.0 ist, wird sie doppelt so hoch gewichtet wie der einzelne Verlust.

group_columns

Die Spaltennamen in der Trainingsinputtabelle geben die Gruppierung für die Hierarchieebene an. Die Spalte(n) müssen time_series_attribute_columns sein. Wenn Sie die Gruppenspalte nicht festlegen, 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 auf 0.0 festgelegt oder nicht festgelegt.

temporal_total_weight

Gewichtung des aggregierten Verlusts über die Zeit relativ zum individuellen Verlust. Deaktiviert, wenn auf 0.0 festgelegt oder nicht festgelegt.

group_temporal_total_weight

Gewichtung des Gesamtverlusts (Gruppe x Zeit) im Verhältnis zum individuellen Verlust. Deaktiviert, wenn auf 0.0 festgelegt oder nicht festgelegt. Wenn Sie die Gruppenspalte nicht festlegen, werden alle Zeitachsen als Teil derselben Gruppe behandelt und die Aggregierung erfolgt über alle Zeitachsen.

Strategien zur Verringerung von Bias

Beginnen Sie mit einer Art der Aggregation (Gruppe oder Zeit) mit einer Gewichtung von 10.0 und halbieren oder verdoppeln Sie den Wert dann je nach den Ergebnissen.

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:

  • Legen Sie group_total_weight auf 10.0 fest.
  • Bestimmen Sie group_columns nicht.
  • Bestimmen Sie keine anderen Gewichtungen.

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:

  • Legen Sie temporal_total_weight auf 10.0 fest.
  • Bestimmen Sie group_columns nicht.
  • Bestimmen Sie keine anderen Gewichtungen.

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 auf 10.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.
  • Bestimmen Sie keine anderen Gewichtungen.

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.

Nächste Schritte