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

Mått

Svep för att visa menyn

När vi bygger en modell behöver vi ett mått som mäter hur väl den passar data. Ett mått ger en numerisk poäng som beskriver modellens prestanda. I detta kapitel fokuserar vi på de vanligaste måtten.

Vi kommer att använda följande notation:

Notation

Vi är redan bekanta med en metrisk, 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:

SSRformula

eller lika med:

SSRsum

Detta mått fungerade endast när modeller använde samma antal datapunkter. Det visar inte hur väl en modell faktiskt presterar. Föreställ dig två modeller som tränats på datasätt av olika storlek.

SSRCompare

Den första modellen passar bättre visuellt men har ett högre SSR eftersom den har fler punkter, så summan ökar även med mindre genomsnittliga residualer. Att använda medelvärdet av kvadrerade residualer löser detta — Mean Squared Error (MSE).

MSE

MSEformula

eller lika med:

MSEsum

Beräkna MSE med NumPy:

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

Eller Scikit-learn:

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

MSE är kvadrerad, vilket gör tolkningen svårare. Om MSE är 49 dollar² vill vi ha felet i dollar. Att ta roten ger 7 — Root Mean Squared Error (RMSE).

RMSE

RMSEsum

Beräkna RMSE med:

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

Eller med Scikit-learn:

rmse = mean_squared_error(y_true, y_pred, squared=False)

MAE

Istället för att kvadrera residualerna kan vi ta deras absoluta värden — detta ger Mean Absolute Error (MAE).

MAEformel

eller lika

MAEsum

MAE beter sig likt MSE men hanterar stora fel mer varsamt. Eftersom den använder absoluta värden är den mer robust mot avvikare, vilket gör den användbar när extrema värden snedvrider datamängden.

Beräkna MAE:

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

Eller:

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

SSR hjälpte oss att härleda den normala ekvationen, men vilken metrisk som helst kan användas när modeller jämförs.

Note
Notering

SSR, MSE och RMSE rankar alltid modeller på samma sätt, medan MAE kan föredra en annan eftersom den straffar stora fel mindre. En metrisk bör väljas i förväg och optimeras specifikt för den.

ModelCompare

Nu kan du säkert säga att den andra modellen är bättre eftersom alla dess mätvärden är lägre. Dock innebär inte alltid lägre mätvärden 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

Avsnitt 4. Kapitel 1
some-alt