Regresión Logística
Modelo de regresión que está más enfocado en la clasificación de datos cualitativos, entregándonos como resultado un 0 o 1 (sí o no)
Desarrollamos un modelo de clasificación mediante un algoritmo de aprendizaje automático llamado Regresión Logística. Este modelo permite, a partir de datos de pacientes previamente clasificados, clasificar a nuevos pacientes que presenten determinadas características o features similares a las de los pacientes que fueron revisados para preparar el dataset.
Cómo la clasificación se realiza en base a labels o etiquetas incluídas en el dataset, decimos que se trata de un algoritmo de aprendizaje automático supervisado.
Dividimos los datos
Llamamos a nuestro algoritmo
1 tiene diabetes vs 0 no tiene diabetes
Finalmente evalúo la precisión de mi modelo
La interpretación del resultado anterior sería que la clasificación de nuevos pacientes con este modelo se realizaría con una precisión del 79%. El resultado se obtiene de calcular [(Verdaderos Positivos + Verdaderos Negativos )/ Total de Datos de y_pred ]
Para entender mejor lo anterior revisamos el concepto de Matriz de Confusión.
La Matriz de Confusión es una representación gráfica que nos permite ver el grado de acierto de nuestro modelo. El gráfico tiene cuatro divisiones: Verdaderos Positivos (VP), Falsos Positivos (FP), Falsos Negativos (FN) y Verdaderos Negativos (VN). Siendo los datos verdaderos los que nos interesa maximizar (valores de la diagonal).
Nuestra primer matriz de confusión no es muy sencilla de leer, por lo que generaremos otra un poco más amigable a los ojos y el entendimiento.
Seaborn nos permite crear un mapa de calor a partir de los valores entregados (la matriz de confusión en este caso), los parámetros que entregamos son: annot → permite colocar los valores sobre el gráfico, cmap → estilo del gráfico, fmt → formato de los valores - ax.xaxis,set_label_position() → nos permite definir donde colocar la etiqueta del eje x - plt.tight_layout() → crea un padding en torno al gráfico (lo enmarca)
La lectura de la matriz de confusión comienza por interpretar los valores de la diagonal. Los valores de la diagonal representan aquellos datos que han sido correctamente clasificados por el modelo.
El cuadrante de arriba a la izquierda muestra los Verdaderos Positivos, es decir aquellos pacientes que fueron clasificados correctamente con diabetes por el modelo y efectivamente tenian diabetes. En total fueron 115 personas clasificadas de esta forma.
El cuadrante de abajo a la derecha muestra los Verdaderos Negativos, aquellos pacientes que fueron clasificados sin diabetes por el modelo y que efectivamente no tenian diabetes. en total fueron 37 personas clasificadas de esta forma.
Esto da un total de 152 personas cuyo clasificación fue precisa.
Por otra parte los valores fuera de la diagonal de la matriz contiene los datos mal clasificados por el modelo.
En el cuadrante abajo a la izquierda se encuentran los Falsos Positivos, aquellos pacientes que el modelo clasificó como enfermos con diabetes cuando en realidad NO tenian dicha enfermedad. Fueron 25 casos en total, en los cuales el modelo genero falsos positivos.
En el cuadrante de arriba a la derecha encontramos los Falsos Negativos en los cuales el modelo clasifico pacientes como si NO tubieran diabetes, cuando en realidad dichos pacientes SI se encontraban enfermos con diabetes. Fueron 15 datos con Falsos Negativos.
En total fueron 40 casos que el modelo clasifico erroneamente.
Otra forma de evaluar nuestro modelo es a través del método accuracy_score del módulo metrics:
Es otra manera similar a calcular lo mismo por logreg.score(X_test, y_test), cómo vimos más arriba.
Es decir que tenemos un 79,16% de probabilidad de que nuestro modelo, considerando nuevos datos, pueda saber si esa persona, según sus características, tenga diabétes o no.