Kursinhalt
Lineare Regression mit Python
Lineare Regression mit Python
Metriken
Beim Erstellen eines Modells ist es wichtig, seine Leistung zu messen.
Wir benötigen eine mit dem Modell verbundene Punktzahl, die genau beschreibt, wie gut es zu den Daten passt. Diese Punktzahl wird als Metrik bezeichnet, und es gibt zahlreiche verfügbare Metriken.
In diesem Kapitel konzentrieren wir uns auf die am häufigsten verwendeten.
Wir werden die folgende Notation verwenden:
Wir sind bereits mit einer Metrik vertraut, SSR (Summe der quadrierten Residuen), die wir minimiert haben, um die optimalen Parameter zu identifizieren.
Unter Verwendung unserer Notation können wir die Formel für SSR wie folgt ausdrücken:
oder gleichwertig:
Diese Metrik war gut zum Vergleich von Modellen mit der gleichen Anzahl von Instanzen. Sie gibt uns jedoch kein Verständnis dafür, wie gut das Modell funktioniert. Hier ist der Grund:
Angenommen, Sie haben zwei Modelle auf verschiedenen Trainingssätzen (im Bild unten gezeigt).
Sie können sehen, dass das erste Modell gut passt, aber immer noch einen höheren SSR als das zweite Modell hat, das visuell schlechter zu den Daten passt. Dies geschah nur, weil das erste Modell viel mehr Datenpunkte hat, sodass die Summe höher ist, aber im Durchschnitt sind die Residuen des ersten Modells niedriger. Daher würde die Durchschnittsbildung der quadrierten Residuen als Metrik das Modell besser beschreiben. Genau das ist der Mean Squared Error(MSE).
MSE
oder gleich:
Um die MSE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:
Oder Sie können die mean_squared_error()
-Methode von Scikit-learn verwenden:
Dabei ist y_true
ein Array von tatsächlichen Zielwerten und y_pred
ein Array von vorhergesagten Zielwerten für dieselben Merkmale.
Das Problem ist, dass der Fehler, den es zeigt, quadriert ist. Angenommen, der MSE des Modells zur Vorhersage von Häusern beträgt 49 Dollar². Wir sind an Preis interessiert, nicht an Preis im Quadrat, wie es der MSE angibt, daher möchten wir die Wurzel des MSE ziehen und 7 Dollar erhalten. Jetzt haben wir eine Metrik mit derselben Einheit wie der vorhergesagte Wert. Diese Metrik wird Root Mean Squared Error (RMSE) genannt.
RMSE
Um die RMSE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:
Oder Sie können die mean_squared_error()
-Methode von Scikit-learn mit squared=False
verwenden:
MAE
Im SSR haben wir die Residuen quadriert, um das Vorzeichen loszuwerden. Der zweite Ansatz wäre, die absoluten Werte der Residuen zu nehmen, anstatt sie zu quadrieren. Das ist die Idee hinter dem Mean Absolute Error(MAE).
oder gleich
Es ist dasselbe wie das MSE, aber anstatt die Residuen zu quadrieren, nehmen wir ihre absoluten Werte.
Um die MAE-Metrik mit Python zu berechnen, können Sie die Funktionen von NumPy verwenden:
Oder Sie können die mean_absolute_error()
-Methode von Scikit-learn verwenden:
Für die Auswahl der Parameter haben wir die SSR-Metrik verwendet. Das liegt daran, dass sie sich gut für mathematische Berechnungen eignet und es uns ermöglicht, die Normalengleichung zu erhalten. Aber um die Modelle weiter zu vergleichen, können Sie jede andere Metrik verwenden.
Hinweis
Für den Vergleich von Modellen werden SSR, MSE und RMSE immer identisch bestimmen, welches Modell besser und welches schlechter ist. Und MAE kann manchmal ein anderes Modell bevorzugen als SSR/MSE/RMSE, da diese hohe Residuen viel stärker bestrafen. Normalerweise möchten Sie eine Metrik a priori auswählen und sich darauf konzentrieren, sie zu minimieren.
Jetzt können Sie sicher sagen, dass das zweite Modell besser ist, da alle seine Metriken niedriger sind. Niedrigere Metriken bedeuten jedoch nicht immer, dass das Modell besser ist. Das folgende Kapitel wird Ihnen erklären, warum.
Danke für Ihr Feedback!