Logistische Regression, Lift Charts und Warenkorbanalyse
Die meisten Marketingfragen enden in einem Ja oder einem Nein. Reagiert dieser Kunde auf den Frühjahrskatalog? Legt die Person mit dem Weinkorb im Warenkorb auch den Käsekorb dazu? Die gewöhnliche Regression beantwortet das nicht sauber, und das Bauchgefühl sagt dir nicht, wie tief du versenden sollst. Die logistische Regression kann beides. In diesem Kapitel gehe ich durch Logit, Odds Ratios und die S förmige Kurve, schätze dann ein realistisch aussehendes Reaktionsmodell für The Gift Bow, meinen Solidus Demo Shop für Geschenkkörbe, score 20.000 Kunden in Dezile und finde die genaue Tiefe, an der der Grenzgewinn eines weiteren Dezils negativ wird. Unterwegs: Gains Charts, Varianzinflationsfaktoren und Vorzeichenwechsel, Kalibrierung, Klassenungleichgewicht und ein ehrlicher Vergleich mit Baummodellen. Die zweite Hälfte wendet dasselbe Werkzeug auf die Warenkorbanalyse an, als schärfere Alternative zu Assoziationsregeln, und zeigt, wie daraus Empfehlungen im Checkout werden, die du testen kannst. Das ist Teil 7 von 21 der Marketing Analytics Serie.
Die Frühjahrskampagne, die sich rechnet, oder eben nicht
Jeden März führt The Gift Bow, mein Solidus Demo Shop für Geschenkkörbe auf hampers.keferboeck.com, dasselbe Gespräch mit sich selbst. Weihnachten ist vorbei, und in der Kundendatei stehen rund 20.000 Menschen, die mindestens einmal gekauft haben. Ostern und Muttertag kommen, und ein gedruckter Frühjahrskatalog mit Gutscheincode kostet pro Haushalt etwa £ 1,20, wenn du Druck, Porto und den eingelösten Rabatt zusammenzählst. Schickst du ihn an alle 20.000, gibst du £ 24.000 aus, bevor ein einziger Korb das Lager verlässt. Schickst du ihn an niemanden, lässt du Umsatz liegen. Schickst du ihn aus dem Bauch heraus an "die guten Kunden", erfährst du nie, was du verpasst hast.
Die Frage ist nicht "sollen wir versenden". Die Frage ist "an wen, und wie tief". Das ist pro Kunde ein Ja oder Nein: reagiert oder reagiert nicht. In diesem Kapitel geht es um das häufigste Ergebnis im Marketing, das binäre, und um das Werkzeug, das dafür gebaut wurde: die logistische Regression. Ich verwende sie zweimal. Zuerst, um Kunden für die Frühjahrskampagne zu reihen und die Tiefe zu finden, ab der sich der nächste Katalog nicht mehr rechnet. Dann auf den Bestellpositionen für eine Warenkorbfrage: Wenn der Weinkorb im Warenkorb liegt, wie wahrscheinlich ist dann der Käsekorb, und was soll der Shop empfehlen. Die Zahlen sind illustrativ; die Methode ist genau die, die ich für Kunden einsetze.
Wo das in der Serie steht
Das ist Kapitel 7 von 21 und das vierte Kapitel von Teil zwei, Techniken mit abhängiger Variable (Kapitel 4 bis 10). Das vorige Kapitel, Poisson Regression: modellieren, wie oft Kunden etwas tun, hat Zählungen behandelt. Das nächste, Survival Analyse, Churn und Customer Lifetime Value, bringt die Zeit ins Spiel: nicht ob ein Kunde geht, sondern wann. Die logistische Regression sitzt dazwischen als Arbeitspferd: Die Hälfte von dem, was als "Predictive Marketing" verkauft wird, ist ein logistisches Modell mit einer ordentlichen Merkmalstabelle dahinter.
Warum die gewöhnliche Regression an Ja oder Nein scheitert
Kodiere Reaktion als 1 und keine Reaktion als 0, leg eine gewöhnliche Kleinste Quadrate Gerade hindurch, und drei Dinge gehen schief. Die Vorhersage ist nicht begrenzt, ein sehr aktiver Kunde bekommt eine vorhergesagte Reaktion von 1,3, und das ist keine Wahrscheinlichkeit. Die Fehler können nicht normalverteilt sein, weil das Ergebnis nur zwei Werte kennt. Und jeder Effekt wird linear erzwungen: von 1 auf 2 Bestellungen bringt genauso viel Wahrscheinlichkeit wie von 9 auf 10, und das glaubt niemand.
Die logistische Regression löst alle drei Probleme mit einer Idee. Statt die Wahrscheinlichkeit direkt zu modellieren, modelliert sie den Logarithmus der Odds. Odds sind die Wahrscheinlichkeit des Ereignisses geteilt durch die Wahrscheinlichkeit des Gegenereignisses: 20 Prozent Reaktionsrate sind Odds von 0,25, 50 Prozent sind Odds von 1, 90 Prozent sind Odds von 9. Odds laufen von null bis unendlich, und ihr natürlicher Logarithmus, der Logit, läuft von minus unendlich bis plus unendlich, genau das, was eine lineare Gleichung produzieren will.
Dabei ist die Wahrscheinlichkeit, dass der Kunde reagiert, bis sind die Dinge, die wir über ihn wissen, ist der Achsenabschnitt, also die Log Odds für einen Kunden, bei dem jedes null ist, und jedes ist die Veränderung der Log Odds pro Einheit mehr von , bei sonst gleichen Werten.
Löst du das nach auf, bekommst du die logistische Funktion, die S förmige Kurve, die der Methode ihren Namen gibt:
Das Symbol ist die Eulersche Zahl, rund 2,718. Was auch immer der lineare Teil liefert, die Funktion quetscht es zwischen 0 und 1: Ein Score von 0 wird zu einer Wahrscheinlichkeit von 0,5, ein Score von 2 zu 0,88, ein Score von minus 4 zu 0,018. Die Kurve ist in der Mitte am steilsten und an beiden Enden flach, und das beschreibt Menschen ganz ordentlich: Einen ohnehin treuen Kunden noch stärker zu bearbeiten bringt sehr wenig.
Die logistische Funktion: Ein linearer Score auf der waagrechten Achse wird zu einer Wahrscheinlichkeit zwischen 0 und 1.
Die Betas werden per Maximum Likelihood geschätzt, nicht per kleinster Quadrate, darum gibt es kein R Quadrat im üblichen Sinn; die Diagnostik, die zählt, ist eine andere, dazu gleich mehr.
Koeffizienten als Odds Ratios lesen
Die Betas leben auf der Log Odds Skala, und in der denkt niemand. Exponenzierst du sie, bekommst du Odds Ratios, mit denen Menschen tatsächlich arbeiten können:
Ein Odds Ratio von 1,73 für das Merkmal Geschenkkäufer heisst: Ein Geschenkkäufer hat 1,73 mal die Odds zu reagieren wie ein Selbstkäufer mit sonst identischen Eigenschaften. Odds, nicht Wahrscheinlichkeit. Liegt der Selbstkäufer bei 3 Prozent Wahrscheinlichkeit (Odds 0,031), liegt der Geschenkkäufer bei Odds von 0,054 und rund 5,1 Prozent.
Hier ist das Frühjahrsmodell von The Gift Bow, geschätzt auf der Frühjahrskampagne des Vorjahres (20.000 angeschrieben, 788 haben reagiert, Basisrate 3,9 Prozent). Jede Variable ist zum Tag des Versands gemessen.
| Variable | Koeffizient | Standardfehler | Odds Ratio | VIF |
|---|---|---|---|---|
| Achsenabschnitt | minus 3,40 | 0,21 | ||
| Monate seit letzter Bestellung | minus 0,09 | 0,012 | 0,91 | 1,6 |
| Bestellungen in den letzten 24 Monaten | 0,28 | 0,04 | 1,32 | 2,1 |
| Geschenkkäufer (1 = ja) | 0,55 | 0,11 | 1,73 | 1,2 |
| Firmenkunde (1 = ja) | 0,42 | 0,16 | 1,52 | 1,3 |
| Frühjahrsmail des Vorjahres geöffnet (1 = ja) | 0,78 | 0,10 | 2,18 | 1,4 |
| Durchschnittlicher Bestellwert, je £ 10 | 0,06 | 0,02 | 1,06 | 1,9 |
Zeile für Zeile. Jeder Monat seit der letzten Bestellung multipliziert die Odds zu reagieren mit 0,91; wer vor 12 Monaten zuletzt gekauft hat, hat also etwa 0,91 hoch 12, rund 0,32 mal die Odds von jemandem, der letzten Monat gekauft hat. Jede zusätzliche Bestellung in zwei Jahren multipliziert die Odds mit 1,32. Geschenkkäufer haben 73 Prozent höhere Odds als Selbstkäufer; das ist das Segment, für das der Frühjahrskatalog eigentlich gemacht ist. Firmenkunden reagieren besser als Privatkunden, auch nach Kontrolle der Bestellanzahl, vermutlich weil Büros Osterkörbe für die Belegschaft kaufen. Das Öffnen der Frühjahrsmail vom Vorjahr ist das stärkste einzelne Signal, ein Odds Ratio über 2. Der Bestellwert zählt, aber bescheiden: £ 50 mehr im Korb heben die Odds um rund 34 Prozent.
Daumenregel für die Standardfehler: Ein Koeffizient unter etwa dem Doppelten seines Standardfehlers könnte genauso gut null sein. Alles hier schafft diese Hürde; das Firmenkundenmerkmal nur knapp.
Die letzte Spalte, VIF, ist der Varianzinflationsfaktor und dein Kollinearitätsalarm:
ist das R Quadrat, das du bekämst, wenn du Variable auf alle anderen Prädiktoren regressierst. Erklären sie 80 Prozent der Streuung von , ist der VIF 5, und der Koeffizient wird auf den 20 Prozent Information geschätzt, die wirklich seine eigene ist. Über 5 werde ich nervös, über 10 entferne oder kombiniere ich Variablen. Bestellanzahl und Bestellwert hängen hier leicht zusammen (wer oft kauft, kauft auch grösser), daher 2,1 und 1,9; nichts Alarmierendes.
Das klassische Symptom von Kollinearität ist der Vorzeichenwechsel: Eine Variable, die die Reaktion offensichtlich erhöhen müsste, kommt negativ heraus, weil sie mit einem fast identischen Zwilling um dieselbe Information kämpft. Sagt dein Modell, Vielkäufer reagieren seltener, veröffentliche keine kluge Erklärung dafür. Prüf die VIFs, wirf einen der Zwillinge raus und schätz neu.
Von Wahrscheinlichkeiten zu einer gereihten Liste
Scoring ist Rechenarbeit: Für jeden Kunden in der Datei den linearen Teil berechnen, durch die logistische Funktion schicken, die 20.000 Menschen von wahrscheinlich bis unwahrscheinlich sortieren und in zehn gleich grosse Gruppen von 2.000 schneiden: Dezile. Dezil 1 sind deine besten 10 Prozent, Dezil 10 die schwächsten.
Die Scoring Pipeline. Die Schleife am Ende ist der Punkt: Jede Kampagne füttert das nächste Modell.
Jetzt die Kampagnenökonomie. Jeder Katalog kostet , hier rund £ 1,20. Jede Reaktion bringt an Deckungsbeitrag, Umsatz minus Warenkosten und Versand, etwa £ 38 bei einer durchschnittlichen Frühjahrsbestellung von £ 68. Für ein Dezil mit Kunden und Reaktionsrate ist der Gewinn aus dem Versand
und er ist positiv, sobald die Reaktionsrate des Dezils über der Gewinnschwelle liegt
also 1,20 geteilt durch 38, rund 3,2 Prozent. Jedes Dezil, das über 3,2 Prozent reagiert, zahlt sich selbst; jedes darunter verliert mit jedem Katalog Geld. Das ist die ganze Entscheidung "wie tief" in einer Zeile.
Der Lift eines Dezils ist seine Reaktionsrate relativ zum Durchschnitt:
wobei die gesamte Reaktionsrate ist, 3,9 Prozent. Ein Lift von 3 im obersten Dezil heisst, diese Kunden reagieren dreimal so oft wie eine Zufallsauswahl. Der kumulierte Lift macht dasselbe für die obersten Dezile zusammen, und genau das zeichnet der Gains Chart.
Die Deziltabelle, und wo der Grenzgewinn null wird
Hier ist die gescorte Datei für die Kampagne dieses Frühjahrs, mit den Reaktionsraten des Vorjahres Dezil für Dezil angewendet.
| Dezil | Kunden | Reaktionsrate | Reagierende | Umsatz £ | Dezilgewinn £ | Kumulierter Gewinn £ | Kumulierter Lift |
|---|---|---|---|---|---|---|---|
| 1 | 2.000 | 12,5 % | 250 | 17.000 | 7.100 | 7.100 | 3,17 |
| 2 | 2.000 | 8,0 % | 160 | 10.880 | 3.680 | 10.780 | 2,60 |
| 3 | 2.000 | 5,5 % | 110 | 7.480 | 1.780 | 12.560 | 2,20 |
| 4 | 2.000 | 4,0 % | 80 | 5.440 | 640 | 13.200 | 1,90 |
| 5 | 2.000 | 3,0 % | 60 | 4.080 | minus 120 | 13.080 | 1,68 |
| 6 | 2.000 | 2,2 % | 44 | 2.992 | minus 728 | 12.352 | 1,49 |
| 7 | 2.000 | 1,6 % | 32 | 2.176 | minus 1.184 | 11.168 | 1,33 |
| 8 | 2.000 | 1,2 % | 24 | 1.632 | minus 1.488 | 9.680 | 1,21 |
| 9 | 2.000 | 0,8 % | 16 | 1.088 | minus 1.792 | 7.888 | 1,09 |
| 10 | 2.000 | 0,6 % | 12 | 816 | minus 1.944 | 5.944 | 1,00 |
Lies die Tabelle von oben nach unten. Dezil 1 reagiert mit 12,5 Prozent, mehr als dreimal der Durchschnitt; 250 Bestellungen, £ 17.000 Umsatz und nach £ 2.400 für Kataloge ein Gewinn von £ 7.100. Bei Dezil 4 liegt die Reaktionsrate bei 4,0 Prozent, knapp über der Gewinnschwelle von 3,2 Prozent, und das Dezil bringt £ 640. Dezil 5 reagiert mit 3,0 Prozent, knapp darunter, und verliert £ 120. Ab dort vernichtet jedes weitere Dezil Geld, und wer die ganze Datei anschreibt, landet bei £ 5.944 Gewinn statt der £ 13.200, die du erreichst, wenn du nach Dezil 4 aufhörst.
Die Antwort lautet also: 8.000 Menschen anschreiben, nicht 20.000. Das spart £ 14.400 an Katalogen, verzichtet auf 188 Bestellungen aus den Dezilen 5 bis 10 und verdoppelt den Kampagnengewinn mehr als. Die Umsatzspalte will das Marketingteam anschauen; die Spalte kumulierter Gewinn sollte der Eigentümer anschauen. Die beiden haben ihren Höhepunkt an verschiedenen Stellen, und in dieser Lücke werden die meisten Kampagnenbudgets leise verbrannt.
Eine Verfeinerung ist wichtig. Die Gewinnschwellentiefe ist eine Punktschätzung. Bei 2.000 Menschen pro Dezil hat die Reaktionsrate in Dezil 4 einen Standardfehler von etwa 0,45 Prozentpunkten, "4,0 Prozent" heisst also in Wahrheit "irgendwo zwischen 3,1 und 4,9". Ich sage Kunden, Dezil 4 ist ein Münzwurf und Dezil 5 ein Nein, und das ist ein ehrlicherer Satz als "genau 8.000 versenden". Und weil Druck pro Stück günstiger wird bei Menge, rechne ich und pro Dezil neu, statt Konstanten anzunehmen.
Gains Chart: wie eine gute Reihung aussieht
Der Gains Chart trägt den Anteil aller Reagierenden, den du erreichst, gegen den Anteil der Datei auf, den du anschreibst. Zufallsauswahl ist die Diagonale: 30 Prozent der Datei anschreiben, 30 Prozent der Reagierenden erwischen. Die Kurve des Modells sollte sich darüber wölben.
Kumulierte Gains des Frühjahrsmodells gegen Zufallsauswahl. Die obersten 40 Prozent der Datei erreichen 76 Prozent aller Reagierenden.
Die Höhe der Kurve über der Diagonale in den ersten Dezilen ist dort, wo das Geld liegt; wo sie flach wird, schreibst du Menschen an, die ohnehin nicht reagieren. Und der Abstand zwischen der Kurve auf den Trainingsdaten und der Kurve auf einer Holdout Stichprobe ist dein Ehrlichkeitstest: Liegt die Holdout Kurve deutlich tiefer, hat das Modell das Vorjahr auswendig gelernt statt etwas über Kunden.
Das Balkendiagramm des kumulierten Gewinns sagt dasselbe in Pfund:
Kumulierter Kampagnengewinn nach Versandtiefe. Der Höhepunkt bei Dezil 4 ist die Antwort auf "wie tief".
Kalibrierung, Ungleichgewicht und wann ein Baum besser ist
Reihen ist eines, die tatsächlichen Wahrscheinlichkeiten sind etwas anderes. Ein Modell ist gut kalibriert, wenn die Kunden, die es mit 10 Prozent bewertet, auch tatsächlich zu rund 10 Prozent reagieren. Die logistische Regression ist auf ihren Trainingsdaten meist gut kalibriert, aber sie driftet: Dieses Frühjahr ist nicht das letzte. Ich prüfe das, indem ich die vorhergesagten Wahrscheinlichkeiten in zehn Gruppen teile und in jeder vorhergesagte mit beobachteter Reaktion vergleiche. Für die Versandtiefe zählt Kalibrierung mehr als für die Reihung, weil die Gewinnschwellenregel eine absolute Wahrscheinlichkeit mit vergleicht. Ist das Modell systematisch 20 Prozent zu optimistisch, verschiebt sich dein Gewinnschwellendezil.
Klassenungleichgewicht ist die andere Sorge, meist übertrieben. Bei 3,9 Prozent Reaktionsrate sind 96 Prozent der Zeilen Nullen. Die logistische Regression kommt damit zurecht, solange du absolut genug Einsen hast, und 788 Reagierende reichen für sieben Variablen locker. Balanciere die Trainingsdaten nicht aus, indem du Nullen wegwirfst oder Einsen duplizierst, um dann die vorhergesagten Wahrscheinlichkeiten als echt zu lesen: Das zerstört die Kalibrierung, und am Ende versendest du bis zu einer Gewinnschwelle, die in einer erfundenen Welt berechnet wurde. Musst du aus Geschwindigkeitsgründen herunterstichproben, korrigiere danach den Achsenabschnitt.
Baummodelle, vor allem Gradient Boosting, schlagen die logistische Regression oft um ein paar Punkte Lift, weil sie Interaktionen von selbst finden. Aber die logistische Regression hat drei Vorteile, die öfter zählen als der zusätzliche Lift. Du kannst sie lesen: Die Odds Ratio Tabelle oben ist für sich schon ein Managementgespräch. Das Modell ist stabil auf kleinen Dateien, und 20.000 Kunden mit 788 Reagierenden sind klein für Boosting. Und es altert würdevoll; verschiebt sich die Welt, wird ein logistisches Modell ein bisschen schlechter, während ein Baum von der Klippe fallen kann. Meine Regel: Fang logistisch an, ergänze von Hand zwei oder drei Interaktionsterme, wo die Geschäftslogik sie nahelegt, und greif erst zu Bäumen, wenn der Gains Chart auf dem Holdout sagt, dass die Komplexität bezahlt wird.
Warenkorbanalyse mit demselben Werkzeug
Die Warenkorbanalyse fragt, welche Produkte zusammen gekauft werden, und der Lehrbuchansatz sind Assoziationsregeln: wie oft Wein und Käse im selben Warenkorb liegen (Support), wie oft Käse vorkommt, wenn Wein drin ist (Konfidenz), und um wie viel öfter als zufällig (Lift). Ihre Schwäche ist, dass sie einen Auslöser nach dem anderen betrachten. Der Weinkorb sieht vielleicht so aus, als würde er Käsekäufe treiben, während beide in Wahrheit von Firmenkunden gekauft werden, die Geschenksets zusammenstellen, und der Treiber der Kundentyp ist.
Die logistische Regression löst das, indem sie das Vorhandensein eines Produkts zum Ergebnis macht und alles andere im Warenkorb, plus was du über den Käufer weisst, zu den Prädiktoren:
Jedes ist eine 1 oder 0 für Weinkorb, Schokoladenkorb und Firmenkunde, zählt die anderen Artikel, die schon im Korb liegen, und das Ergebnis ist, ob der Käsekorb in derselben Bestellung liegt. Hier das Modell auf 14.000 Gift Bow Bestellungen (der Käsekorb kommt in 9 Prozent davon vor):
| Prädiktor | Koeffizient | Odds Ratio | Lesart |
|---|---|---|---|
| Achsenabschnitt | minus 2,55 | Basisodds von rund 0,078 | |
| Weinkorb im Warenkorb | 1,10 | 3,00 | verdreifacht die Odds für Käse |
| Schokoladenkorb im Warenkorb | minus 0,45 | 0,64 | Substitute, keine Komplemente |
| Firmenkunde | 0,60 | 1,82 | Büros stellen Sets zusammen |
| Weitere Artikel im Korb (je Stück) | 0,20 | 1,22 | grosse Körbe werden grösser |
Lesart. Ein Privatkunde mit nur dem Weinkorb im Warenkorb hat Odds von rund 0,078 mal 3,00, also 0,23, eine Wahrscheinlichkeit von etwa 19 Prozent, Käse dazuzulegen, gegenüber rund 7 Prozent bei sonst leerem Korb. Ein Firmenkunde mit Weinkorb liegt bei etwa 30 Prozent. Die Schokoladenzeile hätten Assoziationsregeln übersehen: Schokolade und Käse sind in diesem Shop Substitute, Leute wählen einen Genusskorb, also ist es verschwendeter Platz am Bildschirm, jemandem Käse zu empfehlen, der schon Schokolade gewählt hat. Und die Regel "Wein impliziert Käse" ist zum Teil ein verkleideter Firmenkundeneffekt, weshalb das Odds Ratio von 3,0 für Wein unter dem rohen Lift von etwa 4 liegt, den du beim reinen Zählen bekommst.
Schätze ein solches Modell pro Produkt, das du empfehlen könntest, bewerte den lebenden Warenkorb im Checkout und zeige die zwei oder drei Produkte mit der höchsten vorhergesagten Wahrscheinlichkeit, die noch nicht im Korb liegen, mit einer Untergrenze, damit du nie etwas unter, sagen wir, 12 Prozent empfiehlst. Die technische Seite, inklusive Anbindung an Solidus, steht in KI Empfehlungen in Solidus bauen; die statistische Seite ist dieser Absatz. Bei hunderten Produkten wird der Ansatz mit einem Modell pro Produkt schwer, und du wechselst zu Matrixfaktorisierung; für vierzig Körbe ist er genau richtig.
Selbst durchführen
Daten für das Reaktionsmodell: eine Zeile pro Kunde zum Kampagnendatum, mit dem Ergebnis (reagiert im Attributionsfenster, meist vier bis sechs Wochen, zugeordnet über Code oder Mailadresse) und Prädiktoren, die ausschliesslich aus Informationen berechnet sind, die vor dem Versand bekannt waren. Dieser letzte Halbsatz ist die Stelle, an der die meisten ersten Versuche lecken. Für das Warenkorbmodell brauchst du eine Zeile pro Bestellung mit einem Flag pro Produkt.
Ein minimaler Fit in Python:
import numpy as np, pandas as pd
import statsmodels.api as sm
cols = ["months_since_last", "orders_24m", "gift_buyer",
"corporate", "opened_last_spring", "aov_per_10"]
X = sm.add_constant(df[cols])
model = sm.Logit(df["responded"], X).fit()
print(model.summary())
odds_ratios = np.exp(model.params)
df["p_hat"] = model.predict(X)
df["decile"] = pd.qcut(df["p_hat"].rank(method="first"), 10,
labels=range(10, 0, -1)).astype(int) # decile 1 = best
Zeitrahmen: Mit sauberen Bestelldaten ein erstes Modell in zwei Tagen, ein validiertes mit Deziltabelle und dokumentierter Tiefenempfehlung in rund zwei Wochen. Die Prüfungen, bevor du ihm traust: ein Holdout von 20 bis 30 Prozent, das die Schätzung nie berührt; die Holdout Gains Kurve innerhalb von ein paar Punkten der Trainingskurve; VIFs unter 5; jedes Vorzeichen in einem Satz einem Nichtstatistiker erklärbar; ein Kalibrierungsplot, der sich an die Diagonale schmiegt; und eine Leckagejagd, bei der du jede Variable mit dem genauen Datum auflistest, an dem ihr Wert bekannt wurde.
Fallen
Reaktion statt Gewinn optimieren. Das oberste Dezil nach Reaktion ist nicht immer das oberste nach Marge. Geschenkkäufer reagieren gut und kaufen den Korb um £ 45; Firmenkunden reagieren seltener und kaufen zwölf davon. Schwankt die Marge stark nach Segment, modelliere den Erwartungswert, oder rechne wenigstens pro Dezil.
Leckage aus der Zukunft. Jeder Prädiktor, der nach dem Versanddatum gemessen wird, auch ganz unschuldig (ein Feld "Kundenstatus", das beim Bestellen aktualisiert wird), liefert eine wunderschöne Gains Kurve im Büro und eine nutzlose im Feld. "Frühjahrsmail geöffnet" ist in Ordnung, wenn es die Mail vom Vorjahr meint; es ist Betrug, wenn es die von heuer meint. Sieht ein Modell zu gut aus, ist es das auch.
Das Modell in sich selbst hinein versenden. Schreibst du nur noch die obersten vier Dezile an, hat das nächste Jahr nur Reaktionen aus diesen vier, und ein darauf geschätztes Modell lernt nichts über die Dezile 5 bis 10. Halte immer ein kleines zufälliges Holdout über die ganze Datei, ein paar hundert Menschen, die den Katalog unabhängig vom Score bekommen. Das kostet ein bisschen und hält das Modell Jahr für Jahr ehrlich. Dieselbe Logik gilt für Lookalike Audiences auf den Werbeplattformen: Ein Seed nur aus Menschen, die du schon angesprochen hast, bringt der Plattform bei, mehr vom Gleichen zu finden.
Odds Ratios als Wahrscheinlichkeitsverhältnisse lesen. Bei 3,9 Prozent Basisrate ist der Unterschied klein; im Warenkorbmodell bei 19 bis 30 Prozent nicht. Ein Odds Ratio von 3 heisst nicht "dreimal so wahrscheinlich".
Vergessen, dass Assoziation keine Kausalität ist. Das Warenkorbmodell sagt dir, dass Käse und Wein zusammen gekauft werden, nicht dass Käse anzuzeigen mehr Käse verkauft. Das Empfehlungsmodul ist eine Hypothese; ein A/B Test im Checkout, wie ich ihn in Warenkorbabbruch ist ein fünfstelliges Problem beschreibe, ist der Beweis.
Zu viele Variablen. Vierzig Prädiktoren auf 788 Reagierende sind Overfitting mit Ansage. Zehn reichen. Besteht das Team auf allem, nimm einen penalisierten Fit (Ridge oder Lasso) und halte das Holdout heilig.
So mache ich das für Kunden
Das Ergebnis ist eine gescorte Liste, eine Deziltabelle mit markierter Tiefe und ein einseitiges Memo, das sagt, wie viele Menschen du kontaktieren sollst, was das kostet, was es bringen sollte und wie falsch diese Schätzung sein kann. Kein Foliensatz über Machine Learning.
Es beginnt mit dem kostenlosen Workshop: neunzig Minuten dazu, welche Kunden und Bestelldaten du wirklich hast, welches Ergebnis wir modellieren (reagieren, kaufen, abwandern, in den Warenkorb legen) und wie eine gute Entscheidung aussieht. Dann arbeite ich zwei Wochen echt und auf eigene Rechnung: Merkmalstabelle aus deinem Shop oder CRM, geschätztes und validiertes Modell, Deziltabelle, Gains Chart, Memo. Schlägt das Modell den Zufall nicht um einen Abstand, der Handeln lohnt, sage ich dir das, und du hast nichts verloren.
Tut es das, und du willst es für jede Kampagne laufen lassen statt einmal, wird daraus ein Data Science Auftrag: ein Scoring Job, der nächtlich läuft, ein Dashboard, das eine Frage beantwortet ("wie tief diesmal?"), und ein zufälliges Holdout, das alles ehrlich hält. Für einen Onlineshop wandert das Warenkorbmodell direkt als Empfehlungsblock in den Shop, und das ist Solidus Entwicklung, die ich selbst mache. Code, Modell und Daten gehören dir; nichts lebt in einem Werkzeug, das du von mir mieten musst.
Die Kosten stehen auf der Preisseite in klaren Worten. Wo die Arbeit ein Kampagnenprogramm ist statt ein einmaliges Modell, arbeite ich auch auf Provisionsbasis, gebunden an den zusätzlichen Gewinn, den das Holdout beweist. Das richtet meinen Anreiz an der Spalte aus, die zählt.
Fragen, bevor du den nächsten Versand freigibst
- Wo liegt die Gewinnschwelle der Reaktionsrate für diese Kampagne, und welche Dezile schaffen sie?
- Zeig mir den Gains Chart auf der Holdout Stichprobe, nicht auf den Trainingsdaten.
- Gibt es eine zufällige Kontrollgruppe über die ganze Datei, und wie gross ist sie?
- Welche Variablen stecken im Modell, und an welchem Datum wurde jede davon gemessen?
- Reihen wir nach Reaktionswahrscheinlichkeit oder nach erwartetem Gewinn, und macht das hier einen Unterschied?
- Für die Empfehlungen: Welche Produktpaare sind Substitute, und unterdrücken wir sie?
Diese Serie ist inspiriert von Mike Grigsbys Marketing Analytics (Kogan Page). Erklärungen, Beispiele und Zahlen hier sind meine eigenen.