Hallo, hallo!
Es gibt viele Artikel auf der Website über die Vorhersage von Ausverkäufen verschiedener Kategorien von FMCG, während andere Produktkategorien nicht so beliebt sind. Darüber hinaus wird der Einzelhandel in der Regel mit einer Prognose von mehreren Tagen im Voraus untersucht, nicht jedoch von einem Händler mit einer Prognose von 2 Monaten im Voraus - obwohl letzterer häufiger an einer qualitativen Prognose interessiert ist als selbst ein Einzelhändler. Als zusätzliche Herausforderung lohnt es sich, den Konservativismus eines bedeutenden Teils der Händler im Sinne der Auswahl von Prognosetechnologien zu berücksichtigen. Man kann sich leicht vorstellen, wie man den Umsatz des Unternehmens aus mittlerer Hand prognostiziert: Umsätze aus SAP + -Stammdaten werden mit dem von Menschenhand erstellten Excel-Tool erfasst. Die Automatisierung wird in solchen Fällen durch eine relativ einfache Prognosemethode eingeschränkt, die nicht weit vom durchschnittlichen / linearen Trend der Raketenwissenschaft in Form von HoltWinters entfernt ist.
So stieß ich im Dienst auf einen Hersteller einer Marke für preiswerte dekorative Kosmetik (ca. 500 SKU) und erkannte die traurigen Folgen einer konservativen Prognose in Form niedriger KPIs. Es war notwendig, kleine Änderungen am Planungssystem vorzunehmen, einschließlich des Prognoseprozesses, und dann werde ich über meine Forschung sprechen.
Status Quo Ante Bellum
Das Hauptproblem der Marke über mehrere Jahre hinweg war das äußerst niedrige Serviceniveau (
CSS = Shipped / Ordered ), das deutlich unter dem Durchschnitt des Unternehmens lag, der durch die Prognose auf der Grundlage des durchschnittlichen Umsatzes (
Forecast = Average Sales ) verschärft wurde. Der Teufelskreis: Der Kunde bestellt Volumen, erhält nicht die vollen Mengen und kommt beim nächsten Mal mit erhöhter Nachfrage, und wir planen die Zukunft nur nach dem erfüllten Bedarf.
Auf dieser Grundlage wurde beschlossen, nicht Verkäufe, sondern Bestellungen ohne Wiederholungen vorherzusagen (d. H., Wenn der Kunde 100 Stück und Bestellungen pro Woche wünscht, gehen wir davon aus, dass die Nachfrage pro Monat 100 Stück und nicht 400 Stück beträgt) Weitere Verkäufe werden wir auftragsfrei machen. Nach der Verbesserung des Servicelevels wird der Unterschied zwischen den Begriffen ausgeglichen. Das Unternehmen verwendet die Formel (
Prognosegenauigkeit = (1 - Summe der Diskrepanzmodule zwischen Fakt und Prognose) / Prognose ), um die Genauigkeit der Prognose im Unternehmen zu schätzen, und wir werden sie verwenden. Ein wichtiger Punkt: Die Vorhersage in diesem Fall ist eine Vorhersage mit Verzögerung 2, d.h. Wenn wir die Genauigkeit im Oktober bewerten, vergleichen wir den Umsatz im Oktober mit der Prognose im August. Es wird angenommen, dass ein Ergebnis von mehr als 35% als zufriedenstellend interpretiert werden kann. Übrigens ist an dieser Stelle anzumerken, dass wir zunächst nicht mit einer Erhöhung der Genauigkeit gerechnet haben - wir haben mit einer Erhöhung des Servicegrads gerechnet und werden die Ergebnisse anhand der Qualität der Warensendungen an Kunden bewerten.
Wir mussten nicht viel über die Stichprobe schwitzen, um zu trainieren - obwohl das Unternehmen keine analytische DWH hat, gibt es einen monatlichen Upload von Aufträgen, die ein kleiner Python-Zyklus gesammelt und gelöscht hat. Ebenso haben wir Stammdaten erhalten. Ereignisse und Werbeaktionen mussten in den Berechnungen aufgrund von übermäßigem Lärm ignoriert werden (wir hatten Angst, mehr Lärm als nützliche Informationen hinzuzufügen), da der größte Einzelhändler in regelmäßigen Abständen ohne Vereinbarung oder Ankündigung Werbeaktionen durchführte, das Ereignisvolumen schätzte usw.
Als Modell haben wir uns für 3 Zweige entschieden - Naiv, Exponentielles Glätten und Maschinelles Lernen.
Naive Vorhersage
Der Hauptgrund, warum naive Prognosen immer noch verwendet werden, ist die einfache Interpretation für den Menschen. In der Tat, wenn es für ein Unternehmen üblich ist, jeden Code anhand der 5-Warum-Methode detailliert zu analysieren, passt die durchschnittliche Prognose perfekt. Bestellt der Kunde durchschnittlich 10 Stück pro Monat? Es ist logisch, dass er nächsten Monat 10 Stück bestellen wird. Das Ergebnis entspricht nicht unseren Erwartungen und der Kunde hat 50 Stück bestellt? Wahrscheinlich weiß der Kunde einfach nicht, wie er vorhersagen soll / die automatische Reihenfolge ist kaputt / der Roboter ist wütend usw. Sie sollten Joint Forecasting implementieren und Dateien austauschen, um Stress abzubauen und die Prognosegenauigkeit zu verbessern (natürlich ein Scherz, aber mit ein bisschen Wahrheit).
Um den Methoden ein wenig Relevanz zu verleihen, haben wir vorgeschlagen, dass die Saisonalität der Waren mit der Saisonalität der Kategorie identisch ist (das Paket statmodels wurde zur Identifizierung der Saisonalität verwendet, das Bild zeigt 3 Hauptergebnisse).

Wir haben 4 Methoden verwendet - den Durchschnitt und den Median für die gesamte Verkaufsgeschichte (Genauigkeit 0,32 bzw. 0,30) und die letzten 6 Punkte (0,36 und 0,26). 0,36 wird unser Maßstab sein - in Zukunft müssen wir bessere Ergebnisse erzielen.
ESM-Prognose
Exponentielle Glättung ist oft der ultimative Traum in der Bedarfsplanung und es ist leicht zu verstehen, warum. Schätzungen der Genauigkeit in der Stirn zeigen die am wenigsten vergleichbaren Ergebnisse für ESM und ML in Bezug auf die Genauigkeit, sie sind in allen industriellen Prognosesystemen (JDA, Oracle RDF usw.) enthalten, die Berechnung ist schneller und einfacher zu interpretieren - deshalb sind die Klassiker lebendiger als alle Lebewesen. Auf der anderen Seite ist das Ergebnis möglicherweise nicht ganz ehrlich, da die Features nicht ausreichend vorbereitet wurden.
Für die Vorhersage haben wir dasselbe statmodels-Paket verwendet. Zunächst haben wir die Holt-Klasse für die gesamte Umsatzhistorie mit gelöschter Gruppensaison und für die letzten 6 Punkte (Genauigkeit 0,34 und 0,37) belegt.
Als nächstes haben wir die SKU in zwei Gruppen unterteilt - Produkte mit einer langen Geschichte wurden von der HoltWinters-Klasse vorhergesagt, und für eine kurze Geschichte haben wir Holt bei 6 Punkten verlassen. Das Ergebnis war viel besser - 0,44, das ist leicht zu erklären. Wenn es auf der obersten Ebene so aussieht, als wären alle Waren Zwillingsbrüder, dann können wir die Unterschiede in der Unterkategorie erkennen.

ML-Prognose
Der Hauptnachteil der Standardmethoden ist die mangelnde Tiefe der Berechnungen, weil Wir verwenden nicht alle verfügbaren Informationen. Zum Beispiel der Verlauf von Ereignissen: Normalerweise sollten wir beim klassischen Ansatz die aufgetretenen Rohre vom Verlauf subtrahieren, eine Basislinienprognose erstellen und die geplanten Rohre mit dem entsprechenden Kalender hinzufügen. Bei ungenügend genauer Aufzeichnung von Ereignissen kann das Ergebnis enttäuschend sein (bei Holt-Winters haben wir es geschafft - 5 pp auf Genauigkeit zu bringen). Viele Gründe können genannt werden - zum Beispiel unterschätzen KAM-Kategorien das Volumen, um Übererfüllung zu zeigen und Boni zu erhalten. Wenn wir vom Ansatz (
Forecast = Baseline + Pipes ) zu einer Prognose übergehen, die auf Features basiert, können wir einen Teil der verfügbaren Informationen ergänzen. Zu diesem Zweck haben wir eine Liste mit 50 Funktionen (Preise, Stammdaten, Verkäufe, getrennte Kunden usw.) zusammengestellt. Aus der Sklearn-Bibliothek haben wir den Basis-Lasso / Ridge / KNN-Regressor genommen, der oft einen schnellen Gewinn bringt, aber in unserem Fall war nur KNN mit einer Genauigkeit von 0,44 zufrieden. Ein zufälliger Wald hat in kleinen Stichproben eine gute Leistung, in unserem Fall beträgt die Genauigkeit 0,48. Natürlich haben wir Xgboost nicht vergessen, das nach einer kleinen Kreuzvalidierung das beste Ergebnis lieferte - 0,51. Unten sehen Sie eine Grafik mit der Genauigkeit der einzelnen Modelle

Bedenken
Was können Konservative in Bezug auf die Verwendung von ML bei der Umsatzprognose sein? Zum Beispiel Feedback: Eine Reihe von E-Commerce- und Offline-Einzelhändlern nutzen neuronale Netze und Steigungserhöhungen und erschrecken Sie regelmäßig mit verrückten Bestellungen. Ja, wenn der Einzelhändler die Genauigkeit der Prognose misst, ist das Ergebnis vielleicht optimistisch, aber dies ist bis zu einem gewissen Grad eine sich selbst erfüllende Prophezeiung: Wenn ein Fehler vorliegt, wird der Verkauf / Schwarzer Freitag / Geburtstag des Netzwerks aktiviert usw.
Daher ist es für uns wichtig zu zeigen, dass das Ergebnis von Xgboost nicht nur genauer, sondern auch stabiler ist (und kein zufälliges Roulette, wie ein unvorbereitetes Segelflugzeug scheinen mag). Zu diesem Zweck haben wir die Verteilung der HoltWinters- und Xgboost-Fehlerverteilungen verglichen und sichergestellt, dass die Ergebnisse der letzteren ein dichteres Zentrum um Null und einen schwachen Schwanz aufweisen


Zwischenergebnisse
Seit Beginn des Schreibens des Artikels / der ersten Prognose wurden aufgrund positiver Ergebnisse 2 weitere Marken von dekorativen Kosmetika auf Xgboost umgestellt. Ende November betrug der durchschnittliche Anstieg des Servicelevels + 16%, d. H. das durchschnittliche unternehmensniveau wurde erreicht