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)$$