Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Metriken | Das Beste Modell Auswählen
Lineare Regression mit Python

bookMetriken

Beim Erstellen eines Modells ist es wichtig, dessen Leistung zu messen.
Wir benötigen eine dem Modell zugeordnete Kennzahl, die genau beschreibt, wie gut es die Daten abbildet. Diese Kennzahl wird als Metrik bezeichnet, und es stehen zahlreiche Metriken zur Verfügung.
In diesem Kapitel konzentrieren wir uns auf die am häufigsten verwendeten.

Wir verwenden die folgende Notation:

Wir kennen bereits eine Metrik, SSR (Sum of Squared Residuals), die wir minimiert haben, um die optimalen Parameter zu bestimmen.
Mit unserer Notation können wir die Formel für SSR wie folgt ausdrücken:

oder gleichwertig:

Diese Kennzahl eignete sich gut zum Vergleich von Modellen mit der gleichen Anzahl an Instanzen. Sie vermittelt jedoch kein Verständnis dafür, wie gut das Modell tatsächlich arbeitet. Hier ist der Grund:
Angenommen, Sie haben zwei Modelle auf unterschiedlichen Trainingsdatensätzen (siehe Abbildung unten).

Man erkennt, dass das erste Modell gut passt, aber dennoch einen höheren SSR als das zweite Modell aufweist, das die Daten optisch schlechter abbildet. Dies liegt ausschließlich daran, dass das erste Modell deutlich mehr Datenpunkte enthält, wodurch die Summe höher ausfällt, aber im Durchschnitt die Residuen des ersten Modells geringer sind. Daher beschreibt das Mittel der quadrierten Residuen als Kennzahl das Modell besser. Genau das ist der Mean Squared Error (MSE).

MSE

oder gleichwertig:

Um die MSE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:

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

Oder Sie verwenden die Methode mean_squared_error() von Scikit-learn:

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

Dabei ist y_true ein Array der tatsächlichen Zielwerte und y_pred ein Array der vorhergesagten Zielwerte für die gleichen Merkmale.

Das Problem besteht darin, dass der angezeigte Fehler quadriert ist. Angenommen, der MSE des Modells zur Vorhersage von Häuserpreisen beträgt 49 Dollar². Uns interessiert der Preis und nicht der quadrierte Preis, wie er durch den MSE angegeben wird. Daher möchten wir die Wurzel des MSE ziehen und erhalten 7 Dollar. Nun haben wir eine Metrik mit derselben Einheit wie der vorhergesagte Wert. Diese Metrik wird als Root Mean Squared Error (RMSE) bezeichnet.

RMSE

Um die RMSE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:

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

Oder Sie verwenden die Methode mean_squared_error() von Scikit-learn mit squared=False:

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

MAE

Bei SSR wurden die Residuen quadriert, um das Vorzeichen zu eliminieren. Der zweite Ansatz besteht darin, anstelle des Quadrierens die Absolutwerte der Residuen zu nehmen. Das ist die Idee hinter dem Mean Absolute Error (MAE).

oder gleichwertig

Dies entspricht dem MSE, aber anstelle der Quadrierung der Residuen werden deren Beträge verwendet.

Obwohl MAE dem MSE ähnlich ist, ist es durch die Verwendung der absoluten Werte der Residuen robuster gegenüber Ausreißern, da große Fehler nicht so stark verstärkt werden wie beim MSE. Daher ist MAE oft die bessere Wahl, wenn der Datensatz Ausreißer enthält, da sein Wert durch einige extreme Fehler nicht unverhältnismäßig ansteigt.

Um die MAE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:

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

Oder Sie verwenden die mean_absolute_error()-Methode von Scikit-learn:

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

Für die Auswahl der Parameter haben wir die SSR-Metrik verwendet. Dies liegt daran, dass sie sich gut für mathematische Berechnungen eignet und es uns ermöglicht hat, die Normalengleichung zu erhalten. Um die Modelle weiter zu vergleichen, können jedoch auch andere Metriken verwendet werden.

Note
Hinweis

Für den Vergleich von Modellen wählen SSR, MSE und RMSE immer identisch aus, welches Modell besser und welches schlechter ist. MAE kann jedoch manchmal ein anderes Modell bevorzugen als SSR/MSE/RMSE, da diese hohe Residuen deutlich stärker bestrafen. In der Regel sollte eine Metrik im Voraus ausgewählt und auf deren Minimierung fokussiert werden.

Nun lässt sich eindeutig sagen, dass das zweite Modell besser ist, da alle seine Metriken niedriger sind. Allerdings bedeuten niedrigere Metriken nicht immer, dass das Modell tatsächlich besser ist.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 5.26

bookMetriken

Swipe um das Menü anzuzeigen

Beim Erstellen eines Modells ist es wichtig, dessen Leistung zu messen.
Wir benötigen eine dem Modell zugeordnete Kennzahl, die genau beschreibt, wie gut es die Daten abbildet. Diese Kennzahl wird als Metrik bezeichnet, und es stehen zahlreiche Metriken zur Verfügung.
In diesem Kapitel konzentrieren wir uns auf die am häufigsten verwendeten.

Wir verwenden die folgende Notation:

Wir kennen bereits eine Metrik, SSR (Sum of Squared Residuals), die wir minimiert haben, um die optimalen Parameter zu bestimmen.
Mit unserer Notation können wir die Formel für SSR wie folgt ausdrücken:

oder gleichwertig:

Diese Kennzahl eignete sich gut zum Vergleich von Modellen mit der gleichen Anzahl an Instanzen. Sie vermittelt jedoch kein Verständnis dafür, wie gut das Modell tatsächlich arbeitet. Hier ist der Grund:
Angenommen, Sie haben zwei Modelle auf unterschiedlichen Trainingsdatensätzen (siehe Abbildung unten).

Man erkennt, dass das erste Modell gut passt, aber dennoch einen höheren SSR als das zweite Modell aufweist, das die Daten optisch schlechter abbildet. Dies liegt ausschließlich daran, dass das erste Modell deutlich mehr Datenpunkte enthält, wodurch die Summe höher ausfällt, aber im Durchschnitt die Residuen des ersten Modells geringer sind. Daher beschreibt das Mittel der quadrierten Residuen als Kennzahl das Modell besser. Genau das ist der Mean Squared Error (MSE).

MSE

oder gleichwertig:

Um die MSE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:

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

Oder Sie verwenden die Methode mean_squared_error() von Scikit-learn:

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

Dabei ist y_true ein Array der tatsächlichen Zielwerte und y_pred ein Array der vorhergesagten Zielwerte für die gleichen Merkmale.

Das Problem besteht darin, dass der angezeigte Fehler quadriert ist. Angenommen, der MSE des Modells zur Vorhersage von Häuserpreisen beträgt 49 Dollar². Uns interessiert der Preis und nicht der quadrierte Preis, wie er durch den MSE angegeben wird. Daher möchten wir die Wurzel des MSE ziehen und erhalten 7 Dollar. Nun haben wir eine Metrik mit derselben Einheit wie der vorhergesagte Wert. Diese Metrik wird als Root Mean Squared Error (RMSE) bezeichnet.

RMSE

Um die RMSE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:

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

Oder Sie verwenden die Methode mean_squared_error() von Scikit-learn mit squared=False:

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

MAE

Bei SSR wurden die Residuen quadriert, um das Vorzeichen zu eliminieren. Der zweite Ansatz besteht darin, anstelle des Quadrierens die Absolutwerte der Residuen zu nehmen. Das ist die Idee hinter dem Mean Absolute Error (MAE).

oder gleichwertig

Dies entspricht dem MSE, aber anstelle der Quadrierung der Residuen werden deren Beträge verwendet.

Obwohl MAE dem MSE ähnlich ist, ist es durch die Verwendung der absoluten Werte der Residuen robuster gegenüber Ausreißern, da große Fehler nicht so stark verstärkt werden wie beim MSE. Daher ist MAE oft die bessere Wahl, wenn der Datensatz Ausreißer enthält, da sein Wert durch einige extreme Fehler nicht unverhältnismäßig ansteigt.

Um die MAE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:

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

Oder Sie verwenden die mean_absolute_error()-Methode von Scikit-learn:

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

Für die Auswahl der Parameter haben wir die SSR-Metrik verwendet. Dies liegt daran, dass sie sich gut für mathematische Berechnungen eignet und es uns ermöglicht hat, die Normalengleichung zu erhalten. Um die Modelle weiter zu vergleichen, können jedoch auch andere Metriken verwendet werden.

Note
Hinweis

Für den Vergleich von Modellen wählen SSR, MSE und RMSE immer identisch aus, welches Modell besser und welches schlechter ist. MAE kann jedoch manchmal ein anderes Modell bevorzugen als SSR/MSE/RMSE, da diese hohe Residuen deutlich stärker bestrafen. In der Regel sollte eine Metrik im Voraus ausgewählt und auf deren Minimierung fokussiert werden.

Nun lässt sich eindeutig sagen, dass das zweite Modell besser ist, da alle seine Metriken niedriger sind. Allerdings bedeuten niedrigere Metriken nicht immer, dass das Modell tatsächlich besser ist.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 1
some-alt