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.
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:

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:
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.

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:

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:

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
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!

BLOG







