NACHRICHTEN / KI-TECHNOLOGIE

25. November 2020
Wir bei Artefact sind so französisch, dass wir beschlossen haben, Machine Learning auf Croissants anzuwenden. Dieser erste von zwei Artikeln erklärt, wie wir beschlossen haben, Catboost zu verwenden, um die Verkäufe von “viennoiseries” vorherzusagen. Die wichtigsten Merkmale, die den Umsatz beeinflussen, sind die letzten wöchentlichen Verkäufe, die Tatsache, ob das Produkt im Sonderangebot ist oder nicht und der Preis. Wir stellen Ihnen einige nette technische Funktionen vor, darunter die Kannibalisierung und warum Sie Ihre Zielvariable manchmal aktualisieren müssen.

Was ist das?

Wir bei Artefact sind so französisch, dass wir beschlossen haben, Machine Learning auf Croissants anzuwenden. Dieser erste von zwei Artikeln erklärt, wie wir beschlossen haben, Catboost zu verwenden, um die Verkäufe von “viennoiseries” vorherzusagen. Die wichtigsten Merkmale, die den Umsatz beeinflussen, sind die letzten wöchentlichen Verkäufe, die Tatsache, ob das Produkt im Sonderangebot ist oder nicht, und der Preis.

Wir stellen Ihnen einige nette Funktionen vor, darunter Kannibalisierung und warum Sie manchmal Ihre Zielvariable aktualisieren müssen. Wir haben die Vorhersagegenauigkeit und die Biais als Bewertungsmetriken gewählt. In unserem zweiten Artikel werden wir Ihnen erklären, wie wir dieses Modell in die Produktion gebracht haben und einige Best Practices von ML Ops.

Für wen?

  • Data Wissenschaftler, ML Ingenieur oder Data Liebhaber

Kontext

Entwicklung von Modellen

Jetzt, da wir ein gut definiertes Problem und einige Ziele haben, können wir endlich damit beginnen, schönen Python-Code in unseren Notizbüchern zu schreiben - der Spaß kann beginnen!

Data Anfrage

Wie bei jedem wissenschaftlichen data-Projekt beginnt alles mit data. Aus Erfahrung empfehlen wir dringend, die data-Anfrage so früh wie möglich zu stellen. Scheuen Sie sich nicht, viele data anzufordern und stellen Sie sicher, dass Sie für jede data-Quelle einen Ansprechpartner finden, an den Sie sich wenden können, um Ihre Fragen zur data-Sammlung oder zum Aufbau des data zu stellen.

Dank der verschiedenen Treffen konnten wir eine Liste der data erstellen, die wir verwenden konnten:

  • Transaktionelle data einschließlich Preis der Produkte.
  • Promotions: eine Liste aller zukünftigen Promotions und der dazugehörigen Preise.
  • Produktinformation: verschiedene Eigenschaften der Produkte.

Explorative Data-Analyse (EDA) und Erkennung von Ausreißern

Image for post

Von der Absatzprognose zur optimalen Absatzprognose

Eine Herausforderung veranlasste uns, unsere Zielvariable zu aktualisieren. Manchmal erwartete die Abteilung aufgrund eines unerwarteten Einflusses oder einer schlechten Vorhersage einen Mangel an Produkten vor Ende des Tages. Dann können zwei Phänomene auftreten: Der Kunde, der sein Produkt nicht finden kann, kauft nichts oder er kauft ein ähnliches Produkt. Anhand der historischen data haben wir einige Verteilungsgesetze (grundlegende Statistiken) abgeleitet, die uns geholfen haben, diese Auswirkungen zu modellieren und unsere Zielvariable zu aktualisieren, um nicht die historischen Verkäufe, sondern die optimalen Verkäufe für ein bestimmtes Produkt vorherzusagen.

Diese Aktualisierung der Zielvariablen ist heikel, denn es ist wirklich schwer zu sagen, ob die Aktualisierung sinnvoll war. Haben Sie die Qualität des data wirklich verbessert oder verschlechtert? Eine Möglichkeit, unsere Auswirkungen zu quantifizieren, bestand darin, Verkäufe zu nehmen, die nicht auf Lager waren, und einen falschen Mangel zu erzeugen, z.B. alle Verkäufe nach 17 oder 18 Uhr zu entfernen und dann zu versuchen, die Verkäufe zu rekonstruieren. Diese Methode hilft uns, zu einem klassischen überwachten Problem zurückzukehren, das wir objektiv bewerten können.

So konnten wir die optimalen Verkäufe vorhersagen und vermeiden, dass unser Algorithmus Knappheitsmuster lernt.

Unsere Modelle

Nachdem wir unser data gründlich gereinigt haben, können wir endlich ein paar Modelle testen und ausprobieren.

Image for post

Ein Modell gegen viele Modelle

Zusammenfassend haben wir einen Algorithmus verwendet: Catboost, um alle unsere 10 000 Zeitreihen für jedes Produkt und jedes Geschäft vorherzusagen. Aber was ist, wenn ein Artikel ein ganz bestimmtes Verkaufsmuster oder eine bestimmte Filiale hat? Würde der Algorithmus dieses Muster erkennen und lernen?

Diese Fragen führen uns zu der Frage, ob wir unsere Produkte und Geschäfte clustern und einen Algorithmus pro Cluster trainieren sollten. Auch wenn die Verwendung von Entscheidungsbaum-Algorithmen diese Herausforderung bewältigen sollte, haben wir in einigen spezifischen Fällen Einschränkungen festgestellt.

Boosting-Algorithmen sind iterative Algorithmen, die auf schwachen Lernern basieren, die sich auf ihre größten Fehler konzentrieren werden. Das ist natürlich etwas zu vereinfacht, aber es hilft mir, auf eine ihrer Einschränkungen hinzuweisen. Wenn Sie Ihre Zielvariable nicht normalisiert haben, wird sich Ihr Algorithmus “nur” auf die Produkte mit den größten Fehlern konzentrieren, die mit größerer Wahrscheinlichkeit auch die umsatzstärksten sind. Infolgedessen konzentriert sich der Algorithmus möglicherweise mehr auf die Produkte oder Geschäfte mit dem größten Umsatzvolumen.

Wir haben keine perfekte Lösung für dieses Problem gefunden, aber wir konnten einige Verbesserungen feststellen, indem wir unsere Produkte/Läden nach Familie oder Verkaufsfrequenz gruppiert haben.

Wie können Sie unser Modell bewerten?

  1.  Kreuzvalidierung

2. Die Wahl der Metrik:

Image for post

Abschließende Worte, einige Ratschläge für alle data-Projekte

Wichtigste Erkenntnisse

Interessieren Sie sich für Digital und data marketing?

Abonnieren Sie den Data Digest, den Newsletter von Artefact, und Sie erhalten jeden Monat praktische Ratschläge, Einblicke und Meinungen in Ihren Posteingang.

Melden Sie mich an!