Gå till huvudinnehåll Gå till ytterligare innehåll

Balansering av klasser

I ett binärt klassificeringsproblem kan det finnas mer data som samlats in för en av de två klasserna. Denna ojämna balans mellan klasserna leder till att modellen lär sig mer om majoritetsklassen än om minoritetsklassen. Du kan använda klassbalansering för att förbättra modellen.

Vad är klassbalans?

I en datauppsättning för binär klassificering finns det två klasser. Klassbalansen är den relativa frekvensen för dessa klasser.

Om du singlar en helt slumpmässig slant tillräckligt många gånger skulle du få en perfekt balanserad uppsättning av två klasser (krona och klave). Det genomsnittliga klassvärdet är 0,5 i ett perfekt balanserat fall (där en klass är 1 och den andra klassen är 0).

Två perfekt balanserade klasser

Stapeldiagram med två balanserade klasser.

I många fall är klassbalansen inte jämn. Detta kan leda till att modellen lär sig mer om majoritetsklassen än om minoritetsklassen.

Exempel på klasser med ojämn balans

Stapeldiagram med klasser som är ojämnt balanserade.

Proportionell snedvridning

En modell kan vara mycket exakt genom att gissa majoritetsgruppen i obalanserade data. Om till exempel 95 procent av besökarna på en webbplats inte köper något, kan en modell vara 95 procent korrekt genom att säga att ingen kommer att köpa något. Modellen lär sig om majoritetsklassen, men det är ofta viktigare att lära sig om minoritetsklassen. Varför gör till exempel de övriga fem procenten av besökarna på webbplatsen inköp?

Effekter av klassbalansering

Genom att göra en klassbalansering av dina data kan du få en modell som är mer funktionsfokuserad och som har lärt sig mer om minoritetsklassen. Potentiella effekter på modellen är bland annat:

  • Högre F1-poäng eftersom minoritetsklassens vikt har ökat.

  • Marginellt lägre total noggrannhetspoäng eftersom den inte förlitar sig lika mycket på proportionell snedvridning.

  • En mer informativ modell, eftersom den bygger mer på funktionerna och på hur klasserna kan skiljas åt. SHAP-värdena kan vara mer informativa i en klassbalanserad modell.

Observera att klassbalansering i små datauppsättningar kan leda till att data om funktioner går förlorade. Genom ändring av proportionerna i datauppsättningen kan dessutom viss information gå förlorad, vilket kan påverka modellens prognoser.

Så här klassbalanserar du

För att klassbalansera data måste du först ta reda på vilken balans som är idealisk för ditt specifika affärsfall. Allt från 80/20 till 50/50 kan behövas. Balansera bara tillräckligt för att få det du behöver, eftersom en överdriven anpassning av klassbalanseringen kan leda till en överanpassad modell. Testa sedan modellen med manuella undantaganden.

Den vanligaste metoden för att balansera klasserna är underurval. Detta görs genom att man gör ett slumpmässigt urval ur majoritetsklassen så att den kommer i bättre balans med minoritetsklassen. Figuren illustrerar hur urval görs från majoritetsklassen i den ursprungliga datauppsättningen för att få en datauppsättning med balanserade klasser.

Underurval från majoritetsklassen (blå) för att få en jämn balans med minoritetsklassen (gul)

Illustration av underurval.

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!