10 votos

Función de pérdida de scikit-learn LogisticRegression

Estoy teniendo problemas para entender la función de pérdida scikit-learn utiliza para ajustar la regresión logística, que se puede encontrar aquí .

Concretamente tengo problemas con el segundo término. Parece muy diferente del criterio MLE habitual. ¿Puede alguien darme alguna pista de dónde viene esto?

$$\mathop {\min{\mkern 1mu} }\limits_{w,c} \frac{1}{2}{w^T}w + C\sum\limits_{i = 1}^n {\log } (\exp ( - {y_i}(X_i^Tw + c)) + 1)$$

Creo que normalmente la probabilidad logarítmica de una regresión logística es algo parecido a lo siguiente. Claramente el primer término de abajo falta en la función objetivo de scikit-learn.

$$LLH=\sum_{i=1}^n \left[{y_i}(X_i^Tw + c) - \ln\{1+\exp(X_i^Tw + c)\} \right]$$

9voto

Robert Puntos 26

En realidad, estas dos son (casi) equivalentes debido a la siguiente propiedad de la función logística:

$$ \sigma(x) = \frac{1}{1+\exp(-x)} = \frac{\exp(x)}{\exp(x)+1} $$

También

$$ \sum_{i=1}^n \log ( 1 + \exp( -y_i (X_i^T w + c) ) ) \\ = \sum_{i=1}^n \log \left[ (\exp( y_i (X_i^T w + c) ) + 1) \exp( -y_i (X_i^T w + c) ) \right] \\ = -\sum_{i=1}^n \left[ y_i (X_i^T w + c) - \log (\exp( y_i (X_i^T w + c) ) + 1) \right] $$

Tenga en cuenta, sin embargo, que su fórmula no tiene $y_i$ en la "parte de registro", mientras que éste sí. (Supongo que se trata de un error tipográfico)

6voto

The Shaper Puntos 365

No creo que la falta de $y_i$ es un error tipográfico:

La pérdida logarítmica habitual (pérdida de entropía cruzada) es: $$-\sum_i [y_i \log(p_i) + (1-y_i) \log(1 - p_i)],$$ donde $p_i = \sigma(X^T_i \omega + c)$ et $\sigma(x) = 1/(1+e^{-x})$ es la función logística.

Desde allí, $$-\sum_i [y_i \log(p_i) + (1-y_i) \log(1 - p_i)] \\ = -\sum_i [y_i \log\left(\frac{p_i}{1-p_i}\right) + \log(1 - p_i)] \\ = -\sum_i [y_i \left( X^T_i \omega + c \right) + \log(1 - p_i)] \\ = -\sum_i [y_i \left( X^T_i \omega + c \right) - \log\left(1 + \exp({X^T_i \omega + c})\right)].$$ Esto coincide con la expresión LLH dada en el post original, sin el $y_i$ factor en el exponencial.

5voto

The Shaper Puntos 365

Es sólo una cuestión de definición de $y_i$ . Definición de $y_i$ y $\tilde y_i$ tal que $y_i \in \{0, 1\}$ y $\tilde y_i \in \{-1, 1\}$ ( $\tilde y_i = 2y_i -1$ ), y utilizando $p_i = \sigma({X^T_i \omega + c})$ y $1- \sigma(x) = \sigma(-x)$ se obtiene

$$-\sum_i [y_i \log(p_i) + (1-y_i) \log(1 - p_i)] = \sum_i \log\left(1 + \exp(-\tilde y_i({X^T_i \omega + c}))\right).$$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X