So berechnen sie die auc (fläche unter der kurve) in python


Die logistische Regression ist eine statistische Methode, die wir verwenden, um ein Regressionsmodell anzupassen, wenn die Antwortvariable binär ist.

Um zu bewerten, wie gut ein logistisches Regressionsmodell zu einem Datensatz passt, können wir uns die folgenden zwei Metriken ansehen:

  • Sensitivität: Wahrscheinlichkeit, dass das Modell ein positives Ergebnis für eine Beobachtung vorhersagt, obwohl das Ergebnis tatsächlich positiv ist. Dies wird auch als „True-Positive-Rate“ bezeichnet.
  • Spezifität: Die Wahrscheinlichkeit, dass das Modell ein negatives Ergebnis für eine Beobachtung vorhersagt, obwohl das Ergebnis tatsächlich negativ ist. Dies wird auch als „echte Negativrate“ bezeichnet.

Eine Möglichkeit, diese beiden Messungen 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, die Wirksamkeit des logistischen Regressionsmodells bei der Klassifizierung von Daten zu quantifizieren, besteht in der Berechnung der AUC , die für „Fläche unter der Kurve“ 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.

Schritt 1: Pakete importieren

Zuerst importieren wir die notwendigen Pakete, um eine logistische Regression in Python durchzuführen:

 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

Schritt 2: Passen Sie das logistische Regressionsmodell an

Als Nächstes importieren wir einen Datensatz und passen ein logistisches Regressionsmodell daran an:

 #import dataset from CSV file on Github
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/default.csv"
data = pd. read_csv (url)

#define the predictor variables and the response variable
X = data[[' student ',' balance ',' income ']]
y = data[' default ']

#split the dataset into training (70%) and testing (30%) sets
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size= 0.3 ,random_state= 0 ) 

#instantiate the model
log_regression = LogisticRegression()

#fit the model using the training data
log_regression. fit (X_train,y_train)

Schritt 3: Berechnen Sie die AUC

Wir können die Funktion metrics.roc_auc_score() verwenden, um die AUC des Modells zu berechnen:

 #use model to predict probability that given y value is 1
y_pred_proba = log_regression. predict_proba (X_test)[::, 1 ]

#calculate AUC of model
auc = metrics. roc_auc_score (y_test, y_pred_proba)

#print AUC score
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 anstellt.

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.

Zusätzliche Ressourcen

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?

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert