Optimierung des Einzelhandelsumsatzes mit KI für Verkaufsprognosen

Veröffentlicht: 2022-03-11

Prognosen sind eine Technik, die historische Daten und Ereignisse verwendet, um Schätzungen über zukünftige Trends, potenzielle Katastrophen und das Gesamtverhalten eines Subjekts zu erstellen. Prognosen können als probabilistische Unterstützung für Entscheidungsanalysen verwendet werden, um Ausgaben, Einnahmen und Budgetpläne zu schätzen.

Prognosen in Unternehmen können in zwei verschiedene Kategorien unterteilt werden: qualitative Prognosen und quantitative Prognosen .

  • Qualitative Prognose. Qualitative Prognosen befassen sich mit Marktforschung und Marktstrategien und sind daher stärker von Experten geleitet und von menschlichen Faktoren beeinflusst. Es zielt in der Regel auf die kurzfristige Strategieentwicklung ab.
  • Quantitative Prognose. Quantitative Prognosen schließen jeden menschlichen Faktor aus. Es hängt nur von den historischen Daten ab, über die ein Unternehmen verfügt, und zielt darauf ab, vorherzusagen, wie einige Faktoren wie Verkäufe, Preise und andere finanzielle Aspekte langfristig aussehen werden.

Weitere Informationen finden Sie in der Einführung zu Finanzprognosen von Investopedia.

Beide Arten von Prognosen haben sich als vielversprechend erwiesen und es geschafft, Geschäftsverbesserungen für viele Unternehmen zu schaffen.

Wenn Sie mehr darüber erfahren möchten, wie Prognosen Marktentscheidungen beeinflussen können, ist Prediction Markets: Fundamentals, Designs, and Applications von Stefan Luckner et al. ein guter Ausgangspunkt.

Ein Problem, das wir mithilfe quantitativer Prognosen angehen können, ist die Bedarfsprognose oder Absatzprognose.

Bedarfsprognose- und Absatzprognoseansätze

Angenommen, Sie sind ein Einzelhändler, der viele Filialen betreibt, und jede Filiale verfügt über ein statisches Produktauffüllungssystem, das auf menschlichen Entscheidungen basiert, die auf bestimmten Ereignissen wie Jahreszeiten und Markttrends basieren.

Gelegentlich werden Sie auf eines dieser Probleme stoßen, das zu zwei Hauptproblemen führen kann:

  • Überlagerte Produkte. Einen beträchtlichen Produktvorrat haben, der in einem bestimmten Zeitraum verkauft, aber nicht verkauft werden soll.
  • Ausverkaufte Produkte. Die Möglichkeit zu haben, ein Produkt zu verkaufen, aber nicht in der Lage zu sein, weil das Produkt nicht verfügbar ist.

Laut einer Umfrage der IHL Group unter 600 Haushalten und Einzelhändlern verlieren Einzelhändler jährlich fast 1 Billion US-Dollar an Umsatz aufgrund von Out-of-Stock-Problemen.

„Laut dem Bericht, der per E-Mail an Retail Dive gesendet wurde, stoßen Käufer bei jedem dritten Einkaufsbummel auf Out-of-Stocks. Bei Lebensmittel-, Drogerie- und Masseneinzelhändlern stoßen sie bei jedem fünften Besuch auf vergriffene Artikel, bei Kaufhäusern und Fachhändlern bei jedem vierten und bei Elektronikgeschäften bei jedem dritten“, stellte die IHL Group fest.

Wie es scheint, führen beide Probleme zu einem Rückgang der Einnahmen, weil wir entweder eine Verkaufswahrscheinlichkeit verloren haben oder mehr Geld in unverkaufte Produkte investiert haben, was bedeutet, dass wir Vermögenswerte haben, die in absehbarer Zeit keine Einnahmen generieren, um ihre Kosten zu kompensieren.

Dies ist eindeutig nachteilig für den Cashflow des Unternehmens, und um diesem Risiko zu begegnen, brauchen wir zwei Dinge:

  • Mehr Inputs, die uns helfen, die Entscheidung zu treffen
  • Ein Prognoseteam, das langfristige strategische Planungen für Lagerauffüllungssysteme durchführen kann

Die Frage ist also: Was sind die Anzeichen dafür, dass Sie KI in Ihrem Unternehmen einsetzen müssen, um Ihren Prognoseprozess zu unterstützen?

Um diese Entscheidung zu treffen, benötigen Sie Expertenantworten auf die folgenden Fragen:

  • Ist die Vorhersage Ihrer Vertriebspipeline schwierig?
  • Ist Ihre Verkaufsprognose ungenau oder nicht genau genug (obwohl Sie historische Daten haben)?
  • Leiden Sie unter Out-of-Stock- oder Overstock-Problemen?
  • Sind Sie nicht in der Lage, beschreibende und schlussfolgernde Erkenntnisse aus den Daten zu extrahieren, die Sie besitzen, um Ihre Entscheidungen und Planung voranzutreiben?

Die Antworten auf diese Fragen sollten ein klares Signal sein, das Ihnen bei der Entscheidung hilft, KI in Ihren Prognosestrategien einzusetzen oder nicht.

Wie kann KI den Verkaufsprognoseprozess unterstützen?

KI hat in vielen Unternehmen großartige Ergebnisse gezeigt, indem sie menschliche Prognosen übertroffen hat und eine schnellere Entscheidungsfindung und Planung sowie zuverlässigere Risikomanagementstrategien ermöglicht. Aus diesem Grund setzen Top-Unternehmen KI in ihrer Planung ein.

Beim Umgang mit einem Nachfrageprognoseproblem kann die Zeitreihenprognosemethode verwendet werden, um die Verkäufe für jedes Produkt vorherzusagen, wodurch es Unternehmen ermöglicht wird, die Lagerauffüllung zu optimieren und das Auftreten der oben genannten Probleme zu minimieren. Viele Modelle haben jedoch Probleme mit Prognosen auf der Ebene einzelner Produkte oder Produktkategorien, da die erforderlichen Funktionen fehlen. Die Frage ist also: Wie können wir es zum Laufen bringen und das Beste aus unseren Daten machen?

Für den realen Handel sind diese Probleme alles andere als trivial. Sie haben entweder mehr als 1.000 Produkte, die viele Nichtlinearitäten in den Datensatz und multivariate Abhängigkeiten einführen, oder Sie müssen mit viel Vorankündigung über die Menge der prognostizierten Lagerauffüllung gewarnt werden, um sie produzieren oder kaufen zu können, oder Tun Sie alles, was Sie brauchen, um es zu erwerben, bis die Nachfrage eintritt.

In diesem Fall funktionieren klassische Modelle wie ARIMA und ETS nicht, und wir brauchen eine robustere Methode wie RNNs und XGBoost, und deshalb brauchen wir eine Menge Feature-Erstellung, um dieses Problem anzugehen.

Damit dies funktioniert, müssen wir:

  • Erwerben Sie die notwendigen Eingabemerkmale, die erforderlich sind, um die Vielfalt und Diversität der Produkte zu erklären.
  • Kategorisieren Sie unsere Daten, sodass jede Kategorie das gleiche Zeitreihenverhalten aufweist und jede Kategorie mit einem eigenständigen Modell adressiert wird.
  • Trainieren Sie unsere Modelle anhand der erfassten kategorisierten Eingabemerkmale.

Für diesen Artikel nehmen wir XGBoost als Beispiel für ein solches Modell.

Erforderliche Funktionen in Verkaufsprognosemodellen

Die für dieses Problem erforderlichen Merkmale werden in vier Hauptgruppen eingeteilt:

  • Zeitbezogene Funktionen
  • Verkaufsbezogene Funktionen
  • Preisbezogene Merkmale
  • Aktienbezogene Funktionen

Zeitbezogene Funktionen

Im Gegensatz zu Deep Learning (Recurrent Neural Network) können Machine-Learning-Modelle keine langfristigen oder kurzfristigen Abhängigkeiten innerhalb einer Zeitreihe erhalten, ohne eine manuelle Feature-Extraction-Schicht für das Datetime -Feature zu erstellen.

Viele Merkmale können aus dem Datum extrahiert werden, wie zum Beispiel:

  • Jahr
  • Tag
  • Stunde
  • Wochenende oder Wochentag (ob der Tag ein Wochentag oder ein Wochenende ist)
  • Wochentag

Viele Ansätze extrahieren einfach diese Zeitmerkmale und verwenden sie als Eingaben und trainieren Modelle, aber es kann eine weitere Entwicklung durchgeführt werden. Wie wir sehen können, sind die Merkmale (Tag, Stunde, Wochentag) periodisch, was bedeutet, dass sie eine Reihe sich wiederholender Werte haben. Wie kann ein Model damit umgehen?

Die kurze Antwort ist, es kann nicht, weil das Modell sieht, dass die Stunde 00:00 23 Stunden von 23:00 entfernt ist, aber tatsächlich ist es eine Stunde entfernt. Eine Möglichkeit, dies zu lösen, besteht darin, diese Merkmale in eine zyklische Transformation umzuwandeln.

Zeitbezogene Funktionen

Mit dem Konzept von Sinus und Cosinus oder Vektordarstellung kann man jede Stunde (24 Stunden) in einen Winkel umwandeln, und die Verwendung von Sinus und Cosinus macht es dem Modell viel einfacher, die tatsächlichen Proportionen zwischen den Stunden zu erkennen, unabhängig davon der Periodizität.

Dadurch wird die Diskontinuität entfernt, die in den periodischen Zeitmerkmalen oder anderen periodischen Merkmalen auftritt.

Für unseren Artikel verwenden wir den öffentlich zugänglichen Beispiel-Superstore-Datensatz und versuchen, den monatlichen Zielumsatz für eine bestimmte Produktkategorie vorherzusagen.

Außerdem werden wir die Python 3.7-Umgebung mit den folgenden Bibliotheken verwenden:

  • NumPy
  • Pandas
  • XGBoost
  • Sklearn

Jetzt zeige ich Ihnen, wie Sie die Funktion zum Konvertieren von Periodenmerkmalen erstellen und testen, ob sie hilfreich war oder nicht.

 def convert_periodic(val,period): theta = 2*np.pi*val/period sin_period = np.sin(theta) cos_period = np.cos(theta) return sin_period,cos_period def convert_month(x): return convert_periodic(x,12) df['sin_month'], df['cos_month'] = zip(*df['month'].map(convert_month))

Damit sind wir bereit zu testen, ob die hinzugefügte Funktion die Leistung verbessert oder nicht.

 X = df.drop(['Order Date','Sales','sin_month', 'cos_month'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False)

Wie wir sehen können, haben wir eine Log-1p-Transformation für unser Zielumsatzmerkmal durchgeführt, da es sich um ein schiefes Merkmal handelt (nicht normalverteilt).

Jetzt passen wir einen XGBoost-Regressor an die Daten an.

 y_pred = model.predict(X_test) print(f'Loss without cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss without cyclic conversion on testing set is 0.4313676193485837

Als nächstes werden wir es mit unserem erstellten Feature versuchen.

 X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with cyclic conversion on testing set is 0.33868030449130826

Wie wir sehen können, verbesserte sich der Verlust von 0,43 RMSE auf 0,33 RMSE.

Einige andere zeitbezogene Funktionen, an die Sie je nach Problem denken können, sind:

  • Anzahl der Monate, seit der Artikel im Geschäft war
  • Anzahl der Tage seit dem letzten Verkauf

Verkaufsbezogene Funktionen

Dies ist die wichtigste zentrale Eingabefunktion, die zur Vorhersage unserer Verkäufe erforderlich ist. Wie können Sie also das Beste aus den Verkaufsdaten herausholen? Wir können dies mit dem Konzept von Lag und Autokorrelation erreichen.

Verzögerungsmerkmale sind historische Verkaufsaufzeichnungen für die Produkte. Wenn wir beispielsweise eine 12-Lag-Funktion für monatliche Verkäufe als Eingabe für unser Modell verwenden, um die Verkäufe für Mai 2020 vorherzusagen, bedeutet dies, dass wir das Modell zwischen Mai 2019 und April 2020 mit Datensätzen versorgen. Dies kann sehr hilfreich sein.

Es kann auch mithilfe von Autokorrelationsdiagrammen interpretiert werden, um zu überprüfen, wie korreliert das Zielmerkmal mit seinen verzögerten Merkmalen ist. Dies hilft auch dabei, nur die korrelierten Features unter den verzögerten Features auszuwählen, sodass wir die Speichernutzung und die Feature-Redundanz verringern.

So können wir unserem Datenrahmen Verzögerungsfunktionen hinzufügen:

 for i in range(3): df[f'lag_{i+1}'] = df['Sales'].shift(i+1) df = df.dropna() df.head() 

Verkaufsbezogene Funktionen

Hier habe ich einen Wert für ein Feature mit drei Verzögerungen ausgewählt, das in unseren Trainingssatz aufgenommen werden soll. Diese Funktion ist ein Hyperparameter – Sie können ihn basierend auf dem Autokorrelationsdiagramm auswählen oder indem Sie viele Werte ausprobieren und in der Abstimmungsphase einfach den besten auswählen.

 X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with lag features on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with lag and aggregated sales features on testing set is 0.2862175857169188

Jetzt hat sich RMSE auf 0,28 verbessert, wobei sowohl Verzögerungsfunktionen als auch zyklische Konvertierungen verwendet werden.

Einige zusätzliche verkaufsbezogene Funktionen, die Sie hinzufügen können:

  • Anteil verkaufter Artikel (der Anteil der verkauften Artikel am Gesamtumsatz in einem Geschäft)
  • Häufigkeit von Verkaufsveranstaltungen für die Kategorie des Artikels
  • Hinzufügen des Konzepts des Dienstalters

Seniorität ist ein Konzept, das eingeführt wurde, um neuen Artikeln in einem Geschäft eine Senioritätsstufe zuzuweisen:

  • Dienstalter 0: Neue Artikel für das Unternehmen
  • Dienstalter 1: Artikel, die nie in diesem Geschäft, aber in anderen Geschäften des Unternehmens verkauft wurden
  • Dienstalter 2: Artikel, die zuvor in diesem Geschäft verkauft wurden

Preisbezogene Features

Ein einfaches Argument ist, dass eine der direkten Ursachen für den Anstieg und Rückgang der Verkäufe der Preis und die Werbeaktionen sind. Der Preis ist eine der besten Möglichkeiten, um zwischen verschiedenen Kategorien, Unterkategorien und Oberkategorien von Produkten zu unterscheiden.

Angenommen, jedem Produkt ist eine Kategorie und eine Unterkategorie zugeordnet, lassen sich beispielsweise folgende Preismerkmale erstellen:

  • (Durchschnitts-, Höchst-, Mindest-, Median-)Preise in allen Kategorien
  • (Mittel, Max, Min, Median) Preise über die Unterkategorie hinweg
  • Vergleiche zwischen diesen Statistiken, wie z. B. der Unterschied zwischen den einzelnen Statistiken sowohl in der Kategorie als auch in der Unterkategorie

Diese Aggregation kann mehrmals durchgeführt werden, indem viele Gruppierungen nach Thema verwendet werden (vorausgesetzt, wir zielen darauf ab, die monatliche Nachfrage vorherzusagen), wie zum Beispiel:

  • Monatlich, Geschäft, Kategorie
  • Monatlich, Geschäft, Unterkategorie
  • Monatlich, Geschäft, Artikel, Kategorie
  • Monatlich, Geschäft, Artikel, Unterkategorie

Außerdem können mit Ausnahme der monatlichen Gruppierung weitere Funktionen hinzugefügt werden, um das Verhalten der Preise insgesamt zu untersuchen.

Aktienbezogene Funktionen

Dies ist bei Einzelhändlern und Verkaufsprognosen nicht so üblich, aber es macht einen großen Unterschied in Verkaufsprognosemodellen. Bestandsdatensätze enthalten hauptsächlich die Bestandsdaten jedes Produkts, täglich in jedem Geschäft. Daraus können wir sie mit Verkaufsdaten kombinieren, um eine monatliche Umsatzquote für jedes Produkt zu erhalten. Dieses Verhältnis gibt an, wie schnell der Bestand eines Produkts vollständig verkauft wird, und es hat zwei Hauptvorteile:

  • Es kann dem Modell helfen, Verkäufe basierend auf dem aktuellen Lagerbestand zu prognostizieren.
  • Es kann uns helfen, diesen Wert zu nutzen, um Produkte in langsam, mittel und schnell drehende Produkte zu gruppieren. Dieses Clustering wird uns bei der Entscheidungsfindung und Modellierung helfen.

Dazu benötigen Sie neben den Verkaufsdaten auch tägliche Bestandsdaten für jedes Produkt und können dann die Lagerumschlagsquote wie folgt berechnen:

Aktienbezogene Funktionen

Hinweis: Diese Aggregationen werden basierend auf einem Zeitbereich durchgeführt. Wenn wir beispielsweise daran arbeiten, monatliche Verkäufe zu prognostizieren, wird ITO als Gesamtumsatz im letzten Monat über dem durchschnittlichen Lagerwert im selben Monat berechnet.

Verkaufsprognosen können Daten in Chancen verwandeln

Zusammenfassend lässt sich sagen, dass Verkaufsprognosen Unternehmen helfen können, ihre Einnahmen zu steigern und Gewinne zu erzielen, vorausgesetzt, sie verfügen über die richtigen Datenpipelines und verwenden die richtigen Feature-Engineering-Methoden. Dieser Artikel war ein Versuch, um zu zeigen, dass alle Arten von Daten bei der Lösung dieses Problems nützlich sein können.

Jedes Unternehmen sollte untersuchen, ob KI für seine Prognoseprobleme benötigt wird, und falls dies der Fall ist, benötigt es fachkundige KI-Ingenieure und Ratschläge von Ingenieuren für maschinelles Lernen, um ein eigenes Umsatzprognosesystem zu erstellen.

Wenn Sie ein Unternehmen/Einzelhändler sind, das bereit ist, diese Verkaufsprognosetechnik anzuwenden, sammeln Sie zunächst alle Daten, die Sie finden können, insbesondere die täglichen Verkäufe, den täglichen Bestand und die täglichen Transaktionen.

Sobald Sie über diese Daten verfügen, können Sie sie verwenden, um Ihre Einnahmen zu steigern und Lagerauffüllungsstrategien zu optimieren, sodass Ihr Unternehmen mit den verfügbaren Ressourcen den höchstmöglichen Gewinn erzielen kann, wie in mehreren Beispielen oben gezeigt, sowie mit Verkaufsprognosepraktiken, die von führenden Einzelhändlern verwendet werden .

Verweise:

Der Datensatz
Weiterführende Literatur zu Finanzprognosen