Regresión logística y curva ROC

Aprendizaje supervisado con scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Regresión logística para clasificación binaria

  • La regresión logística se utiliza para problemas de clasificación.

  • La regresión logística produce probabilidades.

  • Si la probabilidad, $ \ p>0,5$:

    • Los datos se etiquetan con 1
  • Si la probabilidad, $ \ p<0,5$:

    • Los datos se etiquetan con 0
Aprendizaje supervisado con scikit-learn

Límite de decisión lineal

gráfico de dispersión de la característica 1 frente a la característica 2, con un límite de decisión en línea recta para predecir la rotación que va de izquierda a derecha

Aprendizaje supervisado con scikit-learn

Regresión logística en 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)
Aprendizaje supervisado con scikit-learn

Predecir probabilidades

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

print(y_pred_probs[0])
[0.08961376]
Aprendizaje supervisado con scikit-learn

Umbrales de probabilidad

  • Por defecto, umbral de regresión logística = 0,5

  • No es específico de la regresión logística.

    • Los clasificadores KNN también tienen umbrales.
  • ¿Qué ocurre si variamos el umbral?

Aprendizaje supervisado con scikit-learn

La curva ROC

tasa de verdaderos positivos frente a tasa de falsos positivos con una línea de puntos que va de abajo a la izquierda hasta arriba a la derecha

Aprendizaje supervisado con scikit-learn

La curva ROC

umbral cero resaltado arriba a la derecha

Aprendizaje supervisado con scikit-learn

La curva ROC

umbral de 1 también resaltado en la parte inferior izquierda

Aprendizaje supervisado con scikit-learn

La curva ROC

ambos umbrales resaltados

Aprendizaje supervisado con scikit-learn

La curva ROC

Puntos curvados hacia arriba y hacia la derecha por encima de la línea de puntos, que representan diferentes umbrales

Aprendizaje supervisado con scikit-learn

La curva ROC

línea curva hacia arriba y hacia la derecha por encima de la línea de puntos, que representa diferentes umbrales

Aprendizaje supervisado con scikit-learn

Representación gráfica de la curva 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()
Aprendizaje supervisado con scikit-learn

Representación gráfica de la curva ROC

gráfico de la curva roc para el conjunto de datos de rotación, con una línea que se mueve hacia arriba y a la derecha desde abajo a la izquierda

Aprendizaje supervisado con scikit-learn

ROC AUC

gráfico de la curva roc para el conjunto de datos de rotación, con una línea que se mueve hacia arriba y a la derecha desde abajo a la izquierda, con p=0,67 anotado

Aprendizaje supervisado con scikit-learn

ROC AUC en scikit-learn

from sklearn.metrics import roc_auc_score

print(roc_auc_score(y_test, y_pred_probs))
0.6700964152663693
Aprendizaje supervisado con scikit-learn

¡Vamos a practicar!

Aprendizaje supervisado con scikit-learn

Preparing Video For Download...