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:
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:
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 en la fórmula para el gradiente anterior),
- el segundo paso es el nuevo: aplicamos un umbral suave a cada componente (excepto el componente , que corresponde a la intersección) del vector obtenido en el primer paso. Esto se llama algoritmo iterativo de umbral blando .