Regressão logística e curva de COR

Aprendizado Supervisionado com o scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Regressão logística para classificação binária

  • A regressão logística é usada para problemas de classificação

  • A regressão logística gera probabilidades

  • Se a probabilidade $ \ p>0,5$:

    • Os dados são rotulados como 1
  • Se a probabilidade $ \ p<0,5$:

    • Os dados são rotulados como 0
Aprendizado Supervisionado com o scikit-learn

Limite de decisão linear

Gráfico de dispersão da variável independente 1 x variável independente 2, com um limite de decisão em linha reta para prever a rotatividade de clientes da esquerda para a direita

Aprendizado Supervisionado com o scikit-learn

Regressão logística no 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)
Aprendizado Supervisionado com o scikit-learn

Previsão de probabilidades

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

print(y_pred_probs[0])
[0.08961376]
Aprendizado Supervisionado com o scikit-learn

Limites de probabilidade

  • Por padrão: limite de regressão logística = 0,5

  • Não é específico para regressão logística

    • Os classificadores KNN também têm limites
  • O que acontece se variarmos o limite?

Aprendizado Supervisionado com o scikit-learn

A curva de COR

taxa de verdadeiros positivos x taxa de falsos positivos com uma linha pontilhada do canto inferior esquerdo ao canto superior direito

Aprendizado Supervisionado com o scikit-learn

A curva de COR

limite em zero destacado no canto superior direito

Aprendizado Supervisionado com o scikit-learn

A curva de COR

limite igual a 1 também destacado no canto inferior esquerdo

Aprendizado Supervisionado com o scikit-learn

A curva de COR

ambos os limites destacados

Aprendizado Supervisionado com o scikit-learn

A curva de COR

Pontos formando uma curva para cima e para a direita acima da linha pontilhada, representando diferentes limites

Aprendizado Supervisionado com o scikit-learn

A curva de COR

linha curvada para cima e para a direita acima da linha pontilhada, representando diferentes limites

Aprendizado Supervisionado com o scikit-learn

Gráfico da curva de COR

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()
Aprendizado Supervisionado com o scikit-learn

Gráfico da curva de COR

Gráfico de curva de COR para o conjunto de dados de rotatividade de clientes, com uma linha seguindo para cima e para a direita a partir do canto inferior esquerdo

Aprendizado Supervisionado com o scikit-learn

Área sob a curva de COR (ROC AUC)

Gráfico da curva de COR para o conjunto de dados de rotatividade de clientes, com uma linha seguindo para cima e para a direita a partir do canto inferior esquerdo, com p=0,67 anotado

Aprendizado Supervisionado com o scikit-learn

Área sob a curva de COR (ROC AUC) no scikit-learn

from sklearn.metrics import roc_auc_score

print(roc_auc_score(y_test, y_pred_probs))
0.6700964152663693
Aprendizado Supervisionado com o scikit-learn

Vamos praticar!

Aprendizado Supervisionado com o scikit-learn

Preparing Video For Download...