Logistische Regression und ROC-Kurve

Überwachtes Lernen mit scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Logistische Regression für die binäre Klassifikation

  • Logistische Regression wird für Klassifikationsaufgaben verwendet

  • Logistische Regression liefert Wahrscheinlichkeiten

  • Wenn Wahrscheinlichkeit $ \ p≥0,5$:

    • Daten erhalten das Label 1
  • Wenn Wahrscheinlichkeit $ \ p<0,5$:

    • Daten erhalten das Label 0
Überwachtes Lernen mit scikit-learn

Lineare Entscheidungsgrenze

Streudiagramm für Merkmal 1 und Merkmal 2; eine gerade Entscheidungsgrenze für die Vorhersage von Kundenabwanderung verläuft von links nach rechts

Überwachtes Lernen mit scikit-learn

Logistische Regression in scikit-learn

from sklearn.linear_model import LogisticRegression

logreg = LogisticRegression()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
logreg.fit(X_train, y_train)
y_pred = logreg.predict(X_test)
Überwachtes Lernen mit scikit-learn

Vorhersage von Wahrscheinlichkeiten

y_pred_probs = logreg.predict_proba(X_test)[:, 1]

print(y_pred_probs[0])
[0.08961376]
Überwachtes Lernen mit scikit-learn

Schwellenwerte für die Wahrscheinlichkeit

  • Standardmäßiger Schwellenwert für die logistische Regression: 0,5

  • Gilt nicht nur für die logistische Regression

    • KNN-Klassifikatoren haben auch Schwellenwerte
  • Was passiert, wenn wir den Schwellenwert ändern?

Überwachtes Lernen mit scikit-learn

Die ROC-Kurve

Diagramm der Richtig-positiv-Rate gegenüber der Falsch-positiv-Rate mit einer gestrichelten Linie, die von links unten nach rechts oben verläuft

Überwachtes Lernen mit scikit-learn

Die ROC-Kurve

Oben rechts ist der hervorgehobene Schwellenwert gleich 0

Überwachtes Lernen mit scikit-learn

Die ROC-Kurve

Unten links ist der hervorgehobene Schwellenwert gleich 1

Überwachtes Lernen mit scikit-learn

Die ROC-Kurve

Beide Schwellenwerte sind hervorgehoben

Überwachtes Lernen mit scikit-learn

Die ROC-Kurve

Punkte oberhalb der gestrichelten Linie verlaufen bogenartig nach oben rechts und stellen verschiedene Schwellenwerte dar

Überwachtes Lernen mit scikit-learn

Die ROC-Kurve

Durchgezogene Linie verläuft bogenartig oberhalb der gestrichelten Linie nach oben rechts und stellt die verschiedenen Schwellenwerte dar

Überwachtes Lernen mit scikit-learn

Visualisierung der ROC-Kurve

from sklearn.metrics import roc_curve

fpr, tpr, thresholds = roc_curve(y_test, y_pred_probs)
plt.plot([0, 1], [0, 1], 'k--') plt.plot(fpr, tpr) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Logistic Regression ROC Curve') plt.show()
Überwachtes Lernen mit scikit-learn

Visualisierung der ROC-Kurve

ROC-Kurve für den Datensatz zur Kundenabwanderung; eine Linie verläuft von unten links erst vorwiegend nach oben und dann auch nach rechts

Überwachtes Lernen mit scikit-learn

ROC AUC

ROC-Kurve für den Datensatz zur Kundenabwanderung; eine Linie verläuft von unten links erst vorwiegend nach oben und dann auch nach rechts; die Beschriftung zeigt p=0,67

Überwachtes Lernen mit scikit-learn

ROC AUC in scikit-learn

from sklearn.metrics import roc_auc_score

print(roc_auc_score(y_test, y_pred_probs))
0.6700964152663693
Überwachtes Lernen mit scikit-learn

Lass uns üben!

Überwachtes Lernen mit scikit-learn

Preparing Video For Download...