Contenido de este artículo
- 0
- 0
- 0
- 0
La regresión logística es un método estadístico que utilizamos para ajustar un modelo de regresión cuando la variable de respuesta es binaria. Para evaluar qué tan bien se ajusta un modelo de regresión logística a un conjunto de datos, podemos observar las siguientes dos métricas:
- Sensibilidad: la probabilidad de que el modelo prediga un resultado positivo para una observación cuando en realidad el resultado es positivo. Esto también se denomina «tasa positiva verdadera».
- Especificidad: La probabilidad de que el modelo prediga un resultado negativo para una observación cuando en realidad el resultado es negativo. Esto también se denomina «tasa negativa verdadera».
Una forma de visualizar estas dos métricas es creando una curva ROC , que significa curva de “característica operativa del receptor”. Esta es una gráfica que muestra la sensibilidad y especificidad de un modelo de regresión logística.
El siguiente ejemplo paso a paso muestra cómo crear e interpretar una curva ROC en Python.
Paso 1: importar los paquetes necesarios
Primero, importaremos los paquetes necesarios para realizar la regresión logística en Python:
importar pandas como pd importar numpy como np desde sklearn. model_selection importar train_test_split desde sklearn. linear_model import LogisticRegression desde sklearn import metrics import matplotlib. pyplot como plt
Paso 2: Ajustar el modelo de regresión logística
A continuación, importaremos un conjunto de datos y le ajustaremos un modelo de regresión logística:
#importar conjunto de datos del archivo CSV en Github url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/default.csv" datos = pd. read_csv (url) #definir las variables predictoras y la variable de respuesta X = datos [[' estudiante ', ' saldo ', ' ingresos ']] y = datos [' predeterminado '] #dividir el conjunto de datos en entrenamiento (70%) y pruebas (30%) conjuntos X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.3, random_state = 0) #instalar el modelo log_regression = LogisticRegression () #ajuste el modelo usando los datos de entrenamiento log_regression. ajuste (X_train, y_train)
Paso 3: trazar la curva ROC
A continuación, calcularemos la tasa de verdaderos positivos y la tasa de falsos positivos y crearemos una curva ROC utilizando el paquete de visualización de datos Matplotlib:
#define métricas y_pred_proba = log_regression. predict_proba (X_test) [::, 1] fpr, tpr, _ = métricas. roc_curve (y_test, y_pred_proba) #create plt de la curva ROC . trama (fpr, tpr) plt. ylabel (' Tasa de verdaderos positivos ') plt. xlabel (' Tasa de falsos positivos ') plt. mostrar ()
Cuanto más abraza la curva la esquina superior izquierda del gráfico, mejor lo hace el modelo para clasificar los datos en categorías.
Como podemos ver en el gráfico anterior, este modelo de regresión logística hace un trabajo bastante pobre al clasificar los datos en categorías.
Para cuantificar esto, podemos calcular el AUC (área bajo la curva) que nos dice qué parte del gráfico se encuentra debajo de la curva.
Cuanto más cerca esté el AUC de 1, mejor será el modelo. Un modelo con un AUC igual a 0.5 no es mejor que un modelo que hace clasificaciones aleatorias.
Paso 4: Calcule el AUC
Podemos usar el siguiente código para calcular el AUC del modelo y mostrarlo en la esquina inferior derecha del gráfico ROC:
#define métricas y_pred_proba = log_regression. predict_proba (X_test) [::, 1] fpr, tpr, _ = métricas. roc_curve (y_test, y_pred_proba) auc = métricas. roc_auc_score (y_test, y_pred_proba) #create plt de la curva ROC . plot (fpr, tpr, label = " AUC = " + str (auc)) plt. ylabel (' Tasa de verdaderos positivos ') plt. xlabel (' Tasa de falsos positivos ') plt. leyenda (loc = 4) plt. mostrar ()
El AUC para este modelo de regresión logística resulta ser 0.5602 . Dado que está cerca de 0,5, esto confirma que el modelo hace un mal trabajo al clasificar los datos.
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: