13 votos

¿Cómo aplicar lazo al IRLS (regresión logística)?

He programado una regresión logística utilizando las NIÑAS algoritmo. Me gustaría aplicar un LAZO penalización para seleccionar automáticamente las características adecuadas. En cada iteración, el siguiente se resuelve:

$$\mathbf{\left(X^TWX\right) \delta\hat\beta=X^T\left(y-p\right)}$$

Deje $\lambda$ que no sea un número real negativo. Yo no soy penalizar a la intersección, como se sugiere en Los Elementos de. Aprendizaje Estadístico. Lo mismo ocurre con el ya cero de los coeficientes. De lo contrario, le resta un término de la parte derecha:

$$\mathbf{X^T\left(y-p\right)-\lambda\times \mathrm{sign}\left(\hat\beta\right)}$$

Sin embargo, estoy seguro acerca de la modificación de las NIÑAS algoritmo. Es la manera correcta de hacer?


Edit: Aunque yo no estaba seguro acerca de eso, he aquí una de las soluciones que finalmente ocurrió. Lo que es interesante es que esta solución corresponde a lo que ahora entendemos LAZO. De hecho hay dos pasos en cada iteración, en vez de solo uno:

  • el primer paso es el mismo que antes : hacemos una iteración del algoritmo (como si $\lambda=0$ en la fórmula para el degradado de arriba),
  • el segundo paso es la nueva: se aplica una suave umbral para cada componente (excepto para el componente $\beta_0$, que corresponde a la intersección) de los vectores $\beta$ obtenido en el primer paso. Esto se llama Iterativo Suave-Algoritmo de Umbralización.

$$\forall i \geq 1, \beta_{i}\leftarrow\mathrm{sign}\left(\beta_{i}\right)\times\max\left(0,\,\left|\beta_{i}\right|-\lambda\right)$$

13voto

Patrick Puntos 183

Este problema suele resolverse por ajuste por coordinar descenso (ver aquí). Este método es más seguro, más eficiente, numéricamente, a través de algoritmos más fácil de implementar, y aplicable a una más general de la gama de modelos (incluyendo también la regresión de Cox). R la aplicación está disponible en la R paquete glmnet. Los códigos son de código abierto (en parte y en C, parte I), por lo que puede utilizarlos como modelos.

5voto

John Richardson Puntos 1197

El LAZO de la pérdida de la función tiene una discontinuidad en el punto de cero a lo largo de cada eje, por lo que las NIÑAS va a tener problemas con él. He encontrado una secuencia mínima de optimización (SMO) tipo de enfoque muy eficaz, véase, por ejemplo,

http://bioinformatics.oxfordjournals.org/content/19/17/2246

una versión con el software MATLAB es

http://bioinformatics.oxfordjournals.org/content/22/19/2348

el software está disponible aquí:

http://theoval.cmp.uea.ac.uk/~gcc/cbl/blogreg/

La idea Básica es la optimización de los coeficientes de uno en uno en el tiempo, y prueba a ver si se cruza la discontinuidad uno de los coeficientes en un momento, que es fácil ya que ejecutar un escalar optimización. Puede parecer lento, pero en realidad es bastante eficiente (aunque espero que mejor se han desarrollado algoritmos ya que - probablemente por Keerthi o Chih-Jen Lin que son los principales expertos en ese tipo de cosas).

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