La regresión logística es un algoritmo de aprendizaje supervisado utilizado para predecir la probabilidad de que una variable categórica dependiente tenga un valor específico en función de una o más variables independientes. En otras palabras, la regresión logística es un método utilizado para predecir la probabilidad de que algo ocurra o no. A menudo, se utiliza para clasificar datos en dos categorías, como sí/no o verdadero/falso.
La regresión logística se utiliza en muchas industrias para predecir resultados, como la probabilidad de que un cliente compre un producto, de que un paciente tenga una enfermedad o de que un empleado renuncie a su trabajo. También se utiliza para identificar factores que influyen en el resultado de un evento, como los factores que influyen en la tasa de éxito de una campaña publicitaria.
La regresión logística se basa en una función logística, que es una función matemática en forma de “S” que se utiliza para modelar la relación entre las variables independientes y la variable dependiente. La función logística se puede representar como:
$$y = \frac{1}{1 + e^{-z}}$$
donde “y” es la variable dependiente que se está prediciendo, “e” es la constante matemática conocida como número de Euler y “z” es la variable independiente. El valor de “z” se calcula como la suma ponderada de las variables independientes multiplicadas por sus coeficientes. Los coeficientes se ajustan durante el entrenamiento del modelo para minimizar el error de predicción.
La regresión logística se utiliza para datos que tienen una distribución binomial, es decir, para datos que tienen solo dos resultados posibles. Por ejemplo, se puede utilizar para predecir si un cliente realizará una compra o no, o si un paciente tendrá una enfermedad o no. En estos casos, la variable dependiente puede tomar solo dos valores, por lo que la regresión logística es un modelo adecuado.
Para utilizar la regresión logística en Python, se pueden utilizar diferentes librerías como Scikit-learn, TensorFlow o PyTorch, por nombrar algunas. Estas librerías proporcionan funciones para ajustar el modelo y realizar predicciones en nuevos datos.
Ejemplo
A continuación, se presenta un ejemplo hipotético del uso del algoritmo de regresión logística:
Supongamos que se quiere predecir si un estudiante será admitido en una universidad en función de sus calificaciones en exámenes y su experiencia laboral. Se cuenta con un conjunto de datos que incluye la calificación del examen 1, la calificación del examen 2 y la experiencia laboral de cada estudiante, así como una etiqueta que indica si fue admitido o no en la universidad.
Para aplicar el algoritmo de regresión logística a estos datos, se dividirían en dos conjuntos: uno de entrenamiento y otro de prueba. El conjunto de entrenamiento se utilizaría para ajustar el modelo, es decir, para encontrar los coeficientes que mejor ajustan los datos. Luego, se utilizaría el conjunto de prueba para evaluar el rendimiento del modelo.
Una vez entrenado el modelo, se pueden obtener resultados como las probabilidades de que un estudiante sea admitido en función de sus calificaciones y experiencia laboral. Además, se pueden utilizar diversas métricas para evaluar el rendimiento del modelo, como la precisión, el recall y la F1-score.
Por ejemplo, si se obtiene una precisión del 80%, esto significa que el modelo predice correctamente la admisión o no admisión en la universidad del 80% de los estudiantes. Si se obtiene un recall del 70%, esto significa que el modelo identifica correctamente el 70% de los estudiantes que sí fueron admitidos en la universidad.
Uso con Python
Si tenemos un archivo de datos student_admission.csv
, con el siguiente contenido, solo las primeras 10 líneas para abreviar.
exam_score,grade_point_average,rank,admitted
89,3.5,2,1
70,2.9,3,0
92,3.7,1,1
78,2.8,4,0
85,3.3,2,1
67,2.5,4,0
95,3.9,1,1
72,3.0,3,0
86,3.4,2,1
Este archivo hipotético incluye cuatro columnas: exam_score
, grade_point_average
, rank
y admitted
. Las primeras líneas representan datos de los estudiantes que se han presentado a una institución educativa. La columna exam_score
indica el puntaje del estudiante en el examen de ingreso, grade_point_average
indica el promedio de calificaciones del estudiante, rank
indica la posición del estudiante en su clase y admitted
indica si el estudiante fue admitido o no (1 para admitido y 0 para no admitido). Cada fila representa un estudiante diferente.
A continuación se presenta un ejemplo del uso del algoritmo de regresión logística en Python, utilizando el conjunto de datos de admisión de estudiantes:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
# Cargar el conjunto de datos
data = pd.read_csv("student_admission.csv")
# Dividir los datos en variables predictoras (X) y variable objetivo (y)
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
# Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# Crear un objeto de regresión logística y ajustar el modelo a los datos de entrenamiento
reg_log = LogisticRegression()
reg_log.fit(X_train, y_train)
# Predecir la variable objetivo para los datos de prueba
y_pred = reg_log.predict(X_test)
# Evaluar el rendimiento del modelo
print(classification_report(y_test, y_pred))
En este ejemplo, se importan las bibliotecas necesarias y se carga el conjunto de datos de admisión de estudiantes. Luego, se dividen los datos en variables predictoras (X) y variable objetivo (y), y se dividen en conjuntos de entrenamiento y prueba.
A continuación, se crea un objeto de regresión logística y se ajusta el modelo a los datos de entrenamiento. Una vez ajustado el modelo, se utiliza para predecir la variable objetivo para los datos de prueba.
Finalmente, se evalúa el rendimiento del modelo utilizando la métrica de clasificación, que se imprime en la consola.
Los resultados del modelo se pueden interpretar utilizando el informe de clasificación. En este ejemplo, el modelo logra una precisión del 87%, lo que significa que el 87% de las predicciones son correctas. El recall del modelo es del 94%, lo que significa que el modelo identifica correctamente al 94% de los estudiantes admitidos.
Conclusiones
En resumen, la regresión logística es un algoritmo de aprendizaje supervisado utilizado para predecir la probabilidad de que una variable categórica dependiente tenga un valor específico en función de una o más variables independientes.
Este algoritmo se utiliza en muchas industrias para predecir resultados, como la probabilidad de que un cliente compre un producto o de que un paciente tenga una enfermedad. Se basa en una función matemática conocida como función logística y se utiliza para datos que tienen una distribución binomial.
En Python, se pueden utilizar diferentes librerías para implementar la regresión logística y realizar predicciones en nuevos datos.
Comentarios