Regresión logística: fundamentos, programación y matemáticas

Dialéktico
Compartir

CONTENIDO

Si hay notación matemática, se recomienda la visualización de este contenido en una computadora

Entre los algoritmos de aprendizaje supervisado se pueden distinguir dos clases principales: de regresión y clasificación, siendo los de regresión aquellos que entregan salidas de tipo numéricas y continuas, mientras que los de clasificación producen valores discretos que fungen como clases para cada entrada. La regresión lineal aprendida en nuestra exploración anterior aborda los elementos y procesos matemáticos referentes al algoritmo de regresión más elemental del machine learning, y en esta ocasión nos toparemos con su hermana enfocada a la clasificación: la regresión logística.

La regresión logística se considera como uno de los componentes clave del aprendizaje de máquinas, principalmente para la creación de sistemas de clasificación, y desde su estudio podemos no solamente comprender la esencia de su funcionamiento en cuanto a asignación de categorías, sino también conocer la percepción probabilística del machine learning.

En esta excursión experimentaremos un viaje con emociones más tórridas: nos embarcaremos en la búsqueda y comprensión de este algoritmo desde una frívola descripción demostrativa hasta sus raíces matemáticas, y pondremos en práctica lo aprendido utilizando un conjunto de datos obtenido con la API de Spotify, lo cual nos permitirá operar sobre una minúscula muestra del big data generado por uno de los más icónicos gigantes tecnológicos de esta era.

IRL Nivel 1
Equipaje recomendado
aprendizaje supervisado dialéktico

Google Colab

Colab

Programación en Python

aprendizaje supervisado dialéktico

Preprocesamiento de datos

preprocesamiento de datos

Matemáticas

Principalmente álgebra, probabilidad y estadística.

Matemáticas

Regresión lineal

RL OB

Algún acompañamiento

IRL Ten

Introducción a la regresión logística

Pergamino_3

El método de regresión lineal que hemos explorado anteriormente nos permite realizar estimaciones numéricas dado un conjunto de entradas (variables independientes) y una salida (variable dependiente) mediante la obtención de un modelo que describa la relación entre estas.

Este modelo, si bien es útil para realizar cálculos dadas variables continuas, no es de gran ayuda cuando es necesario asignar una categoría a un conjunto de entradas, es decir, ejecutar una tarea de clasificación.

Para esto es que se invoca a la regresión logística, un artefacto que utiliza principios de probabilidad para la categorización de datos, y el cual comenzaremos a sondear, igual como hicimos con la regresión lineal, desde un ejemplo sobre su uso para la resolución de un problema.

Regresión logística, caso de uso

Para ejemplificar el empleo de la regresión logística, haremos uso de datos obtenidos de Spotify, la afamada plataforma de música via streaming.

Supongamos que se nos ha asignado la tarea de crear un modelo capaz de clasificar una canción por su género dada su «bailabilidad«, la cual es una métrica (con un rango continuo de entre 0 y 1) creada por Spotify que determina qué tan adecuada es una canción para ser bailada (esto se definen de acuerdo con la combinación de algunos elementos musicales como el tempo o la estabilidad del ritmo).

IRL A1v2

Justamente la idea de utilizar un modelo que aprenda a clasificar canciones utilizando esta métrica como atributo de entrada nos puede arrojar insights sobre si es una característica funcional o no.

El objetivo será clasificar un conjunto de canciones en dos géneros musicales respecto a su bailabilidad:

  • Black metal.
  • Reggaeton.

Para esto utilizaremos la regresión logística, y la forma en que atacaremos este problema es considerándolo desde un punto de vista probabilístico. La pregunta que intentaremos resolver sobre cualquier canción de nuestro conjunto de datos será la siguiente:

  • Dado el grado de bailabilidad de una canción, ¿a qué género es más probable que pertenezca?

¿Qué es la regresión logística?

La regresión logística es un método matemático cuyo objetivo es modelar la probabilidad de que un evento pertenezca a una o más categorías dados los valores de una o más variables independientes.

Esto quiere decir, en el contexto de los algoritmos de clasificación, que el fin de la regresión logística es el de ajustar un modelo que pueda ser utilizado para calcular la probabilidad de que una entrada sea miembro de una clase en particular. La definición matemática de esto la veremos con más detalle en la siguiente sección.

IRL L1 v2

Justo como en la regresión lineal, la idea de obtener un modelo con la regresión logística es la de encontrar una ecuación que nos permita modelar la relación de las variables que determinan el comportamiento de los datos, y para ello el patrón a definir es el de una curva dibujada por lo que se conoce como función logística.

regresión logística python
Fig. 3.3.1 Gráfica de una función logística, cuyos límites superior e inferior son 1 y 0 respectivamente. Esta gráfica se obtuvo utilizando la librería Matplotlib en Python, al igual que las consiguientes gráficas de este tipo.

Como podrás notar en la Figura 3.3.1, la función logística (o función sigmoidea) genera una curva cuyos puntos se encuentran entre los valores 0 y 1 del eje vertical y. Esto quiere decir que cualquier entrada para el modelo será mapeada a un valor en este rango.

IRL D1 1

Espero lo hayas vislumbrado. El transformar cada entrada en un número comprendido entre el 0 y el 1 es traducible a que la salida del modelo es una probabilidad. Recordemos que, dados los axiomas de Kolmogórov, todo valor de probabilidad está situado en este rango, siendo 1 la máxima probabilidad de que un evento suceda, y 0 la mínima.

Entre otras palabras, el modelo generado por la regresión logística tomará como entrada los datos a los que deseamos asignar una clase, y nos dará como salida la probabilidad de que estos pertenezcan a alguna categoría en particular, lo cual nos permitirá clasificarlos, como se ilustra en la Figura 3.3.2:

Fig. 3.3.2 Representación visual de clasificación de datos utilizando el modelo resultante de una regresión logística. Cada clase se asigna conforme a la probabilidad más alta de una observación de pertenecer a esta.

Asignación de clases

Ahora que hemos explorado algunos fundamentos de este método para realizar clasificaciones de datos, volvamos al caso planteado.

Echemos un vistazo a parte del conjunto de datos de canciones que vamos a utilizar:

regresión logística python
Tabla 3.3.1 Fragmento del conjunto de datos a utilizar para entrenar el modelo. Esta tabla se obtuvo utilizando la librería Pandas en Python.

En la tabla se pueden apreciar el nombre de la canción, su grado de bailabilidad, y el género al que pertenece. Estos datos etiquetados (con entradas y salidas definidas, justo como lo demandan los algoritmos de aprendizaje supervisado) serán procesados por la regresión logística, produciendo un modelo que nos ayudará a clasificar canciones nuevas.

Supongamos que ya hemos entrenado el modelo con estos datos, por lo que ahora lo probaremos con cinco canciones:

  1. Efecto
  2. Deathcrush
  3. Blow your trumpets Gabriel.
  4. TQG.
  5. Silver Lining.

Lo que haremos será evaluar cada una de estas con el modelo resultante, de forma que buscamos obtener la siguiente probabilidad:

p(canción pertenece a la clase black metal | bailabilidad)

La cual es la probabilidad de que la canción pertenezca a la clase black metal dada su bailabilidad.

La probabilidad calculada por el modelo para cada canción se muestra en la siguiente tabla:

CanciónProbabilidad
Efecto0.30
Deathcrush0.83
Blow your trumpets Gabriel.0.85
TQG0.37
Silver Lining0.77
Tabla 3.3.2 Probabilidades calculadas por el modelo obtenido de la regresión logística.

De acuerdo con estas probabilidades, queda delegar cada canción a una clase. ¿Cómo se define esto?, esto se hace respecto a un umbral conocido como límite de decisión, el cual es el valor que define la probabilidad mínima necesaria para asignar un elemento a una clase específica. Sin ahondar en su cálculo por el momento, especificaremos que el límite de decisión para nuestro modelo es de 0.58, lo que sifgnifica que toda canción con una probabilidad mayor a este será considerada como parte de la categoría black metal.

El primer renglón, por ejemplo, nos dice que la probabilidad de que la canción Efecto sea del género del black metal es del 30%; al estar por debajo del umbral, se determina que esta no pertenece a esta categoría. Ahora, dadas las probabilidades, asignamos una clase a las 5 canciones:

CanciónProbabilidadCategoría estimada
Efecto0.30Reggaeton
Deathcrush0.83Black metal
Blow your trumpets Gabriel.0.85Black metal
TQG0.37Reggaeton
Silver Lining0.77Black metal
Tabla 3.3.3 Categorías atribuidas a cada canción respecto a las probabilidades estimadas por el modelo.

En los algoritmos de clasificación procreados desde Python no es necesario realizar este último paso manualmente, todas las asignaciones de cada nueva observación se hacen de forma automática, junto con el ajuste del modelo.

IRLG K1 v2

Correcto, es una descripción básica, pero permite identificar los casos de uso de la regresión logística para modelos de clasificación.

Ahora que hemos explorado superficialmente este algoritmo de aprendizaje supervisado, podemos pasar a conocerla con mayor escrutinio, desde su anatomía matemática.

Contesta las siguientes preguntas

1 / 3

De las siguientes afirmaciones sobre la regresión logística, selecciona las que sean verdaderas:

2 / 3

La forma de la gráfica de la función sigmoidea es una campana, y está parametrizada por la media y la varianza:

3 / 3

El límite de decisión establece la probabilidad de referencia que definirá si una observación pertenece o no a una clase:

Tu puntación es

La puntuación media es 86%

0%

Matemáticas de la regresión logística

Libro_1

Para enunciar las definiciones matemáticas correspondientes para la comprensión de la regresión logística, atenderemos al ejemplo propuesto, de forma que alcancemos poco a poco tales definiciones.

Regresión lineal vs regresión logística para algoritmos de clasificación

Volvamos de nuevo al punto de inicio de nuestra tarea de clasificación de canciones, y realicemos una pregunta más específica:

  • ¿Cómo puedo crear un algoritmo que clasifique canciones en dos categorías (reggaeton y black metal) dado su grado de bailabilidad?

Ahora intentaremos utilizar el conocimiento que ya tenemos de machine learning hasta nuestra exploración pasada para dar respuesta a esta cuestión, por lo que planteamos la siguiente pregunta:

  • ¿Puedo utilizar una regresión lineal para obtener un modelo que haga los cálculos necesarios para este algoritmo de clasificación?

Al principio podría sonar relativamente confuso, o incluso sin sentido, ya que nuestra definición de regresión lineal no comprende el uso de probabilidades; sin embargo, podríamos pensar de manera no premeditada que podemos calcular la probabilidad p(x) como salida dados los valores de la variable independiente x. Es decir, postular p(x) como una función lineal de x como sigue:

\begin{aligned}
    p(x)=\theta_{0}+\theta_{1}x\:. \tag{3.23}
\end{aligned}

Dicho esto y con lo que ya se ha mencionado, ¿puedes decir cuál es el mayor impedimento para que pueda modelarse de esta manera?

IRLG M1

¿Lo recuerdas?, de nuevo se trata del rango en el que deben estar contenidas las salidas si estas son probabilidades, recordemos que para toda probabilidad p(x) se cumple que p(x)\in(0,1), y las funciones lineales no están limitadas a estos valores, sus salidas pueden generar cifras tanto mayores a 1, como negativas.

Esta y otras razones no postulan a la regresión lineal como una buena candidata para el mapeo de probabilidades, y para algoritmos de clasificación en general.

Sin embargo, es conveniente encontrar una expresión lineal que pueda ser utilizada para modelar la relación entre las variables dependientes y la variable independiente, ya que permitiría entender cómo los cambios en las variables independientes afectan a la probabilidad de que ocurra un evento específico, el cual está representado por la variable dependiente. Por ello, buscaremos la forma de modelar la interacción lineal entre estas, y a su vez mapear sus salidas a una probabilidad.

Un elemento oportuno para esto es la razón de probabilidad (odds), la cual se escribe como sigue:

\begin{aligned}
    \text{odds}=\frac{p(x)}{1-p(x)}\:, \tag{3.24}
\end{aligned}

donde p(x) es la probabilidad de que ocurra un evento. Esta razón de probabilidades expresa la proporción de la probabilidad de que ocurra un evento y la probabilidad de que no ocurra, y la utilizaremos para modelar las relaciones entre las variables que determinan esas ocurrencias o no ocurrencias.

Se asume, entonces, que esta razón de probabilidad puede ser expresada como una combinación lineal de las variables independientes (predictoras), es decir:

\begin{aligned}
    \frac{p(x)}{1-p(x)}=\theta_{0}+\theta_{1}x\:. \tag{3.25}
\end{aligned}

Ahora tenemos una ecuación que iguala la razón de las probabilidades de ocurrencia y no ocurrencia de un evento con la combinación lineal de las variables predictoras, permitiendo relacionar las probabilidades con los elementos de una expresión lineal. Sin embargo, hay una indiscrepancia matemática relacionada a los valores que puede tomar la expresión lineal del lado derecho (su rango o imagen), los cuales se encuentran en el rango (-\infty,\infty), mientras que el rango de la función odds es (0,\infty). Para lidiar con esto, se realiza una transformación sobre la razón de probabilidades odds aplicando un logaritmo natural, quedando

\begin{aligned}
    \mathrm{ln}(\frac{p(x)}{1-p(x)})=\theta_{0}+\theta_{1}x\:. \tag{3.26}
\end{aligned}

Esta forma es llamada logit, y es conveniente en este sentido ya que la concordancia entre los rangos de ambos lados de la ecuación permitien la igualación de una combinación lineal de las variables independientes a la razón de probabilidades.

Finalmente, como buscamos obtener una función de probabilidad, despejamos p(x) en la ecuación, obteniendo

\begin{aligned}
   p(y|x,\theta)=\frac{1}{1+e^{-(\theta_{0}+\theta_{1}x)}}\:. \tag{3.27}
\end{aligned}

donde p(y|x,\theta) es equivalente a p(x), detallando que se expresa la probabilidad de que el evento y suceda dada la variable independiente x parametrizada por coeficientes \theta.

Esta forma final es conocida como función logística \sigma(x), y su principal virtud es que los valores que pueden tomar sus salidas oscilan entre el 0 y el 1, por lo que pueden ser interpretadas como probabilidades (en este caso, p(y|x;\theta) quiere decir «la probabilidad de y dados x y \theta). El rango de esta función es fácilmente constatable en la Figura 3.3.1:

image 11
Fig. 3.3.1 Gráfica de una función logística antes presentada. Se puede observar como para valores cada vez mayores de x la función tiende a 1, mientras que para valores cada vez menores, tiende a 0.
IRLG M1 v2

Podemos resumir la lógica de lo que hemos revisado hasta ahora como sigue:

  • Podemos tener la necesidad de modelar probabilidades condicionales para realizar clasificaciones de datos, pero la regresión lineal convencional no funciona adecuadamente para ello.
  • Sin embargo, pretendemos utilizar un proceso de regresión asumiendo que la relación entre las variables inmiscuidas es lineal, por lo que igualamos el logaritmo natural de la razón de probabilidad a una combinación lineal de las variables predictoras o regresoras.
  • Finalmente, se manipula la ecuación para definir la probabilidad en función de x y \theta, dando como resultado una función logística, la cual arroja salidas únicamente comprendidas entre 0 y 1, las cuales son interpretadas como probabilidades.

Con esto ya contamos con todos los elementos necesarios para hacer la definición formal de la regresión logística, la cual generalizaremos a más de una variable independiente.

Definición de la regresión logística

Definición 3.10 (Regresión logística) Dado un conjunto \lbrace (x_{1},y_{1}),…,(x_{N},y_{N})\rbrace de N datos u observaciones, donde cada entrada x_n está compuesta por un conjunto \lbrace x_n^1, x_n^2, \ldots, x_n^D \rbrace de D variables independientes, predictoras o regresoras parametrizadas por un conjunto \lbrace\theta_0, \theta_1, \ldots, \theta_D\rbrace de D coeficientes correspondientes a cada variable regresora x_n^d , y cada salida del conjunto de datos es binaria, es decir, y_n \in {0, 1} , la regresión logística es un método que pretende modelar las relaciones entre estas entradas y salidas, y mapearlas a probabilidades mediante el ajuste de los parámetros de la función

\begin{aligned}
   \sigma(x_n)=p(y_{n}=1|x_{n},\theta)=\frac{1}{1+e^{-(\theta_0{} + \sum_{i=1}^D \theta_{d} x_n^{d})}}\:, \tag{3.28}
\end{aligned}

donde p(y_n = 1|x_n, \theta) quiere decir <<probabilidad condicional de y_n = 1 dados los valores de la variable independiente parametrizada por \theta >>, donde 1 representa a una clase en particular. Es decir, p(y_n = 1|x_n, \theta) se refiere a la probabilidad de que una entrada x_n parametrizada por \theta pertenezca a una categoría arbitraria representada por el número 1.

Y en general, hay que tomar en cuenta que \sigma:\mathbb{R}\rightarrow(0,1).

Por último, tengamos en mente que la función sigmoidea de una sola variable, que es la que estaremos utilizando en nuestros ejercicios, tiene la siguiente forma:

\begin{aligned}
   \sigma(x_n)=\frac{1}{1+e^{-(\theta_{0}+\theta_{1}x_n)}}\:,  \tag{3.29}
\end{aligned}

donde, recordemos, \sigma(x_n)=p(y_{n}=1|x_{n},\theta).

IRLG L2

Veremos esta función aplicada a nuestro ejemplo, y su comprensión será mucho más fácil. Por lo pronto, hemos definido cómo es que la regresión logística mapea números reales a probabilidades condicionales, las cuales utilizamos para designar una entrada a una categoría específica. Antes de aplicar esto a nuestro ejemplo, veamos cómo estimar los parámetros de nuestra función, lo cual es el proceso de entrenamiento del algoritmo de machine learning.

Estimación de parámetros en la regresión logística

Existen varios métodos para ajustar los parámetros de un modelo de regresión logística, pero aquí haremos hincapié en uno en específico por el enorme eco que hace en la teoría del machine learning desde su perspectiva probabilística. Esta técnica es conocida como estimación de la máxima verosimilitud.

Estimación de la máxima verosimilitud (MLE)

La estimación de la máxima verosimilitud (MLE, por las siglas en inglés de Maximum Likelihood Estimation) es una metodología para estimar los parámetros de un modelo probabilístico mediante lo que se conoce como verosimilitud, el cual es un componente clave de la probabilidad bayesiana. En general, la MLE es comparable como marco general a la minimización del riesgo empírico.

Función de verosimilitud

Definición 3.11 (Función de verosimilitud) Dada una función de masa o función de densidad de probabilidad f(x|\theta), donde x_1, x_2, …, x_N son N observaciones independientes e identicamente distribuidas (iid), y \theta es el conjunto de parámetros \theta_1, \theta_2, …, \theta_D, la distribución de probabilidad conjunta de todas las observaciones es

\begin{aligned}
   p(x_1, x_2,…, x_n|\theta)=f(x_1|\theta)f(x_2|\theta),...,f(x_n|\theta)\:. \tag{3.30}
\end{aligned}

Esto es llamado función de verosimilitud, la cual expresa que los valores x_1, x_2, …, x_N son fijos, mientras que los parámetros \theta son variables, por lo que la función calcula las probabilidades de que dichas observaciones se den dados ciertos valores de los parámetros (es decir, qué tanto los valores de los parámetros generan a las observaciones).

Tomando en cuenta que las observaciones son independientes y que la probabilidad es conjunta, reescribimos la función de verosimilitud \mathcal{L}(\theta|x) como

\begin{aligned}
   \mathcal{L}(\theta|x_1, x_2,…, x_n) = \prod_i^nf(x_i|\theta)\:. \tag{3.31}
\end{aligned}

Esta función determina qué tanto los valores que parametrizan a una distribución de probabilidad generan a las observaciones del conjunto de datos, por lo que puede ser utilizada para encontrar dichos valores.

Definición 3.12 (Estimación de la máxima verosimilitud) Dada la función de verosimilitud definida en (3.31), el método de estimación de máxima verosimilitud \hat{\theta} consiste en maximizar la probabilidad de obtener las salidas del conjunto de datos dados los valores de los parámetros mediante la operación

\begin{aligned}
   \hat{\theta}=\mathrm{arg\:max}\mathcal{L}(\theta|x_1, x_2,…, x_n)\:, \tag{3.32}
\end{aligned}

lo cual quiere decir que, al maximizar la probabilidad de que tales parámetros produzcan las observaciones, se hace una estimación de los valores que parametrizan al modelo (la distribución de probabilidad).

Entre otras palabras, para un modelo probabilístico la máxima verosimilitud puede ser utilizada para estimar los valores de sus parámetros, así como se utiliza la minimización del riesgo empírico en algoritmos como la regresión lineal.

Máxima verosimilitud en la regresión logística

No ahondaremos mucho en todo el proceso matemático involucrado en la estimación de los parámetros de la regresión logística utilizando la máxima verosimilitud, pero sí hablaremos un poco sobre las consideraciones matemáticas que conducen al cómo realizarla.

Debemos recordar que el objetivo del modelo obtenido por la regresión logística es predecir la probabilidad de ocurrencia de un evento binario en función de un conjunto de variables predictoras, por lo que la distribución de probabilidad que mejor se adecúa a este caso es la distribución de Bernoulli:

\begin{aligned}
   f(x;p) = p^x(1-p)^{1-x}, \quad x \in {0,1}\ \tag{3.33}
\end{aligned}

donde p es la probabilidad de éxito de un experimento, o probabilidad de que x=1, siendo x el resultado del experimento.

Sabiendo esto, tenemos que la función de verosimilitud de la distribución de Bernoulli que utilizaremos para estimar los parámetros es:

\begin{aligned}
   \mathcal{L}(\theta) = \prod_{n=1}^{N} p_n^{y_n}(1-p_n)^{(1-y_n)}\:, \tag{3.34}
\end{aligned}

donde p_n es la probabilidad de que y=1 dadas las variables predictoras x_n^{d} y los parámetros \theta, es decir,

\begin{aligned}
   p_n = p(y = 1 | x_n, \theta) =\frac{1}{1+e^{-(\theta_0{} + \sum_{i=1}^D \theta_{d} x_n^{d})}}\:. \tag{3.35}
\end{aligned}

Además, la función de verosimilitud se suele expresar en términos de un logaritmo natural para la simplifcación de cálculos, dando como resultado que la estimación de parámetros del modelo esté dada por

\begin{aligned}
   \mathrm{arg\:max}\:\mathcal{L}(\theta|x_1, x_2,…, x_N) = \sum_{n=1}^{N} y_n \log(p_n) + (1 - y_n) \log(1-p_n)\:, \tag{3.36}
\end{aligned}

siendo esta la forma final de la función que ajusta los valores de los parámetros del modelo.

IRLG A2
IRLG A3

Aplicación de la regresión logística para clasificación de datos

Es tiempo de volver al ejemplo planteado y explicar cómo es que el modelo obtenido puede ser utilizado para realizar las clasificaciones deseadas.

Supongamos que hemos utilizado la regresión logística alimentando al algoritmo con nuestros datos de canciones, tomando ahora como objetivo a la clase «reggaeton», y el ajuste de los parámetros ha quedado como sigue:

\theta_{0} = -2.28

\theta_{1} = 4.12

Dado que solo tenemos una variable independiente, o regresor, el cual es la bailabilidad de la canción, utilizamos el modelo de regresión logística univariable mostrada en la expresión (3.29):

\begin{aligned}
   \sigma(x_n)=\frac{1}{1+e^{-(\theta_{0}+\theta_{1}x_n)}}\:,  \tag{3.29}
\end{aligned}

el cual, al sustituir con los valores de los parámetros obtenidos de la fase de entrenamiento, quedaría como sigue:

\begin{aligned}
   \sigma(x_n)=\frac{1}{1+e^{-(-2.28+4.12(x_n))}} \tag{3.37}
\end{aligned}

Ahora tomaremos dos canciones del conjunto de prueba y estimaremos la probabilidad de que pertenezcan a la categoría reggaeton, que está representada con el número 1. Las canciones a utilizar serán Deathmask Divine y Gasolina (un clásico de clásicos), cuyos grados de bailabilidad son:

CanciónBailabilidad
Deathmask Divine0.43
Gasolina0.85

Realizamos el cálculo para la primer canción utilizando la función sigmoidea, donde x_n=0.43:

Estimación de probabilidad para Deathmask Divine

\begin{aligned}
   \sigma(0.43)=\frac{1}{1+e^{-(-2.28+4.12(0.43))}}=0.38 \tag{3.38}
\end{aligned}

Para entender cómo es que el patrón descrito por esta función dibuja las probabilidades en función de las entradas, observemos la gráfica de la estimación dada para Deathmask Divine:

regresión logística python
Fig. 3.3.3 Localización del punto correspondiente al par (bailabilidad, predicción) realizado con la función logística. El punto sobre la curva representa la probabilidad de que una canción con bailabilidad=0.43 (eje horizontal) pertenezca al género reggaeton.

Ahora realizamos el cálculo para la canción Gasolina, con x_n=0.85.

Estimación de probabilidad para Gasolina

\begin{aligned}
   \sigma(0.85)=\frac{1}{1+e^{-(-2.28+4.12(0.85))}}=0.77 \tag{3.39}
\end{aligned}
regresión logística python
Fig. 3.3.4 Punto sobre la recta correspondiente a la probabilidad calculada para la canción Gasolina, con una bailabilidad = 0.85.

Se puede apreciar cómo las probabilidades son marcadamente diferentes para cada una, pero ¿cómo es que nuestro algoritmo de machine learning decidirá etiquetar nuestros datos en clases utilizando estos valores?

Este es el paso final, y la respuesta a esto es un elemento conocido como límite de decisión.

Límite de decisión

Para asignar categorías a cada dato dada la probabilidad mapeada por la función logística se utiliza el límite de decisión, el cual es el umbral que define si esta probabilidad es suficiente o insuficiente para que una observación pertenezca a la clase de referencia.

Definición 3.13 (Límite de decisión) Dada la función logística generada por la regresión logística, el límite de decisión b_{dec} se obtiene mediante

\begin{aligned}
   b_{dec}=-\frac{\theta_{0}}{\theta_{1}}\:\, \tag{3.40}
\end{aligned}

cuyo resultado es la frontera en la que la probabilidad de pertenecer a una clase es igual a 0.5, es decir, determina qué valor de las salidas de la función sigmoidea funge como el umbral entre la asignación de una clase u otra.

Para entenderlo mejor, procederemos a calcular el valor del límite de decisión para nuestro modelo:

\begin{aligned}
   b_{dec}=-\frac{-2.39}{4.12}=0.58\:\, \tag{3.41}
\end{aligned}

Por lo tanto, para toda canción con probabilidad p(y=1|x,\theta) estimada por la función logística, se cumple que:

  • La canción pertenece a la clase 1 si su probabilidad es mayor a 0.58 (si p>b_{dec}).
  • La canción pertenece a la clase 0 si su probabilidad es menor que 0.58 (si p<b_{dec}).

De acuedo con esto, veamos qué categorías corresponden a cada una de las canciones seleccionadas a evaluar:

CanciónProbabilidadCategoría estimada
Efecto0.73Reggaeton
Deathcrush0.20Black metal
Blow your trumpets Gabriel0.17Black metal
TQG0.66Reggaeton
Apotheosis0.19Black metal
Tabla 3.3.3 Categorías atribuidas a cada canción respecto a las probabilidades estimadas por el modelo. Nótese que toda canción con probabilidad por encima de 0.58 pertenece a la clase Reggaeton, siendo el caso contrario para las probabilidades debajo de este valor.
IRLG M2

Con esto queda entendido que este umbral nos dice si un dato pertenecerá o no a una clase: si la probabilidad calculada para cierta observación está por encima del límite, entonces pertenece a la clase de referencia, y viceversa.

De forma gráfica, el límite de decisión para una función sigmoidea con una variable predictora luce como una línea recta, la cual separa las observaciones después de haberse adjudicado a alguna clase:

Fig. 3.3.5 Gráfica del límite de decisión de la regresión logística. Se presenta como una recta horizontal punteada que separa a las observaciones clasificadas sobre la curva de la función sigmoidea (color rojo: observaciones que pertenecen a la clase reggaeton; color azul: observaciones que pertenecen a la clase black metal).

En la gráfica se puede notar que el modelo no es un predictor perfecto: existen algunos puntos debajo del umbral de decisión que aún forman parte de la clase objetivo, lo cual es normal sabiendo que se trata de un fenómeno no determinista.

Con toda esta información, ¿puedes contestar a la pregunta planteada al inicio de la sección?

Pregunta

  • ¿Cómo puedo crear un algoritmo que clasifique canciones en dos categorías (reggaeton y black metal) dado su grado de bailabilidad?

La respuesta corta sería: modelando la relación que existe entre la bailabilidad y la probabilidad de que una canción perteneza a una de las clases, mapeando el resultado a un rango de probabilidades utilizando un modelo ajustado por una regresión logística, la cual calculará los parámetros del modelo maximizando la verosimilitud de su distribución de probabilidad (de Bernoulli), dando como resultado una función que genera probabilidades respecto a una entrada parametrizada, y la cual puede ser utilizada para definir si una canción pertenece o no a una clase respecto a un umbral de decisión.

IRLG K2

Es una buena pregunta, ya que es muy probable necesitar hacer clasificaciones con más de dos clases, la regresión logística de clases múltiples es un tema que retomaremos más adelante y abordaremos con mayor escrutinio. Por el momento, nos limitaremos a saber que sí es posible hacer esto, y que las técnicas más conocidas para ello son las siguientes:

  1. Uno contra el resto (One-vs-Rest).
  2. Softmax o Regresión Logística Multinomial.

De entre las cuales la función softmax será tema de discusión en una expedición próxima, ya que es un elemento recurrente en modelos de aprendizaje automático. La regresión multiclase la podrás experimentar en la práctica en Python de la siguiente sección.

IRLG M3

Regresión logística: código de programación en python

Preprocesamiento de datos dialéktico

Hora de aplicar lo aprendido a un conjunto de datos reales. En esta ocasión, como ya se ha hecho mención durante toda la expedición, utilizaremos un conjunto de datos generado haciendo uso de la API de Spotify. Si te interesa aprender a hacer esto, visita el tutorial en este link.

Por lo pronto, es momento de ponernos manos a la obra:

colab

También puedes observar el código y previsualizar sus salidas en la siguiente ventana, pero sin posibilidad de ejecutarlo:

Ahora tenemos un conocimiento más que suficiente de lo que es, cómo, y para qué se utiliza la regresión logística. Este algoritmo es el que utilizaremos para introducir conceptos básicos de machine learning relativos a los algoritmos de clasificación, mientras que utilizaremos la regresión lineal para aquellos que arrojan estimaciones en rangos numéricos continuos. Estamos por comenzar a tantear terrenos que competen a fundamentos importantes del aprendizaje de máquinas, y que nos conducirán a uno de los modelos más consagrados de su historia: la red neuronal artificial.

IRLG OB
Button2 1

DEJA TUS DUDAS O COMENTARIOS

Suscríbete
Notíficame de
guest

0 Comentarios
Más viejo
Más nuevo Más votado
Respuestas entre líneas
Ver todos los comentarios
0
¿Dudas, sugerencias, o comentarios? Deja un mensaje.x