Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Overtilpasning | Velge Den Beste Modellen
Lineær Regresjon med Python

bookOvertilpasning

Overfitting

Vurder de to regresjonslinjene nedenfor. Hvilken er best?

Målingene viser at den andre er bedre. Da bruker vi den til å forutsi nye verdier! Vi trenger prediksjoner for X_new = [0.2,0.5,2.7]. Men da vi fikk de faktiske målverdiene for X_new vi nettopp hadde forutsagt, viste det seg at den første modellen hadde en mye bedre prediksjon.

Dette er fordi den andre modellen overtilpasser treningssettet. Overtilpasning oppstår når den bygde modellen er for kompleks slik at den passer treningsdataene perfekt, men ikke gir gode prediksjoner for nye, ukjente tilfeller.

Underfitting

Det finnes også et annet begrep, underfitting. Dette oppstår når den bygde modellen er så enkel at den ikke engang passer treningsdataene godt. I slike tilfeller vil også prediksjonene for ukjente tilfeller være feil.

Det er mulig å forsøke å avgjøre om modellen underfitter eller overfitter visuelt.

Vi vet allerede at det ikke er mulig å visualisere multippel lineær regresjon med mange variabler. Finnes det en annen måte å avgjøre om modellen overfitter eller underfitter? Det viser seg at det gjør det.

Trenings- og testdeling

Vi ønsker å vite hvordan modellen vil prestere på ukjente eksempler. For dette trenger vi ukjente eksempler med de sanne målverdiene. Og vi har kun sanne målverdier i treningssettet. Løsningen er å dele treningssettet i to deler, et treningssett og et testsett.

Nå kan vi bygge modellen ved å bruke treningssettet, beregne metrikkene på treningssettet (kjente eksempler) og deretter beregne metrikkene på testsettet (ukjente eksempler).

Det er avgjørende å dele treningssettet tilfeldig. Vanligvis vil du bruke omtrent 20-30 % av treningssettet til testsettet, og de resterende 70-80 % vil være treningssett. Scikit-learn tilbyr en enkel funksjon for å dele settet tilfeldig:

For eksempel, for å dele treningssettet i 70 % trening/30 % test, kan du bruke 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

Basert på MSE-verdiene for modellene, avgjør om de overtilpasser/undertilpasser treningssettet (datasettet 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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookOvertilpasning

Sveip for å vise menyen

Overfitting

Vurder de to regresjonslinjene nedenfor. Hvilken er best?

Målingene viser at den andre er bedre. Da bruker vi den til å forutsi nye verdier! Vi trenger prediksjoner for X_new = [0.2,0.5,2.7]. Men da vi fikk de faktiske målverdiene for X_new vi nettopp hadde forutsagt, viste det seg at den første modellen hadde en mye bedre prediksjon.

Dette er fordi den andre modellen overtilpasser treningssettet. Overtilpasning oppstår når den bygde modellen er for kompleks slik at den passer treningsdataene perfekt, men ikke gir gode prediksjoner for nye, ukjente tilfeller.

Underfitting

Det finnes også et annet begrep, underfitting. Dette oppstår når den bygde modellen er så enkel at den ikke engang passer treningsdataene godt. I slike tilfeller vil også prediksjonene for ukjente tilfeller være feil.

Det er mulig å forsøke å avgjøre om modellen underfitter eller overfitter visuelt.

Vi vet allerede at det ikke er mulig å visualisere multippel lineær regresjon med mange variabler. Finnes det en annen måte å avgjøre om modellen overfitter eller underfitter? Det viser seg at det gjør det.

Trenings- og testdeling

Vi ønsker å vite hvordan modellen vil prestere på ukjente eksempler. For dette trenger vi ukjente eksempler med de sanne målverdiene. Og vi har kun sanne målverdier i treningssettet. Løsningen er å dele treningssettet i to deler, et treningssett og et testsett.

Nå kan vi bygge modellen ved å bruke treningssettet, beregne metrikkene på treningssettet (kjente eksempler) og deretter beregne metrikkene på testsettet (ukjente eksempler).

Det er avgjørende å dele treningssettet tilfeldig. Vanligvis vil du bruke omtrent 20-30 % av treningssettet til testsettet, og de resterende 70-80 % vil være treningssett. Scikit-learn tilbyr en enkel funksjon for å dele settet tilfeldig:

For eksempel, for å dele treningssettet i 70 % trening/30 % test, kan du bruke 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

Basert på MSE-verdiene for modellene, avgjør om de overtilpasser/undertilpasser treningssettet (datasettet 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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2
some-alt