J'ai programmé une régression logistique en utilisant l' algorithme IRLS . Je souhaite appliquer une pénalisation LASSO afin de sélectionner automatiquement les bonnes fonctionnalités. À chaque itération, le problème suivant est résolu:
Soit un nombre réel non négatif. Je ne pénalise pas l'interception comme suggéré dans The Elements of. Apprentissage statistique . Idem pour les coefficients déjà nuls. Sinon, je soustrais un terme du côté droit:
Cependant, je ne suis pas sûr de la modification de l'algorithme IRLS. Est-ce la bonne façon de procéder?
Edit: Bien que je n'étais pas confiant à ce sujet, voici une des solutions que j'ai finalement trouvé. Ce qui est intéressant, c'est que cette solution correspond à ce que je comprends maintenant de LASSO. Il y a en effet deux étapes à chaque itération au lieu d'une seule:
- la première étape est la même que précédemment: on fait une itération de l'algorithme (comme si dans la formule du gradient ci-dessus),
- la deuxième étape est la nouvelle: on applique un seuillage progressif à chaque composante (à l'exception de la composante , qui correspond à l'ordonnée à l'origine) du vecteur obtenu à la première étape. C'est ce qu'on appelle l' algorithme itératif de seuil doux . β