maskinintelligens.se

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.

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.