驴En qu茅 consiste la regresi贸n log铆stica? 驴Qu茅 es la regularizaci贸n?

La regresión logística es uno de los algoritmos de aprendizaje supervisado más utilizados. Es un modelo de clasificación lineal, que se basa en los mismos principios que la regresión lineal.

¿Qué es un modelo de clasificación?

Recapitulemos un poco… Probablemente esto lo sepas ya, pero nunca viene mal recordar un poco conceptos básicos para poder entender todo mejor.

Los modelos de clasificación se utilizan en conjuntos de datos etiquetados. Estos datos se consideran etiquetados porque pertenecen a una determinada clase, que es conocida y que está acotada (tiene un rango finito de valores). Ejemplos de modelos de clasificación podrían ser predecir si un cliente va a realizar una compra o no, predecir si un cliente va a abandonar nuestra empresa o no o predecir si un cliente va a ser capaz de pagar un préstamo o no. Estos son ejemplos de clasificación binaria (sólo hay dos clases, si o no) pero también existen ejemplos de clasificación múltiple. Estos ejemplos serían detectar a qué animal pertenece una foto o identificar a qué instrumento musical pertenece una melodía. En este artículo nos centraremos en la clasificación de dos clases o binaria.

Os dejamos aquí otros dos posts interesantes sobre cómo evaluar nuestro modelo de clasificación.

¿Qué es un modelo de clasificación lineal?

Introducción a los límites de decisión (decision boundaries)

Tal y como hemos visto, un modelo de clasificación se encarga de identificar a qué clase pertenece cada registro. Para ello, el modelo de clasificación trata de encontrar la manera de dividir los datos tal que a un lado quedan los registros de una clase y a al otro lado los de la otra clase.

Si nos imaginamos nuestros datos como puntos en un espacio bidimensional, el clasificador trata de dibujar un trazo que permita separar correctamente las clases. Este trazo es lo que se conoce como límite de decisión (decision boundary)

En la figura a continuación podemos ver dos maneras de separar los datos. En la parte de la izquierda el límite de decisión es una línea recta que permite separar correctamente las clases mientras que en la derecha se trata de una curva que se adapta mejor a los datos. Si en la parte de la derecha el límite de decisión hubiera sido una línea recta, la clasificación no habría sido tan pura. 

Aquellos modelos cuyo límite de decisión es recto, se categorizan como clasificadores lineales. La regresión logística es un modelo de clasificación lineal como también lo son otros clasificadores como las máquinas de soporte vectorial (SVM) o los perceptrones.

Límites de decisión no lineales

Todos aquellos modelos cuyo límite de decisión no puede ser representado como una línea recta, se consideran no lineales. Ejemplos de modelos no lineales son todos aquellos modelos basados en árboles de decisión (Random Forest, XGBoost, etc) o aquellos modelos más complejos como las redes neuronales entre otros.

En la imagen a continuación podemos ver diversos ejemplos de límites de decisión. ¿Cual crees que se podría considerar lineal?

Efectivamente, sólo la 1 es lineal. El resto son no lineales.

Pongamos un último ejemplo. En la figura que se muestra a continuación, se pueden observar dos límites de decisiones para dos modelos distintos, pero que parten de los mismos datos.

Como se puede ver, los datos forman dos coronas concéntricas. A priori,un modelo que fuera capaz de rodear esa corona central sería ideal.

En la parte de la izquierda se muestra en verde el límite de decisión de un modelo de regresión logística. Cómo se puede intuir, el modelo clasifica como rojos a todos los puntos por encima de la línea verde y azules a todos los de debajo. Esta elección provoca numerosos errores ya que muchos puntos se clasifican de manera incorrecta.

El modelo de la derecha corresponde a un árbol de decisión, un modelo de clasificación no lineal. En este caso, como se puede observar, el modelo si que es capaz de generar regiones de clasificación no lineales y por ende, identificar correctamente la zona central donde se concentran los puntos azules.

¿Cómo funciona la regresión?

Una vez que hemos entendido lo que es un clasificador y lo que significa la condición de “linear”, pasamos a ahondar un poco más en cómo funciona un modelo de regresión logística.

Seguro que al leer el término regresión logística nos ha venido a la mente el concepto clásico de recta de regresión. En realidad la regresión logística es una regresión clásica pero con una ligera modificación.

Regresión lineal

En una regresión lineal se trata de obtener la recta que se ajuste de la mejor manera a los datos existentes. Para ello, en el caso de la regresión lineal simple, el modelo genera una ecuación de la siguiente forma:

Y = m*X + b

Siendo b el valor de la intersección (intercept) y m la pendiente (el peso de la variable de entrada en la salida).

Tal y como podemos observar en la siguiente figura, la intersección nos indica de cierta manera el desplazamiento de la recta y la pendiente nos indica su inclinación .

Si nuestro modelo utilizara más variables de entrada, la salida en vez de una recta sería un hiperplano (seguiría siendo lineal) con la siguiente ecuación:

Y = m_0*X_0 + m_1*X_1 + ... + m_n*X_n + b

Siendo Y la variable objetivo , Xn cada una de las variables de entrada de nuestro modelo y mn el peso de cada variable en nuestro modelo.

Vale.. Ya hemos repasado y analizado la regresión lineal. ¿Qué tiene que ver todo esto con la regresión logística?

Regresión logística

Pues muy sencillo. La regresión logística se modela con una ecuación de la misma forma solo que aplicando la función sigmoidal. Recordemos que estamos hablando de un modelo de clasificación y su objetivo no es predecir un valor sino predecir si un registro va a ser de una clase (0) o de otra (1). 

p =\frac{1}{(1-e^{-y})} 

Siendo p la probabilidad de que pertenecer a la clase 1 y el valor de la ecuación de la regresión lineal en y.

Si recordamos del ejemplo anterior que Y = m * X + b, nuestra función final tendrá la forma:

p =\frac{1}{(1-e^{-(m*X + b)})} 

En la figura siguiente podemos ver el mismo ejemplo que habíamos visto antes pero aplicado a la regresión logística en vez de a la lineal.

Umbrales de decisión de regresión logística

Al aplicar la función sigmoidal, ahora nuestra función objetivo nos dará valores entre 0 y 1 indicando si el valor pertenece a la clase 0 o a la 1.

Si observamos un ejemplo en el que se superponen ambos casos, vemos como una regresión logística está basada en los mismos principios que una regresión lineal

Funciones de pérdida (loss function)

El objetivo de muchos modelos de Machine Learning es minimizar una pérdida. En el caso de una regresión lineal trata de minimizar la diferencia entre el valor real y el valor predicho.

Es decir, cuando ajustamos (fit) el modelo, lo que en realidad hace por detrás es tratar de minimizar esa función de pérdida para que el modelo sea el óptimo.

No vamos a ahondar demasiado en las funciones de pérdida ya que son temas bastante teóricos pero sí que es interesante entender al menos las diferencias entre las regresiones lineales y las logísticas.

Función de pérdida en regresión lineal

Para las regresiones lineales, la función de pérdida más utilizada (la que implementa sklearn) es la denominada mínimos cuadrados ordinarios (OLS, Ordinary Least Squares). Este método consiste en tratar de encontrar aquellos parámetros que minimicen el error cuadrático medio

Minimizando el la suma de los errores cuadrados, se consigue el modelo que mejor se adapte a los datos existentes.

Función de pérdida en regresión logística

En el caso de la regresión logística, no se puede aplicar esta función de pérdida. No queremos que nuestra predicción esté próxima al valor real sino que sea la clase deseada. Por ello una de las funciones de pérdida más utilizadas es la 0-1 loss

L(i,j)= \begin{cases}
0, & \text{si}\ i=j \\
1, & \text{si}\ i \not=j \\
\end{cases}

En la figura a continuación observamos una instantánea de la función de pérdida. En el eje Y se observa el valor de la pérdida (el que se quiere minimizar) y en el eje X se enfrentan el valor predicho con el valor real. Para cada registro la función de pérdida irá adquiriendo un valor en función de la diferencia entre lo real y lo predicho.

Esta función en resumen busca el valor que optimice el número de clases acertada.

En este caso se ponderan por igual aciertos positivos y negativos y podría no ser indicado para modelos no balanceados. En una regresión logística se pueden utilizar diversas funciones de pérdida instanciando distintos solvers al crear el modelo y una de las labores del Data Scientist será tratar de encontrar el que mejor se adapte a los datos.

Como la función del entrenamiento del modelo trata de minimizar el error, esto induce a que se genere un modelo con un alto grado de complejidad y que de demasiado pesos a todas las variables. Esto provoca que el modelo pueda tender al famoso y peligroso overfitting. Para ello entra en juego la regularización, sobre la que hablaremos a continuación.

Como ya sabemos, ocurre sobre-ajuste (overfitting) cuando el modelo se ajusta demasiado al ruido del conjunto de entrenamiento. Esto provoca que, al evaluar el modelo en el conjunto de test o de validación, ese ruido se traslade a errores de predicción.

El siguiente GIF nos explica de una manera muy visual cómo se pasa de un modelo infra-ajustado (underfitting) a un modelo sobre-ajustado (overfitting)

Una de las técnicas fundamentales para tratar de reducir el sobreajuste es la regularización (regularization).

Regularización para la regresión logística

La regularización se basa en implementar diversas técnicas para añadir penalizaciones al modelo conforme aumenta su complejidad.

Estas penalizaciones se introducen en la función de coste con signo negativo y multiplicando a las variables que se van incluyendo al modelo , provocando una reducción en el número de variables predictoras.La regularización se puede aplicar tanto a modelos de regresión como a modelos de clasificación.

Lasso o L1

El primer tipo de regularización sobre el que hablaremos es la L1 o LASSO (Least Absolute Shrinkage and Selection Operator). Esta regularización introduce el “valor absoluto de magnitud” del coeficiente como penalización en la función de pérdida.

Si recordamos la función de pérdida de la regresión lineal,

\sum_{i=1}^{n}(y_i - \hat{y_i})^2

al introducir el término de penalización L1 quedaría así:

\sum_{i=1}^{n}(y_i - \hat{y_i})^2 + \lambda \sum_{j=1}^{p} ||\beta_j||

Siendo lambda un hiperparámetro de nuestro modelo (a decidir) y Beta cada uno de los coeficientes (variables) utilizadas por el modelo.

Os dejo un post sobre la búsqueda de hiperparámetros:

Ridge o L2

El segundo tipo de regularización, denominada L2 o Ridge, es muy similar a la LASSO solo que utiliza el cuadrado del coeficiente en vez del valor absoluto. Es decir, en la función de pérdida se introduce como penalización el hiperparámetro multiplicado por el cuadrado del coeficiente, quedando así:

\sum_{i=1}^{n}(y_i - \hat{y_i})^2 + \lambda \sum_{j=1}^{p} {\beta_j}^2

Elasticnet

La regularización Elasticnet es una regularización que combina L1 y L2. Es decir, incluye parte de regularización LASSO y de Ridge, ponderando entre ambos valores. Será labor del Data Scientist “jugar” con esta ponderación y si dar más peso ( y cuánto) a una regularización o a otra.

¿Qué impacto tiene la regularización?

En definitiva, al introducir regularización en el modelo, conseguimos limitar la complejidad del mismo. Cada vez que el modelo decida incluir una nueva variable al modelo tendrá que decidir si “compensa”. Es decir, si esa nueva variable va a mejorar el rendimiento de una manera suficiente como para compensar la pérdida por la penalización, el modelo la incluirá. Si la mejora es insignificante y la penalización es mayor a esa mejora, no la incluirá. Con esto se consigue que no haya variables irrelevantes en el modelo que determinen el output y que la complejidad del mismo sea la idónea.

Comparativa entre regularizaciones

  • LASSO:
    • Asigna 0 a aquellas variables que no aportan información al modelo. Muy útil para hace selección de variables (feature selection
    • Útil en el caso de que tengamos unos datos con un elevado número de variables
  • Ridge:
    • Reduce la complejidad del modelo minimizando el impacto de aquellas variables menos importantes pero las mantiene en la función de pérdida. Útil para cuando nos interesa mantener un amplio espectro de variables en el modelo
    • Muy útil para prevenir colinealidad entre las variables

Con todo este tsunami de números y ecuaciones espero que haya quedado más claro cómo funcionan las regresiones logísticas y lineales. Ahora te toca a ti ponerlo en práctica!

Además, puedes echar un vistazo a otros posts del blog!