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

Når man opbygger en model, er det vigtigt at måle dens ydeevne.
Vi har brug for en score, der er knyttet til modellen, og som nøjagtigt beskriver, hvor godt den passer til dataene. Denne score kaldes en metrik, og der findes adskillige metrikker.
I dette kapitel vil vi fokusere på de mest anvendte.

Vi vil anvende følgende notation:

Vi kender allerede én metrik, SSR (Sum of Squared Residuals), som vi minimerede for at identificere de optimale parametre.
Ved at bruge vores notation kan vi udtrykke formlen for SSR som følger:

eller ligeledes:

Denne metrik var god til at sammenligne modeller med det samme antal observationer. Dog giver den os ikke en forståelse af, hvor godt modellen præsterer. Her er hvorfor:
Antag, at du har to modeller på forskellige træningssæt (vist på billedet nedenfor).

Du kan se, at den første model passer godt, men stadig har en højere SSR end den anden model, som visuelt passer dårligere til dataene. Det skete kun, fordi den første model har langt flere datapunkter, så summen er højere, men gennemsnitligt er den første models residualer lavere. Derfor vil det at tage gennemsnittet af de kvadrerede residualer som en metrik beskrive modellen bedre. Det er præcis, hvad Mean Squared Error (MSE) er.

MSE

eller tilsvarende:

For at beregne MSE-metrikken ved hjælp af Python, kan du bruge NumPy's funktioner:

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

Eller du kan bruge 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ålte værdier, og y_pred er et array med forudsagte målte værdier for de samme features.

Problemet er, at fejlen vises i kvadreret form. For eksempel, antag at MSE for modellen, der forudsiger huspriser, er 49 dollars². Vi er interesserede i pris, ikke pris i anden potens, som angivet af MSE, så vi vil gerne tage kvadratroden af MSE og få 7 dollars. Nu har vi en metrik med samme enhed som den forudsagte værdi. Denne metrik kaldes Root Mean Squared Error (RMSE).

RMSE

For at beregne RMSE-metrikken ved hjælp af Python, kan du bruge NumPy's funktioner:

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

Eller du kan bruge 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 kvadrerede vi residualerne for at fjerne fortegnet. Den anden tilgang ville være at tage de absolutte værdier af residualerne i stedet for at kvadrere dem. Det er idéen bag Mean Absolute Error (MAE).

eller tilsvarende

Det er det samme som MSE, men i stedet for at kvadrere residualerne, tager vi deres absolutte værdier.

Selvom MAE ligner MSE, er den mere robust over for outliers, da den bruger de absolutte værdier af residualerne og derfor ikke forstærker store fejl i samme grad som MSE. Derfor er MAE ofte et bedre valg, når datasættet indeholder outliers, da dens værdi ikke stiger uforholdsmæssigt meget på grund af enkelte ekstreme fejl.

For at beregne MAE-metricen med python, kan du bruge NumPy's funktioner:

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

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

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

Til valg af parametre brugte vi SSR-metricen. Det skyldes, at den er velegnet til matematiske beregninger og gjorde det muligt at udlede den normale ligning. Men for yderligere at sammenligne modellerne kan du anvende enhver anden metric.

Note
Bemærk

Ved sammenligning af modeller vil SSR, MSE og RMSE altid identisk afgøre, hvilken model der er bedre, og hvilken der er dårligere. MAE kan dog nogle gange foretrække en anden model end SSR/MSE/RMSE, da disse straffer høje residualer langt mere. Normalt bør du vælge én metric på forhånd og fokusere på at minimere den.

Nu kan du med sikkerhed sige, at den anden model er bedre, da alle dens metrics er lavere. Dog betyder lavere metrics ikke altid, at modellen er bedre.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 1

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
Metrikker

Når man opbygger en model, er det vigtigt at måle dens ydeevne.
Vi har brug for en score, der er knyttet til modellen, og som nøjagtigt beskriver, hvor godt den passer til dataene. Denne score kaldes en metrik, og der findes adskillige metrikker.
I dette kapitel vil vi fokusere på de mest anvendte.

Vi vil anvende følgende notation:

Vi kender allerede én metrik, SSR (Sum of Squared Residuals), som vi minimerede for at identificere de optimale parametre.
Ved at bruge vores notation kan vi udtrykke formlen for SSR som følger:

eller ligeledes:

Denne metrik var god til at sammenligne modeller med det samme antal observationer. Dog giver den os ikke en forståelse af, hvor godt modellen præsterer. Her er hvorfor:
Antag, at du har to modeller på forskellige træningssæt (vist på billedet nedenfor).

Du kan se, at den første model passer godt, men stadig har en højere SSR end den anden model, som visuelt passer dårligere til dataene. Det skete kun, fordi den første model har langt flere datapunkter, så summen er højere, men gennemsnitligt er den første models residualer lavere. Derfor vil det at tage gennemsnittet af de kvadrerede residualer som en metrik beskrive modellen bedre. Det er præcis, hvad Mean Squared Error (MSE) er.

MSE

eller tilsvarende:

For at beregne MSE-metrikken ved hjælp af Python, kan du bruge NumPy's funktioner:

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

Eller du kan bruge 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ålte værdier, og y_pred er et array med forudsagte målte værdier for de samme features.

Problemet er, at fejlen vises i kvadreret form. For eksempel, antag at MSE for modellen, der forudsiger huspriser, er 49 dollars². Vi er interesserede i pris, ikke pris i anden potens, som angivet af MSE, så vi vil gerne tage kvadratroden af MSE og få 7 dollars. Nu har vi en metrik med samme enhed som den forudsagte værdi. Denne metrik kaldes Root Mean Squared Error (RMSE).

RMSE

For at beregne RMSE-metrikken ved hjælp af Python, kan du bruge NumPy's funktioner:

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

Eller du kan bruge 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 kvadrerede vi residualerne for at fjerne fortegnet. Den anden tilgang ville være at tage de absolutte værdier af residualerne i stedet for at kvadrere dem. Det er idéen bag Mean Absolute Error (MAE).

eller tilsvarende

Det er det samme som MSE, men i stedet for at kvadrere residualerne, tager vi deres absolutte værdier.

Selvom MAE ligner MSE, er den mere robust over for outliers, da den bruger de absolutte værdier af residualerne og derfor ikke forstærker store fejl i samme grad som MSE. Derfor er MAE ofte et bedre valg, når datasættet indeholder outliers, da dens værdi ikke stiger uforholdsmæssigt meget på grund af enkelte ekstreme fejl.

For at beregne MAE-metricen med python, kan du bruge NumPy's funktioner:

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

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

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

Til valg af parametre brugte vi SSR-metricen. Det skyldes, at den er velegnet til matematiske beregninger og gjorde det muligt at udlede den normale ligning. Men for yderligere at sammenligne modellerne kan du anvende enhver anden metric.

Note
Bemærk

Ved sammenligning af modeller vil SSR, MSE og RMSE altid identisk afgøre, hvilken model der er bedre, og hvilken der er dårligere. MAE kan dog nogle gange foretrække en anden model end SSR/MSE/RMSE, da disse straffer høje residualer langt mere. Normalt bør du vælge én metric på forhånd og fokusere på at minimere den.

Nu kan du med sikkerhed sige, at den anden model er bedre, da alle dens metrics er lavere. Dog betyder lavere metrics ikke altid, at modellen er bedre.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 1
some-alt