Regresión logística
Se llama regresión y clasifica. Es el modelo base contra el que se compara todo lo demás, y su función de costo aparece después en cada red neuronal que clasifica algo.
Para este tema conviene tener claro:Regresión lineal y regularización
El nombre confunde: la regresión logística clasifica. Lo que hace es predecir una probabilidad, y esa probabilidad se convierte en clase recién al compararla con un umbral. Es la línea de base obligatoria antes de probar algo más complejo.
De una recta a una probabilidad
El problema de usar una recta para predecir probabilidades es que la recta se va a valores negativos y mayores a uno. La solución es pasar la combinación lineal por una función que aplaste el resultado al intervalo :
La sigmoide es suave, derivable y monótona. Cerca de cero se comporta casi lineal y en los extremos se satura, que es justamente lo que hace falta para una probabilidad.
Antes de seguir, predecí
Por qué no se usa el error cuadrático
La función de costo no es el error cuadrático: con la sigmoide, ese costo deja de ser convexo y se llena de mínimos locales. Se usa la entropía cruzada, que sale de maximizar la verosimilitud.
Su forma castiga con dureza la confianza equivocada: predecir 0.99 cuando la respuesta era cero tiende a un costo infinito. Es la propiedad que se quiere —un modelo no debería estar seguro y equivocado— y es la misma función que usa cualquier red neuronal para clasificar.
Qué dice cada coeficiente
Los coeficientes tienen una lectura precisa. La combinación lineal es el logaritmo de la razón de probabilidades —el log-odds—, así que cada peso dice cuánto cambia esa razón al mover el atributo una unidad.
Exponenciando el coeficiente se obtiene el factor multiplicativo sobre las probabilidades: un coeficiente de 0.7 significa multiplicar por dos las chances. Esa interpretabilidad es la razón por la que se sigue usando en medicina, crédito y cualquier lugar donde haya que justificar la decisión ante alguien.
La frontera es lineal, y eso limita
La frontera de decisión es lineal: el conjunto donde es un hiperplano. Eso limita lo que puede separar —el ejemplo clásico es el XOR, que ningún modelo lineal resuelve— y se amplía agregando atributos derivados, igual que en la regresión lineal.
También se regulariza igual, con L1 o L2, y por los mismos motivos. Con clases perfectamente separables aparece un problema propio: los pesos crecen sin límite buscando confianza infinita, y la regularización es lo que lo evita.
Softmax para más de dos clases
Para más de dos clases se generaliza con softmax: una puntuación por clase y una normalización que las convierte en probabilidades que suman uno.
Es la capa final de casi todo clasificador moderno. La alternativa vieja —entrenar un clasificador binario por clase y comparar— sigue apareciendo, pero softmax modela la competencia entre clases de forma directa y es lo que se usa por defecto.
Rinde más de lo que su simplicidad sugiere
En la práctica rinde más de lo que su simplicidad sugiere, sobre todo con muchos atributos y pocos datos, donde los modelos flexibles sobreajustan. Entrena rápido, se explica y produce probabilidades razonablemente calibradas de fábrica, cosa que muchos modelos más potentes no hacen.
Por eso el orden sensato es empezar por acá y exigirle al modelo complejo que supere esta línea de base por un margen que justifique su costo de mantenimiento.
De la probabilidad a la decisión
from sklearn.linear_model import LogisticRegression
modelo = LogisticRegression(
class_weight="balanced", # compensa el desbalance sin tocar los datos
C=1.0, # inverso de la regularización: menor C, más penalización
max_iter=1000,
)
modelo.fit(X_train, y_train)
probabilidades = modelo.predict_proba(X_test)[:, 1] # esto es lo que da el modelo
decisiones = probabilidades >= 0.30 # el umbral lo elige el negocio
# El coeficiente se interpreta en escala de probabilidades relativas
import numpy as np
razon = np.exp(modelo.coef_[0]) # cuánto multiplica las chances cada unidad del atributoLa línea que más importa es la separación entre las dos últimas: el modelo entrega una
probabilidad y no una decisión. Usar predict directamente equivale a fijar el umbral en 0,5
sin haberlo decidido, y 0,5 casi nunca es el número correcto.
El class_weight es la forma limpia de manejar el desbalance: en vez de duplicar filas de la
clase minoritaria o descartar de la mayoritaria, se le da más peso al error sobre la clase rara
dentro de la función de costo.
Por qué sigue siendo el default
| Regresión logística | Árboles con boosting | Red neuronal | |
|---|---|---|---|
| Probabilidades calibradas | sí, casi siempre | no sin calibrar | no |
| Se explica | coeficiente por coeficiente | con SHAP | no |
| Datos tabulares | buena línea de base | suele ganar | suele perder |
| Interacciones entre atributos | hay que declararlas | las encuentra sola | las encuentra |
| Tiempo de entrenamiento | segundos | minutos | horas |
Cierre
Una combinación lineal pasada por la sigmoide da probabilidad; la entropía cruzada la entrena y castiga la confianza equivocada. Los coeficientes se leen como razones de probabilidad, la frontera es lineal, softmax generaliza a varias clases, y es la línea de base que hay que superar.
Autoevaluación
¿Lo entendiste?
Práctica