Metod
Så modelleras det.
Öppet skrivet om metoderna jag använder. Dels för att det är rimligt att kunna granska den man anlitar, dels för att jag tycker det är roligt.
Grunder
Vad som går att veta ur data, och vad som kräver att man ingriper i världen för att ta reda på.
Datagenererande process
Den datagenererande processen är kedjan av verkliga händelser, beslut och systemhändelser som gjorde att raden hamnade i databasen med just det värdet. Varje metodval är ett påstående om den processen. Förstår man den inte är modellen en gissning som råkar vara uttryckt i matematik.
Kausalitet
Observationsdata kan visa att två saker följs åt. Den kan inte avgöra om den ena orsakar den andra, eftersom varje samband är förenligt med flera förklaringar. Att skilja dem kräver antingen ett ingrepp i världen — ett experiment — eller antaganden som är starkare än datan.
Fördelningar
Vilken fördelning som passar vilken affärsstorhet. Valet avgör mer än modellvalet.
Fördelningar — översikt
alla modellerade storheter
Valet av fördelning är antagandet om hur storheten beter sig: om den kan bli negativ, om den har en övre gräns, om variansen växer med nivån. Det valet påverkar prediktionerna mer än valet av algoritm, och det görs oftast utan att någon märker att det gjordes.
Poissonfördelningen
besök, ordrar, samtal, fel, skadeanmälningar
Poissonfördelningen beskriver antalet händelser under en given period när händelserna inträffar oberoende av varandra med konstant intensitet. Den har en enda parameter, och dess signum är att variansen är lika med medelvärdet. Just det antagandet håller sällan i verklig affärsdata.
Negativ binomial
ordrar per kund, ärenden per konto, sålda enheter
Negativ binomialfördelning beskriver antal händelser när spridningen är större än Poisson tillåter. Den har en extra parameter som fångar överspridningen, och den uppstår naturligt när intensiteten själv varierar mellan enheter, och det gör den så fort kunder eller butiker är olika.
Gammafördelningen
ordervärden, väntetider, skadebelopp, förbrukning
Gammafördelningen beskriver positiva, högerskeva storheter som ordervärden, väntetider och skadebelopp. Den kan aldrig bli negativ, har en svans åt höger och låter spridningen växa med nivån, tre egenskaper som stämmer med nästan all beloppsdata.
Betafördelningen
konverteringsgrader, klickfrekvenser, andel återkommande
Betafördelningen beskriver storheter som ligger mellan noll och ett: konverteringsgrader, andelar, sannolikheter. Dess främsta praktiska nytta är att den gör osäkerheten explicit, så att en konvertering på 3 av 10 inte jämförs rakt av med 300 av 1000.
Tunga svansar
ordervärden, kundvärden, skadekostnader, lagerbehov
En tung svans betyder att sällsynta, mycket stora värden står för en stor del av totalen. Lognormalfördelningen är det vanligaste sättet att beskriva det. Praktiska följden är att medelvärdet blir opålitligt och att beslut måste baseras på hela fördelningen.
Weibullfördelningen
uppsägningar, haverier, återköpsintervall
Weibullfördelningen beskriver tid till en händelse: uppsägning, haveri, återköp. Dess formparameter avgör om risken ökar, minskar eller är konstant över tid. Det är den fråga som oftast är mest intressant i sig.
Modelleringsutmaningar
De problem som återkommer i verklig data och sällan står i läroboken.
Gles data och pooling
segment, butiker, artiklar, kohorter
Partiell pooling är metoden för segment som är för små för egna skattningar men för olika för att slås ihop. Modellen låter varje segment låna styrka från helheten, i proportion till hur lite data det har. Små segment dras mot genomsnittet, stora får behålla sin egen signal.
Räknedata
ordrar, besök, ärenden, fel, enheter
Räknedata är observationer som består av antal: ordrar, besök, ärenden, fel. De kan inte vara negativa, de är heltal, och deras spridning växer med nivån. Att modellera dem med vanlig linjär regression fungerar tills värdena blir små, och då slutar det fungera på ett sätt som är lätt att missa.
Nollinflation
inaktiva kunder, artiklar utan efterfrågan, oanvända konton
Nollinflation uppstår när observerade nollor kommer från två olika processer: en enhet som kunde ha haft en händelse men inte fick någon, och en enhet som aldrig kunde få någon. Att modellera dem som samma sak underskattar systematiskt både antalet nollor och nivån hos de aktiva.
Kurvor från gles data
elasticitet, mättnadskurvor, inlärningskurvor
När en kurva ska skattas från få punkter avgör antagandena mer än datan. Lösningen är sällan mer flexibilitet utan mindre: en funktionsform med meningsfulla parametrar, begränsningar som utesluter det orimliga, och pooling mellan besläktade kurvor.
Kalibrering
churnrisk, konverteringssannolikhet, kreditrisk
En kalibrerad modell är en vars sannolikheter stämmer i längden: bland alla fall den ger 70 procent ska ungefär 70 procent inträffa. Rangordning kan vara perfekt ändå. Skillnaden spelar roll så fort sannolikheten ska multipliceras med ett belopp.
Obalanserade klasser
bedrägeri, churn, haverier, sällsynta fel
Obalans betyder att den intressanta klassen är sällsynt: bedrägerier, churn, haverier. Problemet är sällan modellen utan utvärderingen: en modell som alltid gissar på majoriteten får hög träffsäkerhet och är värdelös. Lösningen börjar i måttet, inte i omviktning av data.
Dataläckage
Dataläckage betyder att modellen under träning fått tillgång till information som inte finns när beslutet faktiskt ska fattas. Utvärderingen blir då för bra och drift blir en besvikelse. Det är den vanligaste enskilda orsaken till att en modell presterar sämre i produktion än i test.
Beslutsmodeller och återkoppling
budgivning, rekommendationer, prissättning, agenter
En modell som bara förutsäger observerar världen. En modell som fattar beslut förändrar den, och därmed vilken data som kommer in i nästa träning. Återkopplingen är tyst, ser ut som framgång, och kräver att utforskning, kontrollgrupp och spärrar byggs in innan systemet sätts i drift.
Konvertering och ordervärde
CTR, konverteringsgrad, ordervärde, varukorgsvärde
Förväntat värde av en visning eller ett besök är sannolikheten att något händer gånger värdet om det händer. De två faktorerna har olika fördelningar, olika datamängder och olika drivkrafter, och ska därför skattas var för sig. Att förutsäga intäkten direkt kastar bort den strukturen.
Metodfamiljer
Verktygen jag oftast når efter, och när de är rätt val.
GLM
En GLM utvidgar linjär regression med två val: vilken fördelning utfallet följer och hur de förklarande variablerna kopplas till dess medelvärde. Det låter samma ramverk hantera antal, andelar och belopp korrekt, i stället för att tvinga in dem i en normalfördelning.
Hierarkiska modeller
En hierarkisk modell skattar parametrar på flera nivåer samtidigt och låter dem dela information. Artiklar lånar av sin kategori, butiker av sin region. Det ger stabila skattningar för små enheter och behåller signalen hos de stora, utan att någon behöver välja var gränsen går.
Överlevnadsanalys
Överlevnadsanalys modellerar tiden fram till en händelse — uppsägning, haveri, återköp — och hanterar att många enheter ännu inte upplevt den. Sådana observationer är censurerade och bär informationen "höll minst så här länge". Vanlig regression kan inte ta vara på den.
Konform prediktion
Konform prediktion ger intervall med garanterad täckningsgrad utan att anta någon felfördelning. Metoden läggs ovanpå en befintlig modell och kalibreras på data modellen inte sett. Utlovas 90 procents täckning ska utfallet ligga innanför i nio fall av tio, och det går att följa upp i efterhand.
Gradient boosting
Gradient boosting bygger många små beslutsträd i följd, där varje träd korrigerar föregåendes fel. På tabelldata är det fortfarande den metod som oftast ger bäst träffsäkerhet, och den kräver mindre förbearbetning än nästan allt annat.
Bayesiansk inferens
Bayesiansk inferens ger en fördelning över parametrarna i stället för en punktskattning. Man börjar i vad som är känt sedan tidigare, uppdaterar med data, och får ut osäkerheten som en del av svaret snarare än som ett tillägg beräknat i efterhand.
KNN
KNN förutsäger genom att leta upp de k mest lika observationerna i träningsdatan och ta deras genomsnitt eller majoritet. Den har ingen träningsfas och inga antaganden om formen på sambandet. Det gör den till en bra baslinje och en dålig produktionsmodell.
Kollaborativ filtrering
rekommendationer, nästa köp, korsförsäljning
Kollaborativ filtrering ger rekommendationer utifrån mönster i vad användare gjort, utan att veta något om artiklarna i sig. Den avgörande praktiska frågan är vilken sorts återkoppling som finns: betyg som användaren aktivt satt, eller klick och köp som bara observerats. De kräver olika modeller.
Utvärdering
Hur man vet om en modell duger. Nästan alltid där projekt går fel.
Baslinjer
En baslinje är den enklaste metod som löser samma uppgift: säsongsnaiv prognos, historiskt medelvärde, dagens manuella rutin. Den mäts först, innan någon modell byggs, eftersom ingen modellsiffra går att tolka utan den. Ofta visar det sig att baslinjen räcker.
Felmått
Ett felmått är ett antagande om vad ett fel kostar. MAPE antar att fel är proportionella och symmetriska, RMSE att stora fel är oproportionellt värre, AUC att rangordning räcker. Väljs måttet av vana i stället för efter beslutet optimeras modellen mot fel sak.
Backtest
Ett backtest simulerar hur modellen hade presterat om den använts historiskt. Det är den enda utvärdering som liknar verkligheten för tidsberoende problem, och den enda som går att göra fel på ett dussin subtila sätt som alla pekar åt samma håll: mot ett för bra resultat.
Korsvalidering
Korsvalidering delar data i k delar, tränar på k−1 och testar på den utelämnade, och upprepar tills varje del varit testmängd. Det ger en stabilare skattning än en enda uppdelning. Den förutsätter att observationerna är utbytbara, vilket affärsdata sällan är.
Uppdelning efter grupp
Uppdelning efter grupp innebär att hela enheter — kunder, butiker, marknader, språk — läggs antingen i träning eller i test, aldrig i båda. Det är den enda utvärdering som besvarar frågan om modellen generaliserar till grupper den aldrig sett. Det är den fråga som oftast ställs vid expansion.