Två frågor låter lika och är helt olika.
Hur bra prickar modellen en ny order från en butik vi redan har? Hur bra prickar den en butik vi öppnar nästa månad?
Slumpmässig korsvalidering besvarar den första. Uppdelning efter grupp besvarar den andra. Blandar man ihop dem lovar man den andra och mäter den första.
Varför slumpmässig uppdelning ljuger vid grupperad data
Har en kund fyrtio rader i datan hamnar några i träning och några i test. Modellen har då sett just den kundens mönster och känner igen dem i testmängden. Resultatet blir för bra på ett sätt som inte upptäcks av något diagnostiskt mått. Det ser bara ut som en välfungerande modell.
Det är dataläckage via gruppidentitet, och det är särskilt lömskt när gruppen inte finns som en kolumn. Postnummer, enhets-id och sessionsnyckel kan alla bära gruppidentitet indirekt.
Vilken grupp man ska hålla ute
Den ska svara mot den generalisering ni faktiskt behöver.
| Håll ute | Besvarar |
|---|---|
| Kund | Fungerar modellen på nya kunder? |
| Butik eller lager | Fungerar den på nya etableringar? |
| Geografi eller marknad | Håller den vid expansion till ett nytt land? |
| Språk | Fungerar textmodellen på ett språk den inte tränats på? |
| Artikelkategori | Klarar den ett sortiment vi inte fört förut? |
| Tidsperiod | Håller den framåt? Se backtest |
Frågan är inte teknisk. Den avgörs av vad beslutet gäller, och det är därför utvärderingen bör designas tillsammans med den som ska fatta beslutet.
Kombinera grupp och tid
Ofta behövs båda. En modell ska både klara nya butiker och nästa kvartal.
Då hålls en uppsättning grupper ute och utvärderingen görs på en senare tidsperiod. Det ger en hårdare och ärligare siffra, och den brukar vara märkbart lägre än den man hade innan. Det är hela poängen.
En rimlig ordning i en granskning: mät med slumpmässig uppdelning, sedan med gruppuppdelning, sedan med bådadera. Skillnaderna mellan de tre talen berättar var modellens verkliga svaghet ligger.
Vad man gör åt en svag gruppgeneralisering
Faller resultatet kraftigt när hela grupper hålls ute betyder det att modellen lärt sig enheterna snarare än fenomenet.
Modelleringssvaret är oftast hierarkiska modeller: låt grupperna dela information i stället för att var och en få egna fria parametrar. Se partiell pooling. Då får en ny butik kategorins beteende i stället för ingenting alls.
Utvärderingen efter grupp är alltså inte bara ett mått. Den pekar också ut vilken modellstruktur som behövs.