CMD + K

Introduksjon til maskinlæringLogistisk regresjon og klassifikasjonBegreper & formler14
6 min lesing

Logistisk regresjon og klassifikasjon

Gå fra lineær score til sannsynlighet og klassevalg med sigmoid, beslutningsterskel og binary cross-entropy.

Læringsmål
  • 01Regne fra featurevektor via lineær score og sigmoid til sannsynlighet og klasse
  • 02Forklare sammenhengen mellom sannsynlighet, odds, log-odds og vektene i logistisk regresjon
  • 03Beregne og tolke binary cross-entropy for sikre og usikre prediksjoner
  • 04Analysere hvordan beslutningsterskelen påvirker klassevalg og beslutningsgrense
  • 05Skille mellom rangering, klassifikasjon og sannsynlighetskalibrering

Tre svar fra én modell

En nettbutikk vil forutsi om en kunde kommer til å fullføre et kjøp. For én kunde kan modellen først beregne scoren 1,4, deretter sannsynligheten 0,80, og til slutt klassen «kjøp». Disse tre svarene betyr ikke det samme. Scoren er et ubegrenset mellomresultat, sannsynligheten uttrykker modellens graderte tro, og klassen er en beslutning etter en valgt regel. Å holde dem fra hverandre er nøkkelen til binær klassifikasjon, der hvert eksempel har label 0 eller 1.

Logistisk regresjon starter med en lineær kombinasjon av featureverdiene. ƒlineær klassifikasjonsscore gir én score for observasjonen. En positiv vekt betyr at større featureverdi trekker scoren opp når de andre featureverdiene holdes faste; en negativ vekt trekker den ned. Biasleddet flytter alle scorer likt. Modellen er derfor enkel å inspisere, men scoren kan være hvilket som helst reelt tall. Den kan ikke brukes direkte som sannsynlighet.

Neste steg er sigmoid, som bøyer tallinjen inn i intervallet mellom 0 og 1. ƒsigmoidfunksjonen gir 0,5 når , nærmer seg 1 for store positive scorer og nærmer seg 0 for store negative scorer. Den S-formede kurven er brattest rundt null. En scoreendring fra 0 til 1 flytter sannsynligheten tydeligere enn en like stor endring fra 5 til 6.

-6601lineær score zsannsynlighet pstandardterskelz=0 gir p=0,5Store scoreendringer nær null påvirker sannsynligheten mer enn like store endringer i halene.
FIGSigmoid gjør score om til sannsynlighet

Den første kodesnutten regner alle tre nivåene for seks syntetiske observasjoner. Legg merke til at det samme sannsynlighetssettet kan gi andre klasser når terskelen endres.

kap3-sigmoid-prediksjon

Fra lineær score til klasse

python
import numpy as np rng = np.random.default_rng(4172)X = rng.normal(size=(6, 2))w = np.array([1.2, -0.8])b = -0.15 score = X @ w + bprob = 1 / (1 + np.exp(-score))prediction = (prob >= 0.60).astype(int) for z, p, y_hat in zip(score, prob, prediction):    print(f"z={z:6.3f}  p={p:5.3f}  klasse={y_hat}")

Eksemplet skiller tydelig mellom lineær score, sannsynlighet og klasse. Endre terskelen uten å trene modellen på nytt, og observer hvilke prediksjoner som skifter klasse.

Odds og logit forklarer modellnavnet

Hvorfor heter modellen *logistisk* regresjon når oppgaven er klassifikasjon? Forklaringen ligger i odds. En sannsynlighet på 0,80 tilsvarer odds 4:1, fordi hendelsen er fire ganger så sannsynlig som alternativet. ƒodds gjør denne omregningen. Sannsynlighet 0,50 gir odds 1, mens 0,20 gir odds 0,25. Odds er positive, men fremdeles ikke lineære eller symmetriske rundt null.

En logit er logaritmen til oddsene. ƒlog-odds sier at logistisk regresjon lar log-oddsen være den lineære scoren. Når en feature øker med én enhet og de andre holdes faste, øker log-oddsen med vekten . Oddsen multipliseres dermed med . Dette er en presis tolkning, men ikke det samme som at sannsynligheten øker med et fast antall prosentpoeng. Sannsynlighetsendringen avhenger av hvor på sigmoidkurven observasjonen ligger.

Tenk at vekten til «antall tidligere kjøp» er 0,7. Ett ekstra kjøp multipliserer oddsen med omtrent , altså rundt 2,0, dersom resten er likt. Dersom utgangssannsynligheten er 0,10, blir den nye sannsynligheten ikke 0,20 nøyaktig. Først må vi gjøre 0,10 om til odds, multiplisere oddsen og gjøre tilbake til sannsynlighet. På eksamen er dette skillet mellom odds, log-odds og sannsynlighet en vanlig kilde til feil.

Trening med sannsynlighetstap

For å lære vektene trenger vi et tap som vurderer sannsynlighetene, ikke bare de ferdige klassevalgene. binary cross-entropy sammenligner hver label med modellens sannsynlighet. ƒbinary cross-entropy bruker leddet når labelen er 1 og når labelen er 0. Riktig og sikker prediksjon gir lavt tap. Sikker prediksjon i feil retning gir svært høyt tap.

Anta at labelen er 1. En prediksjon på 0,9 får et lite tap, mens 0,1 får et langt større tap. Prediksjonen 0,5 uttrykker usikkerhet og havner mellom dem. Denne graderingen gir treningsalgoritmen mer informasjon enn bare «riktig» eller «feil». To observasjoner kan begge klassifiseres feil ved terskel 0,5, men sannsynlighet 0,49 er mye nærmere riktig side enn 0,01.

kap3-bce-fra-bunnen

Binary cross-entropy fra bunnen

python
import numpy as np rng = np.random.default_rng(4172)y = rng.integers(0, 2, size=8)p = np.clip(rng.uniform(0.05, 0.95, size=8), 1e-12, 1 - 1e-12) tap_per_observasjon = -(y * np.log(p) + (1 - y) * np.log(1 - p))bce = tap_per_observasjon.mean() print("labels:      ", y)print("sannsynlighet", np.round(p, 3))print("tap:         ", np.round(tap_per_observasjon, 3))print(f"BCE = {bce:.4f}")

Koden viser hvorfor en sikker feil får stort tap. Klipping beskytter logaritmen mot nøyaktig 0 og 1 uten å endre hovedideen.

I praktisk kode klipper vi ofte sannsynligheter litt bort fra 0 og 1 før logaritmen tas. Det hindrer numerisk uendelig tap. Biblioteker bruker gjerne enda mer stabile uttrykk direkte fra logiten. Det er en implementasjonsdetalj, men den pedagogiske betydningen står fast: cross-entropy straffer trygg feilinformasjon hardt.

Cross-entropy summeres vanligvis over en batch og minimeres med gradientbasert trening. Hver observasjon trekker vektene i en retning som gjør den observerte labelen mer sannsynlig. Et feilklassifisert punkt langt fra grensen kan gi et kraftig bidrag, mens et allerede sikkert og riktig punkt bidrar lite. Dersom klassene overlapper, finnes det ikke nødvendigvis vekter som klassifiserer alt riktig. Da søker treningen parameterne som gir best samlet sannsynlighetstilpasning, ikke en grense som tvinger treningsfeilen til null. Regularisering kan samtidig begrense svært store vekter og gjøre modellen mindre følsom for små endringer i dataene.

Fra sannsynlighet til beslutning

En sannsynlighet er ikke en handling. Nettbutikken må til slutt velge hvem som skal få et tilbud. En beslutningsterskel gjør sannsynligheten om til klasse gjennom ƒbeslutningsregel. Med terskel 0,5 blir positiv. Med terskel 0,7 blir den samme observasjonen negativ. Modellen er ikke trent på nytt; bare beslutningsregelen er endret.

janeiFeaturevektor xScore z = wᵀx+bp = σ(z)p ≥ τ?Prediker 1Prediker 0Terskelen påvirker klassevalget, men endrer verken score eller sannsynlighet.
FIGFra observasjon til klassevalg

En lavere terskel gjør vanligvis flere observasjoner positive. Det kan fange flere virkelige kjøpere, men sender også tilbud til flere som ikke kjøper. En høyere terskel gjør det motsatte. Riktig terskel avhenger derfor av konsekvensene ved falske positive og falske negative. Standardverdien 0,5 er en konvensjon, ikke en universell optimumsregel.

En beslutningsgrense er alle inputpunkter som ligger akkurat på terskelen. Ved terskel 0,5 er sigmoidens input null, så grensen tilfredsstiller . Med to features er dette en rett linje. Med tre er det et plan, og med flere er det en hyperflate. Logistisk regresjon lager altså en lineær grense selv om sannsynlighetskurven er S-formet.

predikert 1predikert 0p=0,5000111I to features er wᵀx+b=0 en linje; i flere dimensjoner er den en hyperflate.
FIGLineær beslutningsgrense i to dimensjoner

Å flytte terskelen forskyver grensen parallelt, men endrer ikke retningen som vektene bestemmer. Dersom klassene krever en sirkelformet eller sterkt krokete grense, må feature-transformasjoner eller en annen modell til. Samtidig er en enkel lineær grense ofte en styrke: den er rask, stabil og lett å bruke som baseline.

Sannsynlighet er et løfte som må kontrolleres

En modell kan rangere kundene riktig uten at tallene kan tolkes bokstavelig. sannsynlighetskalibrering betyr at predikerte sannsynligheter samsvarer med observerte frekvenser over mange lignende tilfeller. Blant kunder som får omtrent 0,70, bør rundt 70 prosent faktisk kjøpe. Dette kan ikke kontrolleres på én kunde; det vurderes over grupper eller intervaller.

God klassifikasjon og god kalibrering er ulike egenskaper. En modell kan skille kjøpere fra ikke-kjøpere godt, men være for selvsikker og gi 0,95 når den observerte frekvensen bare er 0,75. Den kan også være godt kalibrert i gjennomsnitt, men rangere enkeltkunder dårlig. Derfor undersøker vi både rangering, terskelbaserte metrikker og kalibrering når sannsynligheten skal styre kostnader eller prioritering.

Unngå å si at logistisk regresjon «gir den sanne sannsynligheten». Den gir en modellert sannsynlighet under antakelser, treningsdata og en bestemt featurebeskrivelse. Skjev datainnsamling, endret kundeadferd og utelatte features kan gjøre tallet misvisende. Sannsynligheten må valideres på data som ligner bruken.

En eksamenssikker arbeidsrekkefølge

Når en oppgave oppgir vekter og features, regn først den lineære scoren. Bruk deretter sigmoid dersom oppgaven ber om sannsynlighet. Bruk terskelen til slutt dersom den ber om klasse. Ikke hopp rett fra score til klasse med mindre grensen er oppgitt i scorerommet. Dersom oppgaven spør om tap, bruk labelen og sannsynligheten i cross-entropy; terskelen spiller ingen rolle for selve tapet.

Kontroller også fortegnet. En stor positiv score skal gi sannsynlighet nær 1. Dersom beregningen gir nær 0, er minustegnet i eksponenten ofte håndtert feil. For odds må nevneren være . For log-odds må forholdet ligge inne i logaritmen. Små egenkontroller er raskere enn å starte hele regnestykket på nytt.

Til slutt bør du kunne forklare modellens begrensning med én setning: logistisk regresjon lærer en lineær sammenheng i log-odds og trenger derfor egnede features for å beskrive ikke-lineære skiller. Det gjør den ikke svak. Det gjør antakelsen synlig, noe som er verdifullt både på eksamen og i et virkelig prosjekt.

Mine notater

Skriv egne notater for dette kapittelet. De lagres automatisk og dukker opp i «Mine notater»-oversikten paa fag-siden.

Laster…