Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Metrikker | 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
Metrikker

Når man bygger en modell, er det viktig å måle ytelsen.
Vi trenger en poengsum knyttet til modellen som nøyaktig beskriver hvor godt den passer til dataene. Denne poengsummen kalles en metrik, og det finnes mange ulike metrikker.
I dette kapittelet vil vi fokusere på de mest brukte.

Vi vil bruke følgende notasjon:

Vi er allerede kjent med én metrik, SSR (Sum of Squared Residuals), som vi minimerte for å finne de optimale parameterne.
Med vår notasjon kan vi uttrykke formelen for SSR slik:

eller like mye:

Denne metrikken var egnet for å sammenligne modeller med samme antall observasjoner. Likevel gir den oss ikke en forståelse av hvor godt modellen presterer. Her er hvorfor:
Anta at du har to modeller på ulike treningssett (vist i bildet nedenfor).

Du kan se at den første modellen passer godt, men har likevel en høyere SSR enn den andre modellen, som visuelt passer dataene dårligere. Dette skjedde kun fordi den første modellen har langt flere datapunkter, så summen blir høyere, men i gjennomsnitt er residualene til den første modellen lavere. Å bruke gjennomsnittet av kvadrerte residualer som en metrikk vil derfor beskrive modellen bedre. Det er nettopp det Mean Squared Error (MSE) gjør.

MSE

eller tilsvarende:

For å beregne MSE-metrikken med Python, kan du bruke NumPy-funksjoner:

mse = np.mean((y_true-y_pred)**2)

Eller du kan bruke Scikit-learns mean_squared_error()-metode:

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)

Her er y_true et array med faktiske målverdier og y_pred et array med predikerte målverdier for de samme egenskapene.

Problemet er at feilen som vises er kvadrert. For eksempel, anta at MSE for modellen som predikerer boligpriser er 49 dollars². Vi er interessert i pris, ikke pris i andre potens, slik MSE gir, så vi ønsker å ta kvadratroten av MSE og få 7 dollars. Nå har vi en metrikk med samme enhet som den predikerte verdien. Denne metrikken kalles Root Mean Squared Error (RMSE).

RMSE

For å beregne RMSE-metrikken med Python, kan du bruke NumPy-funksjoner:

rmse = np.sqrt(np.mean((y_true-y_pred)**2))

Eller du kan bruke Scikit-learns mean_squared_error()-metode med squared=False:

from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)

MAE

I SSR kvadrerte vi residualene for å fjerne fortegnet. Et annet alternativ er å ta den absolutte verdien av residualene i stedet for å kvadrere dem. Dette er prinsippet bak Mean Absolute Error (MAE).

eller tilsvarende

Dette er det samme som MSE, men i stedet for å kvadrere residualene, tar vi deres absolutte verdier.

Selv om MAE ligner på MSE, er den mer robust mot uteliggere fordi den bruker de absolutte verdiene av residualene og dermed ikke forsterker store feil like mye som MSE gjør. Derfor er MAE ofte et bedre valg når datasettet inneholder uteliggere, siden verdien ikke øker uforholdsmessig mye på grunn av noen få ekstreme feil.

For å beregne MAE-metrikken med python, kan du bruke NumPy-funksjoner:

mae = np.mean(np.fabs(y_true-y_pred))

Eller du kan bruke Scikit-learns mean_absolute_error()-metode:

from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)

For valg av parametere brukte vi SSR-metrikken. Dette var fordi den egnet seg godt for matematiske beregninger og gjorde det mulig å utlede Normal-likningen. Men for å sammenligne modellene videre, kan du bruke en hvilken som helst annen metrikk.

Note
Merk

Ved sammenligning av modeller vil SSR, MSE og RMSE alltid identisk avgjøre hvilken modell som er bedre og hvilken som er dårligere. MAE kan derimot noen ganger foretrekke en annen modell enn SSR/MSE/RMSE, siden disse straffer høye residualer mye mer. Vanligvis bør du velge én metrikk på forhånd og fokusere på å minimere denne.

Nå kan du med sikkerhet si at den andre modellen er bedre, siden alle dens metrikker er lavere. Likevel betyr ikke lavere metrikker alltid at modellen er bedre.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 1

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
Metrikker

Når man bygger en modell, er det viktig å måle ytelsen.
Vi trenger en poengsum knyttet til modellen som nøyaktig beskriver hvor godt den passer til dataene. Denne poengsummen kalles en metrik, og det finnes mange ulike metrikker.
I dette kapittelet vil vi fokusere på de mest brukte.

Vi vil bruke følgende notasjon:

Vi er allerede kjent med én metrik, SSR (Sum of Squared Residuals), som vi minimerte for å finne de optimale parameterne.
Med vår notasjon kan vi uttrykke formelen for SSR slik:

eller like mye:

Denne metrikken var egnet for å sammenligne modeller med samme antall observasjoner. Likevel gir den oss ikke en forståelse av hvor godt modellen presterer. Her er hvorfor:
Anta at du har to modeller på ulike treningssett (vist i bildet nedenfor).

Du kan se at den første modellen passer godt, men har likevel en høyere SSR enn den andre modellen, som visuelt passer dataene dårligere. Dette skjedde kun fordi den første modellen har langt flere datapunkter, så summen blir høyere, men i gjennomsnitt er residualene til den første modellen lavere. Å bruke gjennomsnittet av kvadrerte residualer som en metrikk vil derfor beskrive modellen bedre. Det er nettopp det Mean Squared Error (MSE) gjør.

MSE

eller tilsvarende:

For å beregne MSE-metrikken med Python, kan du bruke NumPy-funksjoner:

mse = np.mean((y_true-y_pred)**2)

Eller du kan bruke Scikit-learns mean_squared_error()-metode:

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)

Her er y_true et array med faktiske målverdier og y_pred et array med predikerte målverdier for de samme egenskapene.

Problemet er at feilen som vises er kvadrert. For eksempel, anta at MSE for modellen som predikerer boligpriser er 49 dollars². Vi er interessert i pris, ikke pris i andre potens, slik MSE gir, så vi ønsker å ta kvadratroten av MSE og få 7 dollars. Nå har vi en metrikk med samme enhet som den predikerte verdien. Denne metrikken kalles Root Mean Squared Error (RMSE).

RMSE

For å beregne RMSE-metrikken med Python, kan du bruke NumPy-funksjoner:

rmse = np.sqrt(np.mean((y_true-y_pred)**2))

Eller du kan bruke Scikit-learns mean_squared_error()-metode med squared=False:

from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)

MAE

I SSR kvadrerte vi residualene for å fjerne fortegnet. Et annet alternativ er å ta den absolutte verdien av residualene i stedet for å kvadrere dem. Dette er prinsippet bak Mean Absolute Error (MAE).

eller tilsvarende

Dette er det samme som MSE, men i stedet for å kvadrere residualene, tar vi deres absolutte verdier.

Selv om MAE ligner på MSE, er den mer robust mot uteliggere fordi den bruker de absolutte verdiene av residualene og dermed ikke forsterker store feil like mye som MSE gjør. Derfor er MAE ofte et bedre valg når datasettet inneholder uteliggere, siden verdien ikke øker uforholdsmessig mye på grunn av noen få ekstreme feil.

For å beregne MAE-metrikken med python, kan du bruke NumPy-funksjoner:

mae = np.mean(np.fabs(y_true-y_pred))

Eller du kan bruke Scikit-learns mean_absolute_error()-metode:

from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)

For valg av parametere brukte vi SSR-metrikken. Dette var fordi den egnet seg godt for matematiske beregninger og gjorde det mulig å utlede Normal-likningen. Men for å sammenligne modellene videre, kan du bruke en hvilken som helst annen metrikk.

Note
Merk

Ved sammenligning av modeller vil SSR, MSE og RMSE alltid identisk avgjøre hvilken modell som er bedre og hvilken som er dårligere. MAE kan derimot noen ganger foretrekke en annen modell enn SSR/MSE/RMSE, siden disse straffer høye residualer mye mer. Vanligvis bør du velge én metrikk på forhånd og fokusere på å minimere denne.

Nå kan du med sikkerhet si at den andre modellen er bedre, siden alle dens metrikker er lavere. Likevel betyr ikke lavere metrikker alltid at modellen er bedre.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 1
some-alt