Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Overfitting | Valg af den Bedste Model
Lineær Regression med Python

bookOverfitting

Overfitting

Overvej de to regressionslinjer nedenfor. Hvilken er bedst?

Ifølge målingerne er den anden bedre. Derfor bruger vi den til at forudsige nye værdier! Vi har brug for forudsigelserne for X_new = [0.2,0.5,2.7]. Men da vi fik de faktiske målte værdier for de X_new, vi netop havde forudsagt, viste det sig, at den første model havde en langt bedre forudsigelse.

Dette skyldes, at den anden model overfitter træningssættet. Overfitting opstår, når den opbyggede model er for kompleks, så den kan tilpasse sig træningsdataene perfekt, men ikke forudsiger ukendte tilfælde særligt godt.

Underfitting

Der er også et andet begreb, underfitting. Det er, når den opbyggede model er så simpel, at den ikke engang passer godt til træningsdataene. I sådanne tilfælde er forudsigelserne for de usete eksempler også forkerte.

Vi kan derfor forsøge at vurdere, om modellen underfitter eller overfitter visuelt.

Vi ved allerede, at vi ikke kan visualisere Multiple Linear Regression med mange features. Er der en anden måde at afgøre, om modellen overfitter eller underfitter? Det viser sig, at det er der.

Opdeling i trænings- og testdatasæt

Det er nødvendigt at vurdere modellens præstation på ukendte observationer. For at gøre dette kræves ukendte observationer med de sande målværdier. De sande målværdier findes kun i træningsdatasættet. Derfor opdeles træningsdatasættet i to dele: et træningsdatasæt og et testdatasæt.

Herefter kan modellen opbygges ved brug af træningsdatasættet, metrikker beregnes på træningsdatasættet (kendte observationer), og derefter beregnes metrikker på testdatasættet (ukendte observationer).

Det er afgørende, at træningsdatasættet opdeles tilfældigt. Typisk anvendes omkring 20-30% af træningsdatasættet som testdatasæt, mens de resterende 70-80% anvendes som træningsdatasæt. Scikit-learn tilbyder en simpel funktion til tilfældig opdeling af datasættet:

For eksempel, for at opdele træningssættet i 70% træning/30% test, kan du bruge følgende kode:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Baseret på modellerens MSE-scorer, afgør om de overtilpasser/undertilpasser træningssættet (datasættet er det samme).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

What are some common signs of overfitting and underfitting in a model?

How does the train-test split help prevent overfitting?

Can you explain how to interpret the results after splitting the data into training and test sets?

Awesome!

Completion rate improved to 5.26

bookOverfitting

Stryg for at vise menuen

Overfitting

Overvej de to regressionslinjer nedenfor. Hvilken er bedst?

Ifølge målingerne er den anden bedre. Derfor bruger vi den til at forudsige nye værdier! Vi har brug for forudsigelserne for X_new = [0.2,0.5,2.7]. Men da vi fik de faktiske målte værdier for de X_new, vi netop havde forudsagt, viste det sig, at den første model havde en langt bedre forudsigelse.

Dette skyldes, at den anden model overfitter træningssættet. Overfitting opstår, når den opbyggede model er for kompleks, så den kan tilpasse sig træningsdataene perfekt, men ikke forudsiger ukendte tilfælde særligt godt.

Underfitting

Der er også et andet begreb, underfitting. Det er, når den opbyggede model er så simpel, at den ikke engang passer godt til træningsdataene. I sådanne tilfælde er forudsigelserne for de usete eksempler også forkerte.

Vi kan derfor forsøge at vurdere, om modellen underfitter eller overfitter visuelt.

Vi ved allerede, at vi ikke kan visualisere Multiple Linear Regression med mange features. Er der en anden måde at afgøre, om modellen overfitter eller underfitter? Det viser sig, at det er der.

Opdeling i trænings- og testdatasæt

Det er nødvendigt at vurdere modellens præstation på ukendte observationer. For at gøre dette kræves ukendte observationer med de sande målværdier. De sande målværdier findes kun i træningsdatasættet. Derfor opdeles træningsdatasættet i to dele: et træningsdatasæt og et testdatasæt.

Herefter kan modellen opbygges ved brug af træningsdatasættet, metrikker beregnes på træningsdatasættet (kendte observationer), og derefter beregnes metrikker på testdatasættet (ukendte observationer).

Det er afgørende, at træningsdatasættet opdeles tilfældigt. Typisk anvendes omkring 20-30% af træningsdatasættet som testdatasæt, mens de resterende 70-80% anvendes som træningsdatasæt. Scikit-learn tilbyder en simpel funktion til tilfældig opdeling af datasættet:

For eksempel, for at opdele træningssættet i 70% træning/30% test, kan du bruge følgende kode:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Baseret på modellerens MSE-scorer, afgør om de overtilpasser/undertilpasser træningssættet (datasættet er det samme).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2
some-alt