La regresión logística es una técnica poderosa utilizada en problemas de clasificación. Aunque su nombre sugiere una similitud con la regresión lineal, su propósito principal es dividir o clasificar datos en diferentes categorías. En la misma línea, se ajusta una función que busca separar dos clases distintas dentro de un conjunto de datos. Esta metodología es fundamental cuando se trata de predecir la probabilidad de un evento binario, como aprobar o no un examen.
¿Cómo se aplica la regresión logística en un ejemplo de educación?
Imagina que eres un profesor que busca recomendar cuántas horas deben estudiar los estudiantes para aprobar un examen. Para esto, podrías realizar una encuesta que pregunte a cada estudiante cuántas horas estudiaron y si aprobaron o no. Aquí, el objetivo de la regresión logística es encontrar una fórmula que permita predecir la probabilidad de que un estudiante pase. Si el resultado de la fórmula es 0,5 o más, consideraríamos que el estudiante probablemente aprobará. Esta técnica es muy eficiente para optimizar predicciones en situaciones similares.
¿Cómo funciona la función de coste en la regresión logística?
La función de coste es crucial para evaluar si la predicción es precisa en términos de probabilidades de aprobar o reprobar. Se trata de una función que mide la diferencia entre las predicciones del modelo y los resultados reales, buscando minimizar el error. Este concepto se puede aplicar a diferentes tipos de problemas, no solo binarios, mediante el ajuste de parámetros que mejoren la separación entre clases.
¿Cómo se mide la precisión de los modelos de regresión logística?
La precisión de un modelo de regresión logística se puede evaluar mediante una matriz de confusión. Esta herramienta evalúa si las predicciones del modelo reflejan la realidad al categorizar correctamente los resultados. Especialmente útil cuando hay un desequilibrio en los datos (más aprobados que reprobados, por ejemplo), ayuda a comprender cómo el modelo está fallando en sus predicciones. Si el conjunto de datos está equilibrado, medir la precisión, es decir, la proporción de predicciones correctas, es una técnica común para evaluar el rendimiento.
¿Cuáles son los pasos clave del proceso de regresión logística?
Proceso de decisión: Busca predecir la línea que mejor divide las clases, estimando la probabilidad de pertenencia a una clase en particular.
Función de coste: Evaluar un conjunto de pesos que permita predecir de manera más precisa si una observación pertenece a un grupo o no.
Regla de actualización: Ajustar los pesos para optimizar la probabilidad de predicción, refinando la línea divisoria dentro del conjunto de datos.
Conocer estos pilares te ayudará a aplicar la regresión logística eficazmente en diversas situaciones prácticas. Deberás recordar que, como en la matemática o la programación, ensayo y error son parte del proceso. ¡No te desanimes, sigue aprendiendo y dominando esta técnica!
Accuracy= # of correctly labeled / # of data points
Ahora es cuando agradezco más la sección de aportes. Soy de los que tienen que repasar esto lentamente para entederlo y las gráficas y los enlaces a otras webs ayudan bastante. Lo bueno es que con la bases de cálculo de la universidad entiendo más la parte matemática
Ya sé, yo también amo la sección de aportes. Esto no existe en las escuelas tradicionales, sino todo lo contrario; todos son super celosos de sus notas.
Rendimiento
Para verificar que el modelo de regresion logistica esta funcionando correctamente aplicamos una Matriz de Confusion. Esta matriz busca evaluar si las predicciones de tu modelo de ciertas etiquetas o grupos reflejan la verdad en relacion a esos valores.
Cuando se entrena con el conjunto de validacion puedes pedir especificamente el numero de positivos reales y negativos reales y preguntarte cuantos se predijeron correctamente? Cual es el modo en el que se esta mas probablemente fallando? Fallo cuando se tenia resultados negativos? Tenias mayores posibilidades positivos o viceversa?
El objetivo de la matriz es muy bueno cuando se tiene un desequilibrio en el conjunto de datos; es decir, mas estudiantes que aprueban que los que no aprueban y por tanto esto podria reflejar que lo que intentas es predecir cuantos aprueban en contraposicion a cuantos fracasan.
Si el conjunto de datos es equilibrado, el enfoque mas comun para lograr rendimiento es la precision, que es el recuento de las veces que predijiste la etiqueta correcta en los datos (Vedadero positivo y Verdadero negativo) sobre todos los puntos de datos que pasaste a tu modelo. La idea es tener una precision cercana a 1
En la regresión logística primero tenemos un ejemplo de una función lineal dividiendo los datos en dos. Pero luego tenemos un ejemplo de una función sigmoide. ¿Podemos decir que la regresión logística predice clases ya sea con funciones que no tocan los datos (lineal), como con funciones que directamente describan las clases (sigmoide)?
El primer ejemplo, vemos que ningun punto toca la linea, ya que es un ejemplo y asi se ve mejor la clasificación. Al momento de trabajar con datos reales, puede que haya puntos que sea mas dificil clasificar y que esten cerca de esta linea divisora.
Veamos la siguente imagen
!imamgen
Si te das cuenta, el modelo sigmoide incluye los parametros b1 y b2, con los cuales se puede reducir al calculo de una función lineal.
Desde mi punto de vista, en lugar decir que predice clases con dos modelos, es mejor ver que atráves del modelo logistioco, función sigmoide, se genera una función lineal, o sea, un modelo lineal. No son dos partes separadas, sino una lleva a la otra.
📝 Dejo aquí mi resumen de la clase
La regresión logística es un modelo para resolver problemas de clasificación binaria, donde su proceso de decisión esta dado por la probabilidad de que los parámetros dados al modelo correspondan a una determinada clase. La función de error es el promedio de que tan bien esta prediciendo el modelo, mientras que la regla de la actualización busca ajustar los parámetros que mejor realizan la predicción de la probabilidad.
se utilizan datos de ejemplo con dos variables independientes (X) y una variable dependiente categórica (y). Se crea un modelo de regresión logística utilizando LogisticRegression de scikit-learn y se ajusta a los datos de entrenamiento. Luego, se obtienen los coeficientes del modelo (coef y intercept) y se utiliza una función personalizada para graficar la línea de decisión.
import numpy as np
import matplotlib.pyplotas plt
from sklearn.datasetsimportload_irisfrom sklearn.linear_modelimportLogisticRegressionfrom sklearn.model_selectionimporttrain_test_splitfrom sklearn.metricsimport accuracy_score
# Datos de ejemplo
X= np.array([[2,3],[4,5],[6,7],[8,9],[10,11]]) # Variables independientes
y = np.array([0,0,0,1,1]) # Variabledependiente(clase)# Crear el modelo de regresión logística
model =LogisticRegression()# Ajustar el modelo a los datos
model.fit(X, y)# Obtener los coeficientes del modelo
coef = model.coef_intercept = model.intercept_# Crear una función para graficar la línea de decisión
def plot_decision_boundary(X, y, coef, intercept): plt.scatter(X[:,0],X[:,1], c=y) x1 = np.linspace(np.min(X[:,0]), np.max(X[:,0]),100) x2 =-(coef[0][0]* x1 + intercept)/ coef[0][1] plt.plot(x1, x2, color='r') plt.xlabel('Variable 1') plt.ylabel('Variable 2') plt.title('Regresión Logística') plt.show()# Graficar la línea de decisión
plot_decision_boundary(X, y, coef, intercept)
Aquí tienes un ejemplo más completo de regresión logística utilizando datos reales
# Cargar el conjunto de datos Irisiris =load_iris()X= iris.data[:,:2] # Tomar solo las dos primeras características para facilitar la visualización
y = iris.target# 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=42)# Crear el modelo de regresión logística
model =LogisticRegression()# Ajustar el modelo a los datos de entrenamiento
model.fit(X_train, y_train)# Realizar predicciones en los datos de prueba
y_pred = model.predict(X_test)# Calcular la precisión del modelo
accuracy =accuracy_score(y_test, y_pred)print("Precisión del modelo:", accuracy)# Crear una función para graficar las regiones de decisión
def plot_decision_regions(X, y, model): x1_min, x1_max =X[:,0].min()-1,X[:,0].max()+1 x2_min, x2_max =X[:,1].min()-1,X[:,1].max()+1 xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max,0.1), np.arange(x2_min, x2_max,0.1))Z= model.predict(np.c_[xx1.ravel(), xx2.ravel()])Z=Z.reshape(xx1.shape) plt.contourf(xx1, xx2,Z, alpha=0.8) plt.scatter(X[:,0],X[:,1], c=y, edgecolors='k') plt.xlabel('Característica 1') plt.ylabel('Característica 2') plt.title('Regresión Logística - Regiones de decisión') plt.show()# Graficar las regiones de decisión
plot_decision_regions(X_train, y_train, model)
Este es de los mejores cursos que he encontrado en Platzi, pagaria 3 años más de suscripción por verme una ruta completa de esta profe del MIT.
¡Claro! La Regresión Logística es una técnica fundamental de clasificación supervisada en Machine Learning. Aunque su nombre contiene “regresión”, su objetivo principal no es predecir valores continuos, sino clasificar observaciones y estimar probabilidades.
📘 ¿Qué es la Regresión Logística?
La regresión logística estima la probabilidad de que una observación pertenezca a una clase específica.
La salida del modelo está en el rango [0,1][0, 1], gracias a la función sigmoide (logística):
Cuando tu variable objetivo (y) es categórica binaria (0 o 1), como:
Email spam o no spam
Cliente comprará o no comprará
Diagnóstico positivo o negativo
🛠️ Implementación en Python
✅ Ejemplo básico con scikit-learn
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, confusion_matrix
# Cargar dataset
data = load_breast_cancer()
X = data.data
y = data.target
# Dividir datos
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Crear modelo
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
# Predicción
y_pred = model.predict(X_test)
📊 Evaluación del Modelo
1. Reporte de clasificación
Precisión, recall, F1-score.
print(classification_report(y_test, y_pred))
2. Matriz de confusión
Para ver verdaderos positivos/negativos y errores.
print(confusion_matrix(y_test, y_pred))
3. Probabilidades
# Ver probabilidades de pertenecer a la clase 1
y_proba = model.predict_proba(X_test)[:, 1]
📈 Visualización de la función sigmoide
import numpy as np
import matplotlib.pyplot as plt
Rápido y eficiente con datasets linealmente separables
Interpretable: puedes ver los coeficientes de impacto
Permite calibrar probabilidades reales
⚠️ Limitaciones
No funciona bien con relaciones no lineales (usa SVM o árboles en ese caso).
Supone independencia entre predictores (puede violarse en práctica).
Sensible a valores atípicos y multicolinealidad.
🧠 Variantes avanzadas
Regresión logística multinomial: para clasificación con más de dos clases (multi_class='multinomial')
Regularización (L1/L2): para evitar sobreajuste (penalty='l1' o 'l2')
En Python, puedes usar sklearn para generar y visualizar la matriz de confusión:from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplayimport matplotlib.pyplot as plt
# Datos de ejemploy_real = [1, 1, 0, 1, 0, 0, 1, 0, 1, 0] # Etiquetas realesy_pred = [1, 0, 0, 1, 0, 0, 1, 1, 1, 0] # Predicciones del modelo
# Calcular la matriz de confusióncm = confusion_matrix(y_real, y_pred)
# Visualizar la matriz de confusióndisp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=["No Spam", "Spam"])disp.plot(cmap=plt.cm.Blues)plt.title("Matriz de Confusión")plt.show()
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
import matplotlib.pyplot as plt
# Datos de ejemploy_real =[1,1,0,1,0,0,1,0,1,0]# Etiquetas realesy_pred =[1,0,0,1,0,0,1,1,1,0]# Predicciones del modelo# Calcular la matriz de confusióncm = confusion_matrix(y_real, y_pred)# Visualizar la matriz de confusióndisp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=["No Spam","Spam"])disp.plot(cmap=plt.cm.Blues)plt.title("Matriz de Confusión")plt.show()```
porque el audio es ingles y las laminas en combinación de ingles y español, que confuso : (
Es interesante y curioso saber sobre la regresion logistica y que esta usa un diagrama de confusion para ver los resultados de nuestro dataset.