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
course content

Kursusindhold

Lineær Regression med Python

Lineær Regression med Python

1. Simpel Lineær Regression
2. Multipel Lineær Regression
3. Polynomiel Regression
4. Valg af den Bedste Model

book
Overfitting

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 X_new, som 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ærlig godt.

Underfitting

Der er også et andet begreb, underfitting. Det er, når den byggede 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 Lineær 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

Vi ønsker at vide, hvordan modellen vil præstere på usete eksempler. For at gøre dette har vi brug for usete eksempler med de sande målværdier. Og vi har kun de sande målværdier i træningsdatasættet. Løsningen er at opdele træningsdatasættet i to sæt: et træningssæt og et testsæt.

Nu kan vi opbygge modellen ved hjælp af træningssættet, beregne metrikkerne på træningssættet (sete eksempler) og derefter beregne metrikkerne på testsættet (usete eksempler).

Det er vigtigt at opdele træningsdatasættet tilfældigt. Typisk vil du bruge omkring 20-30% af dit træningsdatasæt til testsættet, og de resterende 70-80% vil blive brugt som træningssæ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å MSE-scorerne for modellerne, afgør om de overfitter/underfitter 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

course content

Kursusindhold

Lineær Regression med Python

Lineær Regression med Python

1. Simpel Lineær Regression
2. Multipel Lineær Regression
3. Polynomiel Regression
4. Valg af den Bedste Model

book
Overfitting

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 X_new, som 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ærlig godt.

Underfitting

Der er også et andet begreb, underfitting. Det er, når den byggede 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 Lineær 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

Vi ønsker at vide, hvordan modellen vil præstere på usete eksempler. For at gøre dette har vi brug for usete eksempler med de sande målværdier. Og vi har kun de sande målværdier i træningsdatasættet. Løsningen er at opdele træningsdatasættet i to sæt: et træningssæt og et testsæt.

Nu kan vi opbygge modellen ved hjælp af træningssættet, beregne metrikkerne på træningssættet (sete eksempler) og derefter beregne metrikkerne på testsættet (usete eksempler).

Det er vigtigt at opdele træningsdatasættet tilfældigt. Typisk vil du bruge omkring 20-30% af dit træningsdatasæt til testsættet, og de resterende 70-80% vil blive brugt som træningssæ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å MSE-scorerne for modellerne, afgør om de overfitter/underfitter 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