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

Kursinnhold

Lineær Regresjon med Python

Lineær Regresjon med Python

1. Enkel Lineær Regresjon
2. Multippel Lineær Regresjon
3. Polynomisk Regresjon
4. Velge den Beste Modellen

book
Overtilpasning

Overfitting

Vurder de to regresjonslinjene nedenfor. Hvilken er best?

Ifølge måleverdiene er den andre 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 forutsier ukjente tilfeller like godt.

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.

Vi kan forsøke å avgjøre om modellen underfitter eller overfitter visuelt.

Vi vet allerede at vi ikke kan 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.

Deling av trenings- og testsett

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 sett, 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 viktig å dele treningssettet tilfeldig. Vanligvis vil du bruke omtrent 20-30 % av treningssettet til testsettet, og de resterende 70-80 % vil være treningssettet. 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

course content

Kursinnhold

Lineær Regresjon med Python

Lineær Regresjon med Python

1. Enkel Lineær Regresjon
2. Multippel Lineær Regresjon
3. Polynomisk Regresjon
4. Velge den Beste Modellen

book
Overtilpasning

Overfitting

Vurder de to regresjonslinjene nedenfor. Hvilken er best?

Ifølge måleverdiene er den andre 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 forutsier ukjente tilfeller like godt.

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.

Vi kan forsøke å avgjøre om modellen underfitter eller overfitter visuelt.

Vi vet allerede at vi ikke kan 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.

Deling av trenings- og testsett

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 sett, 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 viktig å dele treningssettet tilfeldig. Vanligvis vil du bruke omtrent 20-30 % av treningssettet til testsettet, og de resterende 70-80 % vil være treningssettet. 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