¿Cómo aplicar el método de mínimos cuadrados re ponderados iterativamente (IRLS) al modelo LASSO?

12

He programado una regresión logística usando el algoritmo IRLS . Me gustaría aplicar una penalización LASSO para seleccionar automáticamente las funciones correctas. En cada iteración, se resuelve lo siguiente:

(XTWX)δβ^=XT(yp)

Sea λ un número real no negativo. No estoy penalizando la intercepción como se sugiere en The Elements of. Aprendizaje estadístico . Lo mismo ocurre con los coeficientes ya cero. De lo contrario, restaré un término del lado derecho:

XT(yp)λ×sign(β^)

Sin embargo, no estoy seguro acerca de la modificación del algoritmo IRLS. ¿Es la forma correcta de hacerlo?


Editar: aunque no estaba seguro de ello, esta es una de las soluciones que finalmente se me ocurrió. Lo interesante es que esta solución corresponde a lo que ahora entiendo sobre LASSO. De hecho, hay dos pasos en cada iteración en lugar de simplemente uno:

  • El primer paso es el mismo que antes: hacemos una iteración del algoritmo (como si λ=0 en la fórmula para el gradiente anterior),
  • el segundo paso es el nuevo: aplicamos un umbral suave a cada componente (excepto el componente β0 , que corresponde a la intersección) del vector β obtenido en el primer paso. Esto se llama algoritmo iterativo de umbral blando .

i1,βisign(βi)×max(0,|βi|λ)
Wok
fuente
Todavía no se pudo lograr una mejor convergencia adaptando IRLS. : '(
Wok

Respuestas:

12

Este problema generalmente se resuelve mediante ajuste mediante descenso coordinado ( ver aquí ). Este método es más seguro, más eficiente numéricamente, algorítmicamente más fácil de implementar y aplicable a una matriz más general de modelos (que también incluye la regresión de Cox). Una implementación R está disponible en el paquete R glmnet . Los códigos son de código abierto (en parte y en C, en parte en R), por lo que puede usarlos como planos.

usuario603
fuente
@wok Cabe destacar que el paquete scikit.learn también ofrece una implementación eficiente en Python para este tipo de cosas.
chl
El algoritmo de descenso coordinado es interesante. Gracias. Sigo pensando en eso.
Wok
5

La función de pérdida LASSO tiene una discontinuidad en cero a lo largo de cada eje, por lo que IRLS tendrá problemas con ella. He encontrado un enfoque de tipo de optimización mínima secuencial (SMO) muy efectivo, ver 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 optimizar los coeficientes de uno en uno y probar para ver si cruza la discontinuidad de un coeficiente a la vez, lo cual es fácil ya que está realizando una optimización escalar. Puede sonar lento, pero en realidad es bastante eficiente (aunque espero que se hayan desarrollado mejores algoritmos desde entonces, probablemente por Keerthi o Chih-Jen Lin, ambos expertos líderes en ese tipo de cosas).

Dikran Marsupial
fuente
Gracias. Estoy leyendo esto y pensando en ello. Sin embargo, esto sería una gran modificación del algoritmo actual.
Wok
4

Puede consultar el documento: regresión logística regularizada eficiente L1, que es un algoritmo basado en IRLS para LASSO. En cuanto a la implementación, el enlace puede ser útil para usted (http://ai.stanford.edu/~silee/softwares/irlslars.htm).


fuente
0

El IRLS para el problema LASSO es el siguiente:

argminx12Axb22+λx1=argminx12Axb22+λxTWx

Donde es una matriz diagonal - . Esto viene de .WWi,i=1|xi|
x1=i|xi|=ixi2|xi|

Ahora, lo anterior es solo la regularización de Tikhonov .
Sin embargo, dado que depende de uno debe resolverlo de forma iterativa (también esto cancela el factor 2 en la regularización de Tikhonov, ya que la derivada de con respecto a mientras mantiene como constante es que equivale a ):WxxTWxxxdiag(sign(x))Wx

xk+1=(ATA+λWk)1ATb

Donde .Wi,iK=1|xik|

Inicialización puede ser por .W=I

Preste atención, esto no funciona bien para valores grandes de y es mejor usar ADMM o Descenso de coordenadas.λ

Royi
fuente