Statistieken
Bij het bouwen van een model is het belangrijk om de prestaties ervan te meten.
We hebben een score nodig die aan het model is gekoppeld en die nauwkeurig beschrijft hoe goed het bij de gegevens past. Deze score wordt een maatstaf genoemd, en er zijn talloze maatstaven beschikbaar.
In dit hoofdstuk richten we ons op de meest gebruikte.
We gebruiken de volgende notatie:
We zijn al bekend met één maatstaf, SSR (Sum of Squared Residuals), die we hebben geminimaliseerd om de optimale parameters te bepalen.
Met onze notatie kunnen we de formule voor SSR als volgt uitdrukken:
of evenredig:
Deze maatstaf was geschikt voor het vergelijken van modellen met hetzelfde aantal instanties. Echter, het geeft ons geen inzicht in hoe goed het model presteert. Hier is waarom:
Stel dat je twee modellen hebt op verschillende trainingssets (zoals weergegeven in de afbeelding hieronder).
Je ziet dat het eerste model goed past, maar toch een hogere SSR heeft dan het tweede model, dat visueel slechter bij de data past. Dit komt alleen doordat het eerste model veel meer datapunten heeft, waardoor de som hoger uitvalt, maar gemiddeld zijn de residuen van het eerste model lager. Het gemiddelde nemen van de gekwadrateerde residuen als maatstaf zou het model dus beter beschrijven. Dat is precies wat de Mean Squared Error (MSE) doet.
MSE
of gelijkwaardig:
Om de MSE-metriek te berekenen met Python, kun je de functies van NumPy gebruiken:
mse = np.mean((y_true-y_pred)**2)
Of je kunt de mean_squared_error()
-methode van Scikit-learn gebruiken:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
Waarbij y_true
een array is van werkelijke doelwaarden en y_pred
een array is van voorspelde doelwaarden voor dezelfde kenmerken.
Het probleem is dat de fout die het toont gekwadrateerd is. Stel bijvoorbeeld dat de MSE van het model dat huizen voorspelt 49 dollar² is. We zijn geïnteresseerd in prijs, niet in prijs in het kwadraat, zoals gegeven door MSE, dus willen we de wortel van de MSE nemen en 7 dollar krijgen. Nu hebben we een metriek met dezelfde eenheid als de voorspelde waarde. Deze metriek wordt Root Mean Squared Error (RMSE) genoemd.
RMSE
Om de RMSE-metriek te berekenen met Python, kun je de functies van NumPy gebruiken:
rmse = np.sqrt(np.mean((y_true-y_pred)**2))
Of je kunt de mean_squared_error()
-methode van Scikit-learn gebruiken met squared=False
:
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
Bij SSR werden de residuen gekwadrateerd om het teken te elimineren. Een tweede benadering is het nemen van de absolute waarden van de residuen in plaats van deze te kwadrateren. Dit is het idee achter de Mean Absolute Error (MAE).
of gelijkwaardig
Dit is hetzelfde als de MSE, maar in plaats van de residuen te kwadrateren, nemen we hun absolute waarden.
Hoewel MAE vergelijkbaar is met MSE, is het door het gebruik van absolute waarden van de residuen robuuster tegen uitschieters, omdat het grote fouten minder versterkt dan MSE. Hierdoor is MAE vaak een betere keuze wanneer de dataset uitschieters bevat, aangezien de waarde niet onevenredig toeneemt door enkele extreme fouten.
Om de MAE-metriek te berekenen met Python, kun je de functies van NumPy gebruiken:
mae = np.mean(np.fabs(y_true-y_pred))
Of je kunt de mean_absolute_error()
-methode van Scikit-learn gebruiken:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
Voor het kiezen van de parameters gebruikten we de SSR-metriek. Dit was geschikt voor wiskundige berekeningen en stelde ons in staat de Normale Vergelijking te verkrijgen. Maar om de modellen verder te vergelijken, kun je elke andere metriek gebruiken.
Voor het vergelijken van modellen zullen SSR, MSE en RMSE altijd identiek bepalen welk model beter of slechter is. MAE kan soms echter een ander model verkiezen dan SSR/MSE/RMSE, omdat deze laatste hoge residuen veel zwaarder bestraffen. Gewoonlijk kies je vooraf één metriek en richt je je op het minimaliseren daarvan.
Nu kun je met zekerheid zeggen dat het tweede model beter is, aangezien al zijn metriekwaarden lager zijn. Lagere metriekwaarden betekenen echter niet altijd dat het model beter is.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 5.26
Statistieken
Veeg om het menu te tonen
Bij het bouwen van een model is het belangrijk om de prestaties ervan te meten.
We hebben een score nodig die aan het model is gekoppeld en die nauwkeurig beschrijft hoe goed het bij de gegevens past. Deze score wordt een maatstaf genoemd, en er zijn talloze maatstaven beschikbaar.
In dit hoofdstuk richten we ons op de meest gebruikte.
We gebruiken de volgende notatie:
We zijn al bekend met één maatstaf, SSR (Sum of Squared Residuals), die we hebben geminimaliseerd om de optimale parameters te bepalen.
Met onze notatie kunnen we de formule voor SSR als volgt uitdrukken:
of evenredig:
Deze maatstaf was geschikt voor het vergelijken van modellen met hetzelfde aantal instanties. Echter, het geeft ons geen inzicht in hoe goed het model presteert. Hier is waarom:
Stel dat je twee modellen hebt op verschillende trainingssets (zoals weergegeven in de afbeelding hieronder).
Je ziet dat het eerste model goed past, maar toch een hogere SSR heeft dan het tweede model, dat visueel slechter bij de data past. Dit komt alleen doordat het eerste model veel meer datapunten heeft, waardoor de som hoger uitvalt, maar gemiddeld zijn de residuen van het eerste model lager. Het gemiddelde nemen van de gekwadrateerde residuen als maatstaf zou het model dus beter beschrijven. Dat is precies wat de Mean Squared Error (MSE) doet.
MSE
of gelijkwaardig:
Om de MSE-metriek te berekenen met Python, kun je de functies van NumPy gebruiken:
mse = np.mean((y_true-y_pred)**2)
Of je kunt de mean_squared_error()
-methode van Scikit-learn gebruiken:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
Waarbij y_true
een array is van werkelijke doelwaarden en y_pred
een array is van voorspelde doelwaarden voor dezelfde kenmerken.
Het probleem is dat de fout die het toont gekwadrateerd is. Stel bijvoorbeeld dat de MSE van het model dat huizen voorspelt 49 dollar² is. We zijn geïnteresseerd in prijs, niet in prijs in het kwadraat, zoals gegeven door MSE, dus willen we de wortel van de MSE nemen en 7 dollar krijgen. Nu hebben we een metriek met dezelfde eenheid als de voorspelde waarde. Deze metriek wordt Root Mean Squared Error (RMSE) genoemd.
RMSE
Om de RMSE-metriek te berekenen met Python, kun je de functies van NumPy gebruiken:
rmse = np.sqrt(np.mean((y_true-y_pred)**2))
Of je kunt de mean_squared_error()
-methode van Scikit-learn gebruiken met squared=False
:
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
Bij SSR werden de residuen gekwadrateerd om het teken te elimineren. Een tweede benadering is het nemen van de absolute waarden van de residuen in plaats van deze te kwadrateren. Dit is het idee achter de Mean Absolute Error (MAE).
of gelijkwaardig
Dit is hetzelfde als de MSE, maar in plaats van de residuen te kwadrateren, nemen we hun absolute waarden.
Hoewel MAE vergelijkbaar is met MSE, is het door het gebruik van absolute waarden van de residuen robuuster tegen uitschieters, omdat het grote fouten minder versterkt dan MSE. Hierdoor is MAE vaak een betere keuze wanneer de dataset uitschieters bevat, aangezien de waarde niet onevenredig toeneemt door enkele extreme fouten.
Om de MAE-metriek te berekenen met Python, kun je de functies van NumPy gebruiken:
mae = np.mean(np.fabs(y_true-y_pred))
Of je kunt de mean_absolute_error()
-methode van Scikit-learn gebruiken:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
Voor het kiezen van de parameters gebruikten we de SSR-metriek. Dit was geschikt voor wiskundige berekeningen en stelde ons in staat de Normale Vergelijking te verkrijgen. Maar om de modellen verder te vergelijken, kun je elke andere metriek gebruiken.
Voor het vergelijken van modellen zullen SSR, MSE en RMSE altijd identiek bepalen welk model beter of slechter is. MAE kan soms echter een ander model verkiezen dan SSR/MSE/RMSE, omdat deze laatste hoge residuen veel zwaarder bestraffen. Gewoonlijk kies je vooraf één metriek en richt je je op het minimaliseren daarvan.
Nu kun je met zekerheid zeggen dat het tweede model beter is, aangezien al zijn metriekwaarden lager zijn. Lagere metriekwaarden betekenen echter niet altijd dat het model beter is.
Bedankt voor je feedback!