Wir schlagen eine neuartige Methode zur Kodierung kategorischer Merkmale vor, die speziell für Prognoseanwendungen zugeschnitten ist. Im Wesentlichen kodiert dieser Ansatz kategoriale Merkmale durch Modellierung des Trends der mit jeder Kategorie verbundenen Größen. In unseren Experimenten zeigt dieser Ansatz erhebliche Leistungsvorteile - sowohl in Bezug auf die Vorhersagegenauigkeit als auch auf die Verzerrung -, da er es baumbasierten Ensemblemodellen ermöglicht, Trends besser zu modellieren und zu extrapolieren.

Lesen Sie unseren Artikel über

class="img-responsive

.

Einführung

Die Motivation für diese Arbeit ergab sich aus zahlreichen Kundenprognoseprojekten bei Artefact , bei denen unsere Boosting-Modelle zum Zeitpunkt der Vorhersage eine hohe Verzerrung aufwiesen. In einer diagnostischen Phase stellten wir fest, dass eine der Hauptquellen für Verzerrungen in Ensemble-Lernmodellen aus deren Schwierigkeiten bei der genauen Modellierung von Trends und schwankenden Werten resultierte.

Im Folgenden werden wir aufzeigen , warum und wie wir einen neuartigen Ansatz zur Kodierung kategorialer Merkmale verwendet haben. Anhand unserer Experimente mit einem Einzelhandelsvorhersageprojekt eines Kunden und verschiedenen öffentlichen Datensätzen beweisen wir, dass diese Technik Verzerrungen wirksam abmildern und die Genauigkeit verbessern kann.

Aufschwung und Trends, warum ist das so kompliziert?

Boosting-Algorithmen haben es schwer, zu extrapolieren

Boosting-Algorithmen haben es schwer, Trends zu modellieren und zu extrapolieren, da sie keine neuen Werte vorhersagen können, die in der Trainingsmenge nicht vorkommen bzw. nicht in den Blättern enthalten sind. "Lineare Baummodelleversuchen, dieses Problem zu lösen, aber unsere Tests ergaben keine schlüssigen Ergebnisse mit dieser Methode.

Klassische Kodierungen führen zu statischen Vorhersagen

Die gängigsten Kodierungsmethoden, die beim Boosten eingesetzt werden, fördern statische Beziehungen zwischen unabhängigen und abhängigen Variablen, was wiederum zu einer erhöhten Verzerrung bei Vorhandensein von Trends beiträgt. Das folgende Diagramm veranschaulicht dieses Phänomen:

Klassische Kodierungen führen zu statischen Vorhersagen

Vereinfachte visuelle Darstellung, die die statische Natur der kategorialen Merkmalskodierung in Boosting-Algorithmen verdeutlicht

Wir erkennen an, dass die obige Darstellung eine zu starke Vereinfachung ist, da Entscheidungsbäume komplexer sind und nichtlineare Beziehungen auf der Grundlage mehrerer Faktoren erkennen können. In der Tat könnte die Bedingung "Farbe ist schwarz" mit "der Monat ist Juni" verbunden sein. In diesem Fall hätte die Farbe Schwarz nicht zu jeder Zeit die gleiche Auswirkung. Aber sehen wir uns das Gesamtbild an:

  • Die Zuweisung einer einzigen Auswirkung für die Farbe Schwarz im Juni ist immer noch nicht ideal, da die Auswirkung im Juni 2021 von der Auswirkung im Juni 2022 abweichen kann. Selbst wenn wir das Jahr einbeziehen, würde erstens die Entscheidungsgrenze zu komplex, um sie zu erstellen und zu identifizieren, und zweitens, was würde passieren, wenn die Schulung data im Jahr 2022 endet und Vorhersagen für 2023 gemacht werden müssen?

  • Das Feature-Engineering soll das Modell dabei unterstützen, Beziehungen leichter zu erkennen. Wenn wir dem Modell helfen können, die Auswirkung der Farbe Schwarz zu einem beliebigen Zeitpunkt zu assoziieren, ohne dass die Identifizierung komplexer Beziehungen erforderlich ist, wäre dies für das Modell von großem Vorteil. Folglich ...

Unser neuer Ansatz: Dynamische Kodierung von kategorialen Merkmalen

Grundlage der dynamischen Kodierung (v1 ohne Positionsebene)

In einem Satz könnte man unsere Methode zur Kodierung kategorialer Merkmale wie folgt beschreiben: Wir modellieren die Trendkomponente jeder Kategorie und verwenden diese Trendwerte zur Kodierung des kategorialen Merkmals.

Das folgende Diagramm veranschaulicht den Unterschied zwischen einer statischen Mittelwertkodierung und einer trendbasierten Kodierung für zwei Farbkategorien: Schwarz und Gold.

class="img-responsive

Illustration des dynamischen Kodierungsprinzips, das eine Trendmodellierung für jede Kategorie beinhaltet

In unseren Experimenten haben wir uns dafür entschieden, Prophet für die Extraktion der Trendkomponente zu verwenden. Natürlich können auch andere Zeitreihenprognosemodelle verwendet werden.

Man beachte, dass die statische Mittelwertkodierung impliziert, dass die Verkäufe von Schwarzware zu jedem Zeitpunkt durchschnittlich 100 Stück/Monat betragen. Die dynamische Kodierung hingegen ermöglicht es, die steigende Tendenz bei den schwarzen Artikeln zu berücksichtigen und in die Zukunft zu extrapolieren. Eine ähnliche Aussage kann für Goldwaren gemacht werden. Unser Ansatz ist daher besonders nützlich bei Datensätzen, bei denen die zu prognostizierende Zielvariable steile Trends über die verschiedenen verfügbaren Kategorien hinweg aufweist.

Unser Hauptaugenmerk liegt darauf, dass sich das Modell leichter an die sich ändernden Beziehungen zwischen unabhängigen Variablen und der zu prognostizierenden abhängigen Variable anpassen kann. Daher könnte diese dynamische Kodierungsmethode auch auf numerische Merkmale angewendet werden. Nehmen wir das Beispiel des Preises. Obwohl der Preis numerisch ist und das Modell direkt darauf basierende Regeln erstellen kann, können sich die Präferenzen der Menschen für preiswerte oder teure Artikel im Laufe der Zeit entwickeln und einem bestimmten Verkaufstrend folgen. Im Zusammenhang mit einer Wirtschaftskrise könnten beispielsweise erschwingliche Produkte einem steigenden Verkaufstrend folgen, während teure Produkte einem rückläufigen Trend folgen könnten. Wenn wir "günstig" als eine Kategorie und "teuer" als eine andere betrachten, könnten wir eine dynamische Kodierung für das Preismerkmal vorschlagen, so wie wir es für Farben getan haben.

Es ist wichtig zu beachten, dass bei numerischen Merkmalen sowohl die Basisvariablen als auch die dynamisch kodierten Variablen im Modell verwendet werden können, da sie unterschiedliche Arten von Informationen liefern werden.

Dynamischen Merkmalen wird mehr Bedeutung beigemessen (v2 mit Positionsebene)

Auch wenn diese neue Kodierungsmethode eine Verbesserung darstellt, ist die Bedeutung kategorischer Merkmale oft nicht hoch genug, um die Vorhersagen bei der Untersuchung der Merkmalsbedeutung wesentlich zu beeinflussen. Um den dynamischen Merkmalen mehr Bedeutung zu verleihen und damit eine bessere Modellierung und Extrapolation von Trends zu fördern, passen wir die Kodierungswerte für jede Zeitreihe/jedes Element einzeln an.

class="img-responsive

Formel zur Darstellung der beiden Komponenten der dynamischen Kodierung: Kategorieebene und Elementebene

Um auf unser Farbbeispiel zurückzukommen: Bei zwei verschiedenen schwarzen Artikeln kann die dynamische Kodierung der Kategorie "Schwarz" für jeden Artikel auf der Grundlage seiner individuellen früheren Verkäufe unterschiedlich sein.

Tabelle zur Veranschaulichung der Berechnung der dynamischen Kodierung anhand eines einfachen Beispiels

Tabelle zur Veranschaulichung der Berechnung der dynamischen Kodierung anhand eines einfachen Beispiels

Experimente und Ergebnisse

Kunden-Datensatz

Wir haben unseren Ansatz zur Umsatzprognose für einen unserer Kunden aus der Einzelhandelsbranche verwendet. Wir haben unsere Methode in einem breiten Spektrum von Bereichen gründlich validiert, um ihre Wirksamkeit sicherzustellen. Hier sind einige data Punkte, die den experimentellen Kontext betreffen:

  • Die Experimente wurden für 9 verschiedene Produktbereiche durchgeführt, wobei für jeden Bereich ein Booster-Modell (LightGBM) verwendet wurde.
  • Für jeden Bereich wurde eine k-fache Kreuzvalidierung mit einem expandierenden Fenster durchgeführt (k=5).

  • Vorhersagehorizont: Tag+1 bis Tag+180.

  • Die Leistung wurde anhand von zwei Messgrößen bewertet:

class="img-responsive

Insgesamt erwies sich die Methode als äußerst effizient und führte zu einer durchschnittlichen absoluten Verringerung der Verzerrung um 9,82 % und einer durchschnittlichen absoluten Erhöhung der Vorhersagegenauigkeit um 6,29 % über die 9 Produktbereiche und 5 Kreuzvalidierungsfalten hinweg.

Im nächsten Abschnitt wird die Relevanz unserer Methode anhand eines öffentlichen Datensatzes getestet.

Datensatz zu öffentlichen Ladenverkäufen

In dieser vereinfachten Fallstudie verwenden wir den Kaggle-Datensatz "Store Sales - Time Series Forecasting ". Dieser Datensatz weist einen steilen Trend auf, wenn man die durchschnittliche Umsatzzeitreihe untersucht, was unsere Methode besonders relevant macht. Außerdem beträgt der gewählte Vorhersagehorizont drei Monate, was weit genug entfernt ist, um von den zusätzlichen Extrapolationsfähigkeiten der dynamischen Kodierung zu profitieren. Zur Veranschaulichung beschränken wir den Datensatz auf den 31. März 2016, kurz bevor ein Erdbeben auftrat, das die Umsatzkurve abflachen ließ.

Vor der Kodierung besteht unser anfänglicher Datensatz zu etwa 75 % aus numerischen Merkmalen, darunter Lags, rollierende Mittelwerte, Kalendermerkmale und Feiertagsereignisse. Die restlichen 25 % bestehen aus kategorischen Attributen wie Produktfamilie, Geschäftsnummer, Stadt und anderen.

Es werden zwei unterschiedliche Modelle trainiert: Eines verwendet die kategorialen Merkmale, die mit unserer eigenen Methode dynamisch kodiert wurden, während das andere die LightGBM-eigene Verarbeitung kategorialer Merkmale nutzt.

Beim Vergleich ihrer Leistung stellen wir eine signifikante Verbesserung des dynamischen Kodierungsansatzes fest. Die folgende Tabelle enthält eine Zusammenfassung der Ergebnisse:

Vergleich von RMSE, FA und %Bias zwischen LightGBM-Kodierungsmethode und dynamischer Kodierung

Vergleich von RMSE, FA und %Bias zwischen LightGBM-Kodierungsmethode und dynamischer Kodierung

class="img-responsive

Durchschnittlicher wöchentlicher Umsatz + 3-Monats-Prognosen (dynamische Kodierung vs. LightGBM-Kodierungsmethode)

Wie in der obigen Grafik dargestellt, erfasst das Modell mit dynamischen Kodierungen den Trend effektiv und extrapoliert ihn, wohingegen das alternative Modell Schwierigkeiten hat, dies zu erreichen.

Nutzung und Grenzen

Unsere Methode erweist sich als besonders wertvoll in Szenarien, in denen die Zeitreihe ausgeprägte Trends aufweist und der Vorhersagehorizont weit genug entfernt ist, um von der Trendextrapolation zu profitieren. Je mehr kategoriale Merkmale mit signifikanter Vorhersagekraft wir dynamisch kodieren und in das Modell einbeziehen, desto größer wird der Effekt, den unser Ansatz auf die Vorhersagen hat. Es ist jedoch wichtig anzuerkennen, dass andere Kodierungsmethoden ihre eigenen Vorteile haben und in verschiedenen Kontexten vorteilhafter sein können. Außerdem besteht die Möglichkeit, beide Kodierungsarten zu kombinieren, um potenziell bessere Ergebnisse zu erzielen.

Schlussfolgerung

  • Herkömmliche Kodierungstechniken für kategoriale Merkmale sind für Prognosen nicht ideal, insbesondere wenn Zeitreihen steile Trends aufweisen und der Prognosehorizont weit entfernt ist.
  • Bei unserer Methode handelt es sich um eine Variation des Modellstapelns, da wir ein Prophet-Modell - das sich durch überlegene Fähigkeiten bei der Modellierung und Extrapolation von Trends auszeichnet - verwenden, um die Kodierung der kategorialen Merkmale zu konstruieren.

  • Unsere Experimente haben gezeigt, dass die Vorteile der Verringerung von Verzerrungen und der Verbesserung der Vorhersagegenauigkeit liegen.

Wir haben vor, in den kommenden Monaten ein Papier zu veröffentlichen, das alle Einzelheiten unseres Ansatzes und unserer Umsetzung enthalten wird. Bleiben Sie dran für weitere Updates!

class="img-responsive

Medium Blog von Artefact.

Dieser Artikel wurde ursprünglich auf Medium.com veröffentlicht.
Folgen Sie uns auf unserem Medium Blog!