Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Mått | Välja Den Bästa Modellen
Linjär Regression med Python

bookMått

Vid modellbygge är det viktigt att mäta dess prestanda.
Vi behöver ett poängvärde kopplat till modellen som noggrant beskriver hur väl den passar data. Detta poängvärde kallas för en metrik, och det finns många olika metoder tillgängliga.
I detta kapitel fokuserar vi på de mest använda metoderna.

Vi kommer att använda följande notation:

Vi är redan bekanta med en metrik, SSR (Sum of Squared Residuals), som vi minimerade för att identifiera de optimala parametrarna.
Med vår notation kan vi uttrycka formeln för SSR enligt följande:

eller lika med:

Denna metriken var lämplig för att jämföra modeller med samma antal observationer. Dock ger den oss ingen förståelse för hur väl modellen presterar. Här är varför:
Antag att du har två modeller på olika träningsuppsättningar (visas i bilden nedan).

Du kan se att den första modellen passar bra men ändå har ett högre SSR än den andra modellen, som visuellt passar data sämre. Detta inträffade endast eftersom den första modellen har betydligt fler datapunkter, så summan blir högre, men i genomsnitt är residualerna för den första modellen lägre. Att ta medelvärdet av kvadrerade residualer som en metrisk skulle därför beskriva modellen bättre. Det är precis vad Mean Squared Error (MSE) gör.

MSE

eller lika med:

För att beräkna MSE-måttet med python kan du använda NumPy:s funktioner:

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

Eller så kan du använda Scikit-learns mean_squared_error()-metod:

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

Där y_true är en array med faktiska målvariabelvärden och y_pred är en array med predikterade målvariabelvärden för samma egenskaper.

Problemet är att felet som visas är kvadrerat. Till exempel, anta att MSE för modellen som förutspår huspriser är 49 dollars². Vi är intresserade av pris, inte pris i kvadrat, som ges av MSE, så vi vill ta roten ur MSE och få 7 dollar. Nu har vi ett mått med samma enhet som det predikterade värdet. Detta mått kallas Root Mean Squared Error (RMSE).

RMSE

För att beräkna RMSE-måttet med Python kan du använda NumPys funktioner:

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

Eller så kan du använda Scikit-learns mean_squared_error()-metod med squared=False:

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

MAE

I SSR kvadrerade vi residualerna för att bli av med tecknet. Det andra tillvägagångssättet är att ta de absoluta värdena av residualerna istället för att kvadrera dem. Det är idén bakom Mean Absolute Error (MAE).

eller lika

Det är samma som MSE, men istället för att kvadrera residualerna tar vi deras absolutbelopp.

Även om MAE liknar MSE, är den mer robust mot avvikare eftersom den använder absolutbeloppet av residualerna och därmed inte förstärker stora fel lika mycket som MSE gör. Därför är MAE ofta ett bättre val när datasetet innehåller avvikare, eftersom dess värde inte ökar oproportionerligt på grund av några extrema fel.

För att beräkna MAE-måttet med python kan du använda NumPys funktioner:

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

Eller så kan du använda Scikit-learns mean_absolute_error()-metod:

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

För att välja parametrarna använde vi SSR-måttet. Det beror på att det var lämpligt för matematiska beräkningar och gjorde det möjligt för oss att erhålla den normala ekvationen. Men för att ytterligare jämföra modellerna kan du använda vilket annat mått som helst.

Note
Notering

Vid jämförelse av modeller kommer SSR, MSE och RMSE alltid att identifiera vilken modell som är bättre och vilken som är sämre på samma sätt. MAE kan ibland föredra en annan modell än SSR/MSE/RMSE eftersom dessa straffar höga residualer mycket mer. Vanligtvis bör du välja ett mått i förväg och fokusera på att minimera det.

Nu kan du säkert avgöra att den andra modellen är bättre eftersom alla dess mått är lägre. Dock innebär inte alltid lägre mått att modellen är bättre.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 5.26

bookMått

Svep för att visa menyn

Vid modellbygge är det viktigt att mäta dess prestanda.
Vi behöver ett poängvärde kopplat till modellen som noggrant beskriver hur väl den passar data. Detta poängvärde kallas för en metrik, och det finns många olika metoder tillgängliga.
I detta kapitel fokuserar vi på de mest använda metoderna.

Vi kommer att använda följande notation:

Vi är redan bekanta med en metrik, SSR (Sum of Squared Residuals), som vi minimerade för att identifiera de optimala parametrarna.
Med vår notation kan vi uttrycka formeln för SSR enligt följande:

eller lika med:

Denna metriken var lämplig för att jämföra modeller med samma antal observationer. Dock ger den oss ingen förståelse för hur väl modellen presterar. Här är varför:
Antag att du har två modeller på olika träningsuppsättningar (visas i bilden nedan).

Du kan se att den första modellen passar bra men ändå har ett högre SSR än den andra modellen, som visuellt passar data sämre. Detta inträffade endast eftersom den första modellen har betydligt fler datapunkter, så summan blir högre, men i genomsnitt är residualerna för den första modellen lägre. Att ta medelvärdet av kvadrerade residualer som en metrisk skulle därför beskriva modellen bättre. Det är precis vad Mean Squared Error (MSE) gör.

MSE

eller lika med:

För att beräkna MSE-måttet med python kan du använda NumPy:s funktioner:

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

Eller så kan du använda Scikit-learns mean_squared_error()-metod:

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

Där y_true är en array med faktiska målvariabelvärden och y_pred är en array med predikterade målvariabelvärden för samma egenskaper.

Problemet är att felet som visas är kvadrerat. Till exempel, anta att MSE för modellen som förutspår huspriser är 49 dollars². Vi är intresserade av pris, inte pris i kvadrat, som ges av MSE, så vi vill ta roten ur MSE och få 7 dollar. Nu har vi ett mått med samma enhet som det predikterade värdet. Detta mått kallas Root Mean Squared Error (RMSE).

RMSE

För att beräkna RMSE-måttet med Python kan du använda NumPys funktioner:

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

Eller så kan du använda Scikit-learns mean_squared_error()-metod med squared=False:

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

MAE

I SSR kvadrerade vi residualerna för att bli av med tecknet. Det andra tillvägagångssättet är att ta de absoluta värdena av residualerna istället för att kvadrera dem. Det är idén bakom Mean Absolute Error (MAE).

eller lika

Det är samma som MSE, men istället för att kvadrera residualerna tar vi deras absolutbelopp.

Även om MAE liknar MSE, är den mer robust mot avvikare eftersom den använder absolutbeloppet av residualerna och därmed inte förstärker stora fel lika mycket som MSE gör. Därför är MAE ofta ett bättre val när datasetet innehåller avvikare, eftersom dess värde inte ökar oproportionerligt på grund av några extrema fel.

För att beräkna MAE-måttet med python kan du använda NumPys funktioner:

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

Eller så kan du använda Scikit-learns mean_absolute_error()-metod:

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

För att välja parametrarna använde vi SSR-måttet. Det beror på att det var lämpligt för matematiska beräkningar och gjorde det möjligt för oss att erhålla den normala ekvationen. Men för att ytterligare jämföra modellerna kan du använda vilket annat mått som helst.

Note
Notering

Vid jämförelse av modeller kommer SSR, MSE och RMSE alltid att identifiera vilken modell som är bättre och vilken som är sämre på samma sätt. MAE kan ibland föredra en annan modell än SSR/MSE/RMSE eftersom dessa straffar höga residualer mycket mer. Vanligtvis bör du välja ett mått i förväg och fokusera på att minimera det.

Nu kan du säkert avgöra att den andra modellen är bättre eftersom alla dess mått är lägre. Dock innebär inte alltid lägre mått att modellen är bättre.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 1
some-alt