CMD + K

Kapittel 5Begreper & formler · Ubalanserte datasett
Referanseside · Kapittel 5

Begreper & referanser

Alle nøkkelbegrepene, formlene og referansene fra Ubalanserte datasett, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.

Øv med flashcards14 kort fra dette kapittelet

Begreper

Sentrale begreper fra kapittelet med korte definisjoner.

01Klasseubalanse

En klassefordeling der én eller flere klasser har langt færre observasjoner enn de andre.

02Minoritetsklasse

Klassen med færrest observasjoner i datasettet.

03Resampling

Å endre hvilke treningsobservasjoner som brukes eller hvor ofte de brukes for å påvirke klassefordelingen.

04Oversampling

Å øke representasjonen til en klasse ved å trekke eksisterende eller syntetiske observasjoner flere ganger.

05Undersampling

Å redusere antall treningsobservasjoner fra en overrepresentert klasse.

06Klassevekt

En faktor som lar feil på enkelte klasser bidra mer til tapsfunksjonen.

07Terskeljustering

Å velge beslutningsterskel etter ønsket forhold mellom feiltyper, uten å trene modellen på nytt.

08Kostnadssensitiv læring

Trening eller beslutning som tar hensyn til at ulike feil kan ha ulik praktisk kostnad.

Formler

Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.

vektet-bce

Vektet binary cross-entropy

Klassevektene og lar ulike feiltyper påvirke treningen forskjellig.

Jgjennomsnittlig vektet tap
nantall observasjoner
w_1vekt for positiv klasse
w_0vekt for negativ klasse
y_isann label
p_ipredikert positiv sannsynlighet
balansert-klassevekt

Balansert klassevekt

En vanlig balansering gir større vekt til klasser med færre av de observasjonene.

w_cvekt for klasse c
ntotalt antall observasjoner
Kantall klasser
n_cantall observasjoner i klasse c
positiv-klasseandel

Positiv klasseandel

Klasseandelen beskriver hvor sjelden den positive klassen er før modellen vurderes.

πandel positive observasjoner
n_+antall positive
n_-antall negative
kostnadsbasert-terskel

Kostnadsbasert Bayes-terskel

Når sannsynlighetene er kalibrerte, flytter relative feilutgifter den optimale terskelen.

τbeslutningsterskel
C_FPkostnad ved falsk positiv
C_FNkostnad ved falsk negativ

Kodesnutter

Kodesnutter fra kapittelet, vist literal.

kap5-terskelsok

Metrikker ved flere terskler

python
import numpy as np rng = np.random.default_rng(4172)y = np.r_[np.zeros(950, dtype=int), np.ones(50, dtype=int)]score = np.clip(0.12 + 0.50 * y + rng.normal(0, 0.20, y.size), 0, 1) for terskel in (0.30, 0.50, 0.70):    pred = (score >= terskel).astype(int)    tp = np.sum((pred == 1) & (y == 1))    fp = np.sum((pred == 1) & (y == 0))    fn = np.sum((pred == 0) & (y == 1))    precision = tp / (tp + fp) if tp + fp else 0.0    recall = tp / (tp + fn) if tp + fn else 0.0    print(f"tau={terskel:.2f}  precision={precision:.3f}  recall={recall:.3f}")

Syntetiske sannsynlighetsscorer gjør terskeleffekten synlig uten å endre modellen. Den faste seed-en gir samme tall ved hver kjøring.

kap5-vektet-bce

Vektet binary cross-entropy fra bunnen

python
import numpy as np rng = np.random.default_rng(4172)y = np.array([0, 0, 0, 0, 0, 1, 1])p = np.clip(rng.uniform(0.10, 0.90, size=y.size), 1e-12, 1 - 1e-12)vekt = np.where(y == 1, 4.0, 1.0) tap = -(y * np.log(p) + (1 - y) * np.log(1 - p))vektet_tap = np.mean(vekt * tap) print("labels:       ", y)print("sannsynlighet:", np.round(p, 3))print("vektet bidrag:", np.round(vekt * tap, 3))print(f"vektet BCE = {vektet_tap:.4f}")

Eksemplet viser at klassevekt skalerer tapsbidraget fra positive observasjoner. Det lager ikke nye data og garanterer ikke bedre kalibrering.

Læringsmål

Hva du skal kunne etter å ha lest kapittelet.

  1. 01Forklare hvorfor accuracy kan være misvisende ved sterk klasseubalanse
  2. 02Sammenligne oversampling, undersampling, klassevekt og terskeljustering uten datalekkasje
  3. 03Beregne og tolke vektet tap, balanserte klassevekter og en kostnadsbasert terskel
  4. 04Velge metrikk og valideringsopplegg ut fra feilkonsekvens og realistisk klassefordeling