Regresión Logística: Todo lo que necesitas saber

📌 ¿Qué es la Regresión Logística?

Aunque tiene «regresión» en el nombre, es un algoritmo de clasificación, no de predicción numérica. Sirve para predecir probabilidades y clasificar entre dos o más clases, típicamente Sí / No, 1 / 0, Verdadero / Falso.

Ejemplo típico: ¿Una persona comprará un producto o no, según su edad y salario?


🧮 ¿Cómo funciona?

A diferencia de la regresión lineal (que traza una línea recta), la regresión logística usa una función sigmoide que transforma cualquier número en un valor entre 0 y 1. Esto representa la probabilidad de que algo ocurra.

🌀 Función sigmoide:

σ(x)=11+e−x\sigma(x) = \frac{1}{1 + e^{-x}}σ(x)=1+e−x1​

Donde x es una combinación lineal de las variables de entrada:

x=β0+β1×1+β2×2+…+βnxnx = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + … + \beta_n x_nx=β0​+β1​x1​+β2​x2​+…+βn​xn​


🧠 ¿Qué predice?

  • Si el resultado de la sigmoide es > 0.5 → clase 1 (Ej: «Sí compra»)
  • Si es < 0.5 → clase 0 (Ej: «No compra»)

Puedes cambiar ese umbral según tu necesidad.


🔧 ¿Qué necesitas para usarla?

Datos:

  • Variables numéricas o categóricas (estas últimas deben ser convertidas, por ejemplo con One Hot Encoding).
  • Un target binario (ej. 0 o 1, sí o no).

Paquetes en Python:

  • pandas y numpy para datos.
  • sklearn para aplicar el modelo.
  • matplotlib / seaborn para visualizar.

🧪 ¿Cuándo usar Regresión Logística?

✅ Cuando quieres:

  • Clasificar entre dos categorías (ej: spam/no spam).
  • Tener una probabilidad como salida.
  • Entender el impacto de cada variable (es interpretable).

❌ No es ideal cuando:

  • Hay relaciones no lineales complejas.
  • Quieres clasificar más de dos clases (aunque existe la versión «multiclase»).

🧰 Tipos de Regresión Logística

TipoUso
Binaria2 clases (Sí / No)
MultinomialMás de 2 clases sin orden (Ej: rojo, verde, azul)
OrdinalMás de 2 clases con orden (Ej: malo, medio, bueno)

📊 Métricas para evaluarla

  • Accuracy (exactitud): porcentaje de predicciones correctas.
  • Precision y Recall: ideales cuando tienes clases desbalanceadas.
  • F1 Score: combinación de precisión y recall.
  • Matriz de confusión: muestra los aciertos y errores por clase.

🔍 Ventajas

  • Sencilla e interpretable.
  • Eficiente para datasets pequeños.
  • Probabilística (te dice con qué confianza hace una predicción).
  • Se puede regularizar (evitar que sobreaprenda).

⚠️ Desventajas

  • No maneja relaciones no lineales complejas.
  • Requiere que las variables no estén demasiado correlacionadas.
  • Puede dar problemas con clases muy desbalanceadas.

🧑‍💻 ¿Cómo se usa en Python?

Te dejo un esqueleto del código básico en Google Colab:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, confusion_matrix

# 1. Cargar datos
df = pd.read_csv('tus_datos.csv')

# 2. Preparar datos
X = df[['edad', 'salario']]  # tus variables predictoras
y = df['compra']             # tu variable objetivo (0 o 1)

# 3. Dividir en entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 4. Entrenar modelo
modelo = LogisticRegression()
modelo.fit(X_train, y_train)

# 5. Predecir
predicciones = modelo.predict(X_test)

# 6. Evaluar
print(confusion_matrix(y_test, predicciones))
print(classification_report(y_test, predicciones))

💡 Tip extra: Regularización

Puedes aplicar penalización (L1 o L2) para evitar que el modelo se sobreentrene (overfitting). Se hace fácilmente con LogisticRegression(penalty='l2').

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *