R-kvadreret
Stryg for at vise menuen
Hvad er R-squared
Vi har allerede gennemgået MSE, RMSE og MAE. De hjælper med at sammenligne modeller, men en enkelt score er svær at vurdere uden kontekst. Du ved måske ikke, om værdien er “god nok” for dit datasæt.
R-squared løser dette ved at måle, hvor meget af målets varians modellen forklarer. Dens værdi ligger mellem 0 og 1, hvilket gør fortolkningen enkel.
Problemet er, at vi ikke kan beregne den forklarede varians med det samme. Men vi kan beregne den uforklarede varians, så vi omskriver ovenstående ligning til:
Total varians
Den totale varians er blot variansen af målet, og vi kan beregne målets varians ved hjælp af formlen for stikprøvevarians fra statistik (ȳ er målets gennemsnit):
I eksemplet kvadreres og summeres forskellene mellem de faktiske værdier og målmiddelværdien (orange linjer), hvorefter de divideres med m−1, hvilket giver en total varians på 11,07.
Uforklaret varians
Dernæst beregnes den varians, som modellen ikke forklarer. Hvis forudsigelserne var perfekte, ville alle punkter ligge præcis på regressionslinjen. Vi bruger den samme variansformel, men erstatter ȳ med de forudsagte værdier.
Her er et eksempel med visualisering:
Nu har vi alt, hvad vi skal bruge for at beregne R-squared:
Vi har opnået en R-squared score på 0,92, hvilket er tæt på 1, så vi har en fremragende model. Vi vil også beregne R-squared for endnu en model.
R-squared er lavere, da modellen underfitter dataene en smule.
R-squared i Python
sm.OLS-klassen beregner R-squared for os. Vi kan finde det i summary()-tabellen her.
R-squared varierer fra 0 til 1, og højere er bedre (medmindre modellen overtilpasser). summary()-outputtet fra sm.OLS inkluderer R-squared-scoren.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat