Das Akaike-Informationskriterium (AIC) ist eine Metrik, die verwendet wird, um die Anpassung verschiedener Regressionsmodelle zu vergleichen.
Es wird berechnet als:
AIC = 2K – 2ln (L)
wo:
- K: Die Anzahl der Modellparameter …
Die logistische Regression ist eine statistische Methode, die wir verwenden, um ein Regressionsmodell anzupassen, wenn die Antwortvariable binär ist.
Um zu beurteilen, wie gut ein logistisches Regressionsmodell zu einem Datensatz passt, können wir uns die folgenden zwei Metriken ansehen:
Eine Möglichkeit, diese beiden Metriken zu visualisieren, besteht darin, eine ROC-Kurve zu erstellen, die für „Receiver Operating Characteristic“-Kurve steht.
Dies ist ein Diagramm, das die Sensitivität entlang der y-Achse und (1 – Spezifität) entlang der x-Achse anzeigt.
Eine Möglichkeit zu quantifizieren, wie gut das logistische Regressionsmodell Daten klassifiziert, ist die Berechnung von AUC, was für „Area under Curve“ steht.
Je näher die AUC bei 1 liegt, desto besser ist das Modell.
Das folgende Schritt-für-Schritt-Beispiel zeigt, wie die AUC für ein logistisches Regressionsmodell in Python berechnet wird.
Zuerst importieren wir die Pakete, die für die Durchführung der logistischen Regression in Python erforderlich sind:
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
Als Nächstes importieren wir einen Datensatz und passen ein logistisches Regressionsmodell daran an:
#Datensatz aus CSV-Datei auf Github importieren
url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/default.csv"
data = pd.read_csv(url)
#definieren Sie die Prädiktorvariablen und die Antwortvariable
X = data[['student', 'balance', 'income']]
y = data['default']
#den Datensatz in Trainings- (70 %) und Testsätze (30 %) aufteilen
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=0)
#instanziiere das Modell
log_regression = LogisticRegression()
#passen Sie das Modell mithilfe der Trainingsdaten an
log_regression.fit(X_train,y_train)
Wir können die Funktion metrics.roc_auc_score() verwenden, um die AUC des Modells zu berechnen:
#Verwenden Sie das Modell, um die Wahrscheinlichkeit vorherzusagen, dass der gegebene y-Wert 1 ist
y_pred_proba = log_regression.predict_proba(X_test)[::,1]
# AUC des Modells berechnen
auc = metrics.roc_auc_score(y_test, y_pred_proba)
#AUC-Score ausgeben
print(auc)
0.5602104030579559
Die AUC (Fläche unter der Kurve) für dieses spezielle Modell beträgt 0,5602.
Denken Sie daran, dass ein Modell mit einem AUC-Wert von 0,5 nicht besser ist als ein Modell, das zufällige Schätzungen durchführt.
Daher würde in den meisten Fällen ein Modell mit einem AUC-Wert von 0,5602 als schlecht bei der Klassifizierung von Beobachtungen in die richtigen Klassen angesehen werden.
Die folgenden Tutorials bieten zusätzliche Informationen zu ROC-Kurven und AUC-Scores:
So interpretieren Sie eine ROC-Kurve (mit Beispielen)
Was gilt als guter AUC-Wert?
Das Akaike-Informationskriterium (AIC) ist eine Metrik, die verwendet wird, um die Anpassung verschiedener Regressionsmodelle zu vergleichen.
Es wird berechnet als:
AIC = 2K – 2ln (L)
wo:
Bei der Verwendung von Klassifizierungsmodellen beim maschinellen Lernen ist eine gängige Metrik, die wir verwenden, um die Qualität des Modells zu bewerten, der F1-Score.
Diese Metrik wird wie folgt berechnet …