GeeksforGeeks

Requisito previo: Regresión lineal
Este artículo discute los fundamentos de la regresión logística y su implementación en Python. La regresión logística es básicamente un algoritmo de clasificación supervisada. En un problema de clasificación, la variable objetivo (o salida), y, sólo puede tomar valores discretos para un conjunto dado de características (o entradas), X.

Contrariamente a la creencia popular, la regresión logística ES un modelo de regresión. El modelo construye un modelo de regresión para predecir la probabilidad de que una entrada de datos dada pertenezca a la categoría numerada como «1». Al igual que la regresión lineal asume que los datos siguen una función lineal, la regresión logística modela los datos utilizando la función sigmoidea.

La regresión logística se convierte en una técnica de clasificación sólo cuando se introduce un umbral de decisión. El establecimiento del valor del umbral es un aspecto muy importante de la regresión logística y depende del propio problema de clasificación.

La decisión del valor del umbral se ve afectada principalmente por los valores de precisión y recuperación. Idealmente, queremos que tanto la precisión como la recuperación sean 1, pero esto rara vez es el caso. En el caso de un equilibrio entre precisión y recuperación, utilizamos los siguientes argumentos para decidir el umbral:-

1. Precisión baja/recuperación alta: En aplicaciones en las que queremos reducir el número de falsos negativos sin reducir necesariamente el número de falsos positivos, elegimos un valor de decisión que tenga un valor bajo de Precisión o un valor alto de Recall. Por ejemplo, en una aplicación de diagnóstico de cáncer, no queremos que ningún paciente afectado sea clasificado como no afectado sin prestar mucha atención a si el paciente está siendo diagnosticado erróneamente de cáncer. Esto se debe a que, la ausencia de cáncer puede ser detectada por otras enfermedades médicas pero la presencia de la enfermedad no puede ser detectada en un candidato ya rechazado.

2. Alta Precisión/Baja Recuperación: En las aplicaciones en las que queremos reducir el número de falsos positivos sin reducir necesariamente el número de falsos negativos, elegimos un valor de decisión que tenga un valor alto de Precisión o un valor bajo de Recall. Por ejemplo, si estamos clasificando a los clientes para saber si reaccionarán positiva o negativamente a un anuncio personalizado, queremos estar absolutamente seguros de que el cliente reaccionará positivamente al anuncio porque, de lo contrario, una reacción negativa puede causar una pérdida de ventas potenciales del cliente.

En función del número de categorías, la regresión logística puede clasificarse como:

  1. binomial: la variable objetivo sólo puede tener 2 tipos posibles: «0» o «1» que pueden representar «victoria» frente a «pérdida», «aprobado» frente a «suspenso», «muerto» frente a «vivo», etc.
  2. multinomial: la variable objetivo puede tener 3 o más tipos posibles que no están ordenados (es decir, los tipos no tienen significado cuantitativo) como «enfermedad A» frente a «enfermedad B» frente a «enfermedad C».
  3. ordinal: se trata de variables objetivo con categorías ordenadas. Por ejemplo, la puntuación de una prueba puede clasificarse como: «muy mala», «mala», «buena», «muy buena». Aquí, a cada categoría se le puede dar una puntuación como 0, 1, 2, 3.

En primer lugar, exploramos la forma más simple de regresión logística, es decir, la regresión logística binomial.

Regresión logística binomial

Considere un conjunto de datos de ejemplo que mapea el número de horas de estudio con el resultado de un examen. El resultado sólo puede tomar dos valores, a saber, aprobado(1) o suspendido(0):


Horas(x) 0,50 0,75 1,00 1,25 1,50 1,75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.50
Pass(y) 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1

Entonces, tenemos
i.e. y es una variable objetivo categórica que sólo puede tomar dos tipos posibles: «0» o «1».
Para generalizar nuestro modelo, suponemos que:

  • El conjunto de datos tiene «p» variables de características y «n» observaciones.
  • La matriz de características se representa como:
    Aquí, denota los valores de la característica para la observación.
    Aquí, estamos manteniendo la convención de dejar = 1. (Siga leyendo, usted entenderá la lógica en unos momentos).
  • La observación, , se puede representar como:
  • representa la respuesta prevista para la observación, es decir, . La fórmula que utilizamos para el cálculo se llama hipótesis.

Si usted ha pasado por la Regresión Lineal, debe recordar que en la Regresión Lineal, la hipótesis que utilizamos para la predicción fue:
donde, son los coeficientes de regresión.
Dejemos que la matriz/vector de coeficientes de regresión, sea:
Entonces, en una forma más compacta,

La razón para tomar = 1 es bastante clara ahora.
Necesitamos hacer un producto matricial, pero no había ningún
multiplicado real en la fórmula original de la hipótesis. Por lo tanto, definimos = 1.

Ahora, si tratamos de aplicar la Regresión Lineal en el problema anterior, es probable que obtengamos valores continuos utilizando la hipótesis que discutimos anteriormente. Además, no tiene sentido para tomar valores mayores que 1 o menores que 0.
Así que, se hacen algunas modificaciones a la hipótesis para la clasificación:
donde,
se llama función logística o la función sigmoide.
Aquí hay un gráfico que muestra g(z):
Podemos inferir del gráfico anterior que:

  • g(z) tiende a 1 como
  • g(z) tiende a 0 como
  • g(z) siempre está acotado entre 0 y 1

Así que, ahora, podemos definir las probabilidades condicionales para 2 etiquetas(0 y 1) para la observación como:
Podemos escribirlo de forma más compacta como:
Ahora, definimos otro término, la probabilidad de los parámetros como:

La probabilidad no es más que la probabilidad de los datos(ejemplos de entrenamiento), dado un modelo y unos valores específicos de los parámetros(aquí, ). Mide el apoyo proporcionado por los datos para cada valor posible del . Lo obtenemos multiplicando todo para dado.

Y para facilitar los cálculos, tomamos el logaritmo de la probabilidad:
La función de coste para la regresión logística es proporcional a la inversa de la probabilidad de los parámetros. Por lo tanto, podemos obtener una expresión para la función de coste, J utilizando la ecuación de probabilidad logarítmica como:
y nuestro objetivo es estimar de manera que la función de coste se minimice

Usando el algoritmo de descenso gradual

En primer lugar, tomamos las derivadas parciales de w.r.t cada uno para derivar la regla de descenso de gradiente estocástico(presentamos sólo el valor final derivado aquí):
Aquí, y y h(x) representan el vector de respuesta y el vector de respuesta predicho(respectivamente). Además, es el vector que representa los valores de observación para la característica.
Ahora, con el fin de obtener min ,
donde se llama tasa de aprendizaje y necesita ser establecido explícitamente.
Veamos la implementación de python de la técnica anterior en un conjunto de datos de muestra (descargarlo desde aquí):

2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.50


Nota: El descenso de gradiente es una de las muchas formas de estimar.
Básicamente, se trata de algoritmos más avanzados que se pueden ejecutar fácilmente en Python una vez que se ha definido la función de coste y los gradientes. Estos algoritmos son:

  • BFGS(Algoritmo de Broyden-Fletcher-Goldfarb-Shanno)
  • L-BFGS(Como BFGS pero utiliza memoria limitada)
  • Gradiente Conjugado

Ventajas/desventajas de utilizar cualquiera de estos algoritmos sobre el Descenso de Gradientes:

  • Ventajas
    • No es necesario elegir la tasa de aprendizaje
    • A menudo se ejecuta más rápido (no siempre es el caso)
    • Puede aproximar numéricamente el gradiente por ti (no siempre funciona bien)
  • Desventajas
    • Más complejo
    • Más de una caja negra a menos que aprenda los detalles

Regresión Logística Multinomial

En la Regresión Logística Multinomial, la variable de salida puede tener más de dos posibles salidas discretas. Considere el conjunto de datos de dígitos. Aquí, la variable de salida es el valor del dígito que puede tomar valores de (0, 12, 3, 4, 5, 6, 7, 8, 9).
A continuación se muestra la implementación de la Regresión Logística Multinomial utilizando scikit-learn para hacer predicciones en el conjunto de datos de dígitos.



Logistic Regression model accuracy(in %): 95.6884561892

Por último, aquí hay algunos puntos sobre la regresión logística para reflexionar:

  • No asume una relación lineal entre la variable dependiente y las variables independientes, pero sí asume una relación lineal entre el logit de las variables explicativas y la respuesta.
  • Las variables independientes pueden ser incluso los términos de potencia o algunas otras transformaciones no lineales de las variables independientes originales.
  • La variable dependiente NO necesita estar distribuida normalmente, pero típicamente asume una distribución de una familia exponencial (por ejemplo, binomial, Poisson, multinomial, normal,…); la regresión logística binaria asume una distribución binomial de la respuesta.
  • La homogeneidad de la varianza NO necesita ser satisfecha.
  • Los errores tienen que ser independientes pero NO se distribuyen normalmente.
  • Utiliza la estimación de máxima verosimilitud (MLE) en lugar de los mínimos cuadrados ordinarios (OLS) para estimar los parámetros, y por lo tanto se basa en aproximaciones de muestras grandes.

Este artículo es una contribución de Nikhil Kumar. Si te gusta GeeksforGeeks y quieres contribuir, también puedes escribir un artículo en contribute.geeksforgeeks.org o enviarlo por correo a [email protected]. Verás tu artículo en la página principal de GeeksforGeeks y ayudarás a otros Geeks.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.