Wir schlagen eine neuartige Methode zur Kodierung von kategorialen Merkmalen vor, die speziell für Prognoseanwendungen geeignet ist. Im Wesentlichen kodiert dieser Ansatz kategoriale Merkmale durch die 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

.

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 Diagnosephase haben wir festgestellt, dass eine der Hauptursachen für die Verzerrung von Ensemble-Learning-Modellen darin liegt, dass es schwierig ist, Trends und schwankende Werte genau zu modellieren.

Im Folgenden werden wir demonstrieren warum und wie haben wir einen neuen Ansatz für die Kodierung kategorischer Merkmale verwendet. Anhand unserer Experimente mit einem Kundenprojekt für Einzelhandelsprognosen und verschiedenen öffentlichen data-Sets konnten wir nachweisen, dass diese Technik Verzerrungen wirksam abmildern und die Genauigkeit verbessern kann.

Boosting 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 im Trainingsset nicht vorkommen bzw. in den Blättern nicht vorhanden sind. “Linearer Baum”Modelle versuchen, dieses Problem zu lindern, aber unsere Tests ergaben keine eindeutigen Ergebnisse mit dieser Methode.

Klassische Kodierungen drängen zu statischen Vorhersagen

Die gängigsten Kodierungsmethoden, die beim Boosten verwendet 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:

Classical encodings push towards static predictions

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

Wir räumen ein, dass die obige Darstellung eine zu starke Vereinfachung ist, denn Entscheidungsbäume sind komplexer und in der Lage, nichtlineare Beziehungen auf der Grundlage mehrerer Faktoren zu erkennen. 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 lassen Sie uns einen Blick auf das große Ganze werfen:

  • 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 mit einbeziehen, würde erstens die Entscheidungsgrenze zu komplex werden, um sie zu erstellen und zu identifizieren, aber auch, was würde passieren, wenn die Ausbildung data im Jahr 2022 endet und Vorhersagen für 2023 gemacht werden müssen?

  • Feature-Engineering soll das Modell dabei unterstützen, Beziehungen leichter zu erkennen. Wenn wir dem Modell dabei 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. Daher ...

Unser neuer Ansatz: Dynamische Kodierung von kategorischen Merkmalen

Basis der dynamischen Kodierung (v1 ohne Elementebene)

In einem Satz könnte man unsere Methode zur Kodierung kategorischer Merkmale folgendermaßen beschreiben: modellieren wir die Trendkomponente jeder Kategorie und verwenden diese Trendwerte, um das kategoriale Merkmal zu kodieren.

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

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 Sie auch andere Zeitreihenprognosemodelle in Betracht ziehen.

Beachten Sie, dass die statische Mittelwertkodierung impliziert, dass die Verkäufe schwarzer Artikel zu jedem Zeitpunkt durchschnittlich 100 Stück/Monat betragen. Die dynamische Kodierung hingegen erlaubt es, den steigenden Trend bei den schwarzen Gegenständen zu berücksichtigen und ihn in die Zukunft zu extrapolieren. Eine ähnliche Aussage kann für Goldgegenstände gemacht werden. Unser Ansatz ist also besonders nützlich bei data-Sets, bei denen die zu prognostizierende Zielvariable steile Trends über die verschiedenen verfügbaren Kategorien hinweg aufweist.

Unser Hauptaugenmerk liegt darauf, das Modell in die Lage zu versetzen, sich leichter an die sich ändernden Beziehungen zwischen unabhängigen Variablen und der zu prognostizierenden abhängigen Variable anzupassen. 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 aufstellen kann, können sich die Vorlieben der Menschen für preiswerte oder teure Artikel im Laufe der Zeit dennoch entwickeln und einem bestimmten Verkaufstrend folgen. Im Zusammenhang mit einer Wirtschaftskrise könnten zum Beispiel günstige Produkte einem steigenden Verkaufstrend folgen, während teure Produkte einem fallenden Trend folgen könnten. Wenn wir ‘erschwinglich’ als eine Kategorie und ‘teuer’ als eine andere betrachten, könnten wir eine dynamische Kodierung für das Merkmal Preis 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 Elementebene)

Auch wenn diese neue Kodierungsmethode eine Verbesserung darstellt, ist die Bedeutung der kategorischen Merkmale oft nicht hoch genug, um die Vorhersagen bei der Untersuchung der Merkmalsbedeutung signifikant 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.

Formel für die 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.

Table illustrating the calculation of dynamic encoding through a simple example

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

Experimente und Ergebnisse

Kunde dataset

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 Effektivität sicherzustellen. Hier sind einige data-Punkte zum experimentellen Kontext:

  • Die Experimente wurden für 9 verschiedene Produktbereiche durchgeführt, mit einem Boosting-Modell (LightGBM) für jeden Bereich.
  • 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 Metriken bewertet:

Insgesamt erwies sich die Methode als sehr effizient, was zu einer durchschnittlichen absoluten Verringerung der Verzerrung von 9,82% und einer durchschnittlichen absoluten Erhöhung der Vorhersagegenauigkeit von 6,29% führt. über die 9 Produktbereiche und 5 Kreuzvalidierungsfalten.

Im nächsten Abschnitt überprüfen wir die Relevanz unserer Methode, indem wir sie an einem öffentlichen dataset testen.

Verkauf in öffentlichen Geschäften dataset

In dieser vereinfachten Fallstudie verwenden wir die Ladenverkauf - Zeitreihenprognose Kaggle dataset. Dieses dataset weist einen steilen Trend auf, wenn man die durchschnittliche Umsatzzeitreihe betrachtet, was unsere Methode besonders relevant macht. Außerdem beträgt der gewählte Prognosehorizont drei Monate, was weit genug entfernt ist, um von den zusätzlichen Extrapolationsfähigkeiten der dynamischen Kodierung zu profitieren. Zu Demonstrationszwecken beschränken wir das dataset auf den 31. März 2016, kurz bevor ein Erdbeben auftrat und die Umsatzkurve abflachte.

Vor der Kodierung umfasst unser anfängliches data-Set etwa 75% numerische Merkmale, darunter Lags, rollierende Mittelwerte, Kalendermerkmale und Feiertagsereignisse. Die restlichen 25% bestehen aus kategorischen Attributen wie Produktfamilie, Geschäftsnummer, Stadt und anderen.

Es werden zwei verschiedene Modelle trainiert: Eines verwendet die kategorischen Merkmale, die mit unserer benutzerdefinierten Methode dynamisch kodiert wurden, während das andere die native Handhabung kategorischer Merkmale durch LightGBM nutzt.

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

Comparison of RMSE, FA, and %Bias between LightGBM encoding method and dynamic encoding

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

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

Wie in der obigen Grafik dargestellt, beinhaltet das Modell dynamische Kodierungen fängt den Trend effektiv ein und extrapoliert ihn, während 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 und die Vorhersagehorizont ist weit genug entfernt, um von der Trendextrapolation zu profitieren. Da wir außerdem dynamisch kodieren und einbeziehen mehr kategorische Merkmale mit signifikant prädiktiv Strom in das Modell ein, der durch unseren Ansatz erzielte Effekt auf Vorhersagen steigt. 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 möglicherweise bessere Ergebnisse zu erzielen.

Fazit

  • 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.
  • Unsere Methode ist eine Abwandlung des Modellstapelns, denn wir verwenden ein Prophet-Modell - das sich durch überlegene Fähigkeiten bei der Modellierung und Extrapolation von Trends auszeichnet - um die Kodierung der kategorialen Merkmale zu konstruieren.

  • Unsere Experimente haben die Vorteile der Reduzierung von Verzerrungen und der Verbesserung der Vorhersagegenauigkeit gezeigt.

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

Mittel Blog von Artefact.

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