Wie viele Croissants brauchen wir heute? Verkaufen wir morgen mehr Vollkornbrot oder Roggenmischbrot? Wie viele Laugenweckle sollen wir heute produzieren? Das sind alltägliche Fragen beim Führen einer Bäckerei, die Matthias Raisch, Leiter Verkauf und Verwaltung bei der gleichnamigen Bäckerei und Konditorei mit Hauptsitz in Calw umtreiben. Mit dem KI-LAB Nordschwarzwald haben wir diese Fragen gemeinsam untersucht. Die Erkenntnisse sind in diesem Beitrag zusammengefasst:

Ausgangssituation

In den 23 Verkaufsstellen soll den Kunden stets eine gewisse Vielfalt an Produkten zur Verfügung stehen, auch abends soll es zumindest noch eine Auswahl an Backwaren zu kaufen geben. Die Verfügbarkeit von Brot, Brötchen und Kuchen soll gewährleistet werden, aber möglichst ohne, dass abends viel zu viele Retouren übrig sind. „Wir wollen nachhaltig produzieren“, so Matthias Raisch.

Derzeit erfolgen diese Absatzprognosen manuell unter Berücksichtigung einiger Faktoren wie Feiertage, Wetter, Ferien usw. Ob diese Vorhersagen durch Verfahren der Künstlichen Intelligenz (KI) verbessert werden können, untersuchen nun Studierende der Hochschule Pforzheim zusammen mit der Bäckerei. Den Kontakt stellte das KI Lab Nordschwarzwald her, welches u.a. KMU hinsichtlich der Möglichkeiten von KI berät. Unter der Leitung von Prof. Schuster, der auch die wissenschaftliche Leitung des KI Labs inne hat, versuchen die Studierenden Nico Döring, Melanie Stitzl, Diego Rodrigo Hidalgo Cardenas und Jonathan Kreiss in den nächsten Monaten die derzeitige Prognosegenauigkeit zu übertreffen. Dafür sollen Modelle des Maschinellen Lernens evaluiert und für den Einsatz mit den Software-Werkzeugen vorbereitet werden. „Toll, dass Hr. Raisch hier so offen gegenüber KI ist und wir mit den Studierenden unterstützen können“, so Prof. Thomas Schuster, „wir sind sehr gespannt, welche Genauigkeit wir erreichen können“. Kurz vor Weihnachten soll es bereits einen Zwischenbericht und Ende Januar Ergebnisse geben, um so die bestmögliche Anzahl von frischen Weckle im Laden zu haben.

Datenanalyse

Zur Bewertung der unabhängigen Variablen wurden zunächst einige Visualisierungen vorgenommen. Zunächst wurde die Verkaufsmenge pro Tag anhand einiger Diagramme wie z.B. Histogramm, Liniendiagramm und Boxplots visualisiert. Das Ziel war es die Verkaufsdaten zu untersuchen und Trends, wie zum Beispiel Saisonalitäten zu entdecken. Anhand eines Histogramms wurde beispielsweise festgestellt, dass an den meisten Tagen, zwischen 60 und 175 Brezeln verkauft werden. Anschließend wurde mit Hilfe des Spearman Koeffizienten die Korrelation zwischen der Verkaufsmenge und den einzelnen Parametern ermittelt. Erwartungsgemäß zeigte sich die höchste Korrelation (0,5) zwischen dem Wochentag und der Verkaufsmenge. Diese entspricht einer positiven mittelstarken Korrelation.  Wie erwartet ist die Verkaufsmenge an Freitagen , Samstagen und Sonntagen höher als an anderen Wochentagen. Ein ähnliches Bild zeigte sich an Feiertagen.

Modellbildung (Training und Bewertung)

Das Trainingsverfahren wurde, durch ein Sliding Window erweitert. Dabei wird ein Zeitfenster rollierend über dem Datensatz verschoben und durch die aus dem Fenster entnommenen Datenpunkte (Lag Variablen) erweitert.

K-Nearest-Neighbour:
Die Daten wurden in Trainings- und Testdaten aufgeteilt und durch eine Datenskalierung transformiert. Da der kNN Algorithmus nur den Hyperparameter k zum Tuning bereitstellt, wurde mit Hilfe des GridSearchCV-Algorithmus der optimale Wert k=4 ermittelt.

Random Forest:
Die Daten wurden auch hier aufgeteilt. Um die Hyperparameterauswahl zu optimieren und eine Kreuzvalidierung zu ermöglichen, wurde eine randomisierte Suche (RandomSearchCV) und in einem zweiten Schritt der GridSearchCVAlgorithmus auf die eingegrenzten Parametermöglichkeiten angewandt. Als Baseline diente eine Random Forest Prognose mit den Standard-Hyperparametern (Default Modell) aus der scikit-learn Bibliothek. Die Prognose mit dem Default Modell erreichte eine Prognosegenauigkeit von 83.85%. Mit den Parametern aus der randomisierten Suche verbesserte sich das Ergebnis um 1.27% auf 85.12%. Eine Auswahl durch den GridSearchCV-Algorithmus, führte zu keiner weiteren Steigerung. Daher wurde die Annahme gestellt, dass das Nutzenoptimum erreicht wurde. Die wichtigsten Hyperparameter des Modells am Nutzenoptimum (Finales Modell) sind 1400 klassifizierende Bäume und eine maximale Baumtiefe von 10.

Evaluation

Aus unserem Vergleich der Machine Learning Algorithmen hat das Finale Modell des Random Forest mit einer Prognosegenauigkeit von 85.12% am besten abgeschnitten. Der kNN-Algorithmus konnte nur eine Prognosegenauigkeit von 78.64% liefern. Im Vergleich ist somit die Prognose des Random Forrest im Schnitt um 6.48% besser. Auch konnte das MSE beim Random Forest deutlich gesenkte werden, was für die Robustheit.des Modells spricht. Die Ergebnisse können nun genutzt werden, um weitere Anpassungen vorzunehmen und die Prognosegenauigkeit des Random Forests zu verbessern. Zudem kann es als Baseline für Vergleiche mit weiteren Verfahren dienen.

Fazit

Von der Bäckerei wissen wir, dass man sich bei einer manuellen Prognose etwa um die doppelte Menge verschätze. Somit könnte künftig die manuelle Einschätzung der Mitarbeiter ersetzt werden. In einem nächsten Schritt können weitere Verfahren trainiert und mit den bereits trainierten Modellen verglichen werden. Darüber hinaus lässt sich die Verkaufsprognose nun auch auf andere Artikel und Filialen sowie zusätzliche Verkaufsstrategien erweitern. Die interessanteste Erweiterung wäre die direkte Anbindung an das Kassensystem, sodass die Prognose mit dem Sliding Window Ansatz jeweils tagesaktuell mit den entsprechenden Verkaufsdaten durchgeführt werden kann. Für Prognosen in der Praxis ist die Komplexität des eingesetzten Verfahrens, Modells und Benutzerschnittstelle abzuwägen. So kann ein leicht erklärbares Verfahren die Akzeptanz und das Vertrauen in das System fördern. Eine Reduzierung von Features vereinfacht zudem die Verwaltung von Datenabhängigkeiten. Die Benutzerschnittstelle soll einfach gehalten werden, z.B. jeweils eine Spalte mit dem historischen Durchschnitt der Verkaufszahlen des Produkts pro Wochentag und der angepassten KI-Prognose.

Weitere Informationen