Regresia logistică și curba ROC

Învățare supravegheată cu scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Regresia logistică pentru clasificare binară

  • Regresia logistică este utilizată pentru probleme de clasificare

  • Regresia logistică produce probabilități

  • Dacă probabilitatea, $ \ p>0.5$:

    • Data este etichetată 1
  • Dacă probabilitatea, $ \ p<0.5$:

    • Data este etichetată 0
Învățare supravegheată cu scikit-learn

Frontieră de decizie liniară

scatter plot al caracteristicii 1 față de caracteristica 2, cu o frontieră de decizie liniară pentru predicția churn-ului de la stânga la dreapta

Învățare supravegheată cu scikit-learn

Regresia logistică în 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)
Învățare supravegheată cu scikit-learn

Predicția probabilităților

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

print(y_pred_probs[0])
[0.08961376]
Învățare supravegheată cu scikit-learn

Praguri de probabilitate

  • Implicit, pragul regresiei logistice = 0.5

  • Nu este specific regresiei logistice

    • Clasificatorii KNN au, de asemenea, praguri
  • Ce se întâmplă dacă variăm pragul?

Învățare supravegheată cu scikit-learn

Curba ROC

rata adevărat pozitivă vs rata fals pozitivă cu o linie punctată de la stânga jos la dreapta sus

Învățare supravegheată cu scikit-learn

Curba ROC

pragul zero evidențiat în dreapta sus

Învățare supravegheată cu scikit-learn

Curba ROC

pragul 1 evidențiat și în stânga jos

Învățare supravegheată cu scikit-learn

Curba ROC

ambele praguri evidențiate

Învățare supravegheată cu scikit-learn

Curba ROC

Puncte curbând în sus și spre dreapta deasupra liniei punctate, reprezentând praguri diferite

Învățare supravegheată cu scikit-learn

Curba ROC

linie curbând în sus și spre dreapta deasupra liniei punctate, reprezentând praguri diferite

Învățare supravegheată cu scikit-learn

Reprezentarea grafică a curbei ROC

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()
Învățare supravegheată cu scikit-learn

Reprezentarea grafică a curbei ROC

graficul curbei ROC pentru setul de date churn, cu o linie care urcă spre dreapta din stânga jos

Învățare supravegheată cu scikit-learn

ROC AUC

graficul curbei ROC pentru setul de date churn, cu o linie care urcă spre dreapta din stânga jos, cu p=0.67 adnotat

Învățare supravegheată cu scikit-learn

ROC AUC în scikit-learn

from sklearn.metrics import roc_auc_score

print(roc_auc_score(y_test, y_pred_probs))
0.6700964152663693
Învățare supravegheată cu scikit-learn

Să exersăm!

Învățare supravegheată cu scikit-learn

Preparing Video For Download...