Predictor de infidelidad (II): ¿Qué es la regresión logística?

Paloma Recuero de los Santos    20 febrero, 2019
En el post anterior, planteamos crear un “predictor de infidelidad” a partir del dataset “afairs”, cargamos los datos y realizamos una breve exploración/visualización de éstos. En el post de hoy, analizaremos el tipo de problema, y el algoritmo que vamos a utilizar para la nuestro modelo de predicción, la regresión logística.  Antes de aplicarlo, merece la pena detenerse a comprenderlo un poco mejor.

En este segundo post aprenderemos lo siguiente:

  • Cómo definir la variable objetivo en un problema de clasificación
  • Qué es y para qué sirve la regresión logística
  • Cómo explicar de forma intuitiva las matemáticas del modelo
  • Cuáles son sus limitaciones
Tras el breve análisis que hicimos en el post anterior, es fácil deducir que nos hayamos ante unproblema de clasificación. Esto no es nada raro, ya que, aproximadamente un 70% de los problemas de Data Science son de este tipo. Decimos que es de tipo binario, porque la variable objetivo, aquella cuyo valor queremos predecir, podrá tener dos valores enteros (0=fiel, 1=infiel).
(También podríamos haberlo abordado como variable de texto, siempre hay enfoques alternativos para la solución de cualquier problema).

Por tanto, definimos una nueva variable, “infidelity“, que será la variable objetivo (target variable) cuyo valor sea “0” cuando la variable “affairs” es 0 y 1 cuando esta variable es >0. Recordemos que la variable “affairs” era una medida del tiempo dedicado a tener una “aventura extramarital”. Si pedimos de nuevo que muestre los 10 primeros registros, vemos que, en este caso, el valor de la nueva variable es 1 (= amores “no oficiales”).

Definición de la variable objetivo "infidelity".
Figura 1: Definición de la variable objetivo “infidelity”.
Impresión de los 10 primeros valores de la variable.
Figura 2: Impresión de los 10 primeros valores de la variable.

Hay distintas familias de algoritmos que se pueden usar para cada tipo de problema en Machine Learning. Lo habitual es usar varios modelos, evaluar su rendimiento y así elegir el más adecuado a cada caso. En este caso, obviamos ese análisis porque queremos trabajar con un modelo concreto, la regresión logística que, como veremos, es una elección muy razonable.

2. ¿En qué consiste la regresión logística?

La regresión logística es uno de los algoritmos de aprendizaje supervisado más sencillos y más utilizados en Machine Learning para problemas de clasificación. Es un tipo de análisis de regresión que permite  predecir el resultado de una variable categórica, (binaria o múltiple) en función de las variables independientes o predictoras. Nos vamos a centrar en el primer caso, regresión logística binaria.

Para entenderlo mejor, veamos uno de los ejemplos más típicos: los detectores de spam. A partir de una serie de variables independientes o características de entrada, tales como el remitente de un mensaje, si va dirigido a una única persona o a un grupo de ellas, o si en el campo “Asunto” aparecen determinadas palabras; es capaz de predecir si es correo deseado o no (variable dependiente binaria con dos valores posibles: “correo deseado” o “correo deseado”).

En el siguiente vídeo, Ligdi González explica de forma breve y sencilla cómo funcionan estos algoritmos:

En resumen, los algoritmos de regresión logística, a pesar de su nombre, son algoritmos de clasificación, donde la variable dependiente (valor a predecir), es categórica y binaria. Por tanto, no se trata de predecir valor numérico (como en el caso de la regresión lineal), sino una “etiqueta” de clasificación. En nuestro ejemplo concreto, queremos predecir la probabilidad de que una persona sea fiel o infiel, basándonos en los valores de las variables rate_marriage, years_marriage, children, religious, occupation, occupation_husb y educ.

2.1 Comprendiendo las matemáticas del modelo.

Sin meternos mucho en profundidades matemáticas, el objetivo de la regresión logística es obtener la probabilidad de que la variable dependiente tenga un valor categórico u otro (en nuestro ejemplo o “infidelity”= 0 o “infidelity”= 1), en función de los valores de las variables de entrada. Para ello utiliza un modelo de probabilidad lineal, en el que la probabilidad condicionada es función lineal de los valores de las variables de entrada. Esta función es la que se conoce como función logits(Y) y su resultado es un score o puntuación. Su expresión matemática es la siguiente;

Figura 1: Fórmula de la función logits.
Figura 1: Fórmula de la función logits.

Para entenderlo un poco mejor. Como el objetivo es predecir una “probabilidad”, nos movemos en el ámbito de las matemáticas probabilísticas, que son una rama de las matemáticas que se ocupa de medir o determinar cuantitativamente la posibilidad de que un suceso o experimento produzca un determinado resultado. La probabilidad está basada en el estudio de la combinatoria y es fundamento necesario de la estadística. Por otra parte, se trata de una probabilidad condicionada, ya que el valor que tenga la variable que queremos predecir, está influido por los valores de las variables predictoras. Y se trata de una función lineal, porque se puede expresar como una función polinómica de primer grado, es decir, como una suma de valores correspondientes a las variables xi multiplicados por un coeficiente βi, cuya representación en el plano cartesiano es una recta.

El problema es que este “score” puede tomar cualquier valor. Para poder convertirlo en una “etiqueta” (recordemos que estamos ante un problema de clasificación, en este caso binario), usamos una función matemática que garantice que la probabilidad condicionada estará entre cero y uno. Para ello, usamos la función Softmax, que para el caso particular de una regresión logística binaria, sería la función Sigmoidea. La función sigmoidea ya nos es una función lineal, sino logarítmica. Por eso decimos que la regresión logística es un algoritmo lineal con una transformación no lineal en la salida.

Figura 2: Función sigmoidea.
Figura 2: Función sigmoidea.
En el blog Data Aspirant, podemos encontrar una imagen que resume muy bien todo el proceso.
Proceso de regresión logística para clasificación binaria.
Figura 3: Proceso de regresión logística para clasificación binaria.

2.2 Comprendiendo las limitaciones del modelo.

Antes de seguir codificando nuestro predictor, debemos recordar lo siguiente:
  • La variable de salida es binaria. Predice la probabilidad de que una instancia pertenezca a la clase predeterminada, que se puede ajustar en una clasificación 0 o 1. En este caso, infidelity=1
  • La regresión logística es muy sensible a los outliers, o datos anómalos. Habrá que revisar este tema antes de aplicar el algoritmo.
  • Habrá que revisar la correlación entre variables, ya que, como en el caso de la regresión lineal, si hay dos o más variables altamente correlacionadas, podemos tener problemas de sobreajuste o de convergencia del modelo.
Si recordáis, aunque no mencionamos la razón, en el post anterior donde introdujimos el experimento, ya nos aseguramos de comprobar que no hubiera campos vacíos ni correlación entre las variables. En el tercer y último post de esta miniserie, retomaremos nuestro Jupyter Notebook en el punto en que lo dejamos. Prepararemos los datos para poder aplicar el modelo, lo entrenaremos, valoraremos los resultados, haremos una predicción y sacaremos conclusiones. ¡Todavía nos queda bastante trabajo, pero merece la pena!.¿no?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *