Paramètre de régularisation LASSO de l'algorithme LARS

9

Dans leur article fondateur «Least Angle Regression» , Efron et al décrivent une modification simple de l'algorithme LARS qui permet de calculer des chemins de régularisation LASSO complets.

J'ai implémenté cette variante avec succès et trace généralement le chemin de sortie en fonction du nombre d'étapes (itérations successives de l'algorithme LARS) ou de la l_1 des coefficients de régression ( ).l1β1

Pourtant, il semble que la plupart des packages disponibles fournissent le chemin de régularisation en termes de coefficient de pénalisation LASSO λ (par exemple LARS dans R, où vous pouvez jouer avec l'argument `` mode '' pour basculer entre différentes représentations).

Ma question est: quelle est la mécanique utilisée pour passer d'une représentation à l'autre (s). J'ai vu diverses questions liées à cela (ou plus précisément la question de la mise en correspondance de la contrainte d'inégalité β1t avec un terme de pénalisation approprié λβ1 ), mais je n'ai trouvé aucune réponse satisfaisante.


[Éditer]

J'ai regardé à l'intérieur du code MATLAB qui effectue la transformation requise et, pour chaque étape LARS k , voici comment λ semble être calculé:

λ(k)=max(2|XTy|),   for k=1
λ(k)=median(2|XAkTrAk|),   k>1

X (taille n×p ) et y (taille n×1 ) désignent les entrées / réponses normalisées, Ak représente l'ensemble des prédicteurs actifs à l'étape k et r représente le résidu de régression actuel à l'étape k .

Je ne peux pas saisir la logique derrière ce calcul. Quelqu'un pourrait-il aider?

Quantuple
la source

Réponses:

4

J'ai compris comment effectuer la conversion requise.

Supposons que les entrées sont normalisées (moyenne nulle, variance unitaire) et que les réponses sont centrées.Xy

Nous savons que l'algorithme LARS modifié fournit le chemin complet de régularisation LASSO, cf. papier original par Efron et al .

Cela signifie qu'à chaque itération , l'ancien algorithme trouve un couple optimal minimisant la fonction de perte régularisée: k(β,λ)

(β,λ)=argmin(β,λ)L(β,λ)L(β,λ)=yXβ22+λβ1=i=1N(yij=1pβjXij)2+λj=1p|βj|

Pour tous les composants actifs dans l'ensemble actif à la fin de l'étape , l'application de la condition de stationnarité KKT donne a={1,...,q}Akk

0=Lβa(β,λ)=2i=1NXia(yij=1qβjXij)+λ sign(βa)

En d'autres termes ou dans les notations matricielles (en notant que la division / multiplication par est la même) l'équation suivante est satisfaite pour tout composant actif :

λ=2i=1NXia(yij=1qβjXij)sign(βa)
sign(x)a
λ=2 sign(βa)XaTr

Dans l'article original, les auteurs mentionnent que pour toute solution au problème LASSO, le signe d'un poids de régression actif ( ) devrait être identique au signe de la corrélation du prédicteur actif correspondant avec le résidu de régression actuel ( ), qui n'est que logique puisque doit être positif. Ainsi, nous pouvons également écrire:βaXaTrλ

λ=2|XaTr|

De plus, nous voyons qu'à l'étape finale (ajustement OLS, ), nous obtenons raison du lemme d'orthogonalité. L'utilisation de la médiane dans la mise en œuvre de MATLAB que j'ai trouvé à mon humble avis semble être un effort pour «faire la moyenne» des erreurs numériques sur tous les composants actifs:kβ=(XTX)1XTyλ=0

λ=median(2|XAkTrAk|),   k>1

Pour calculer la valeur de quand il n'y a pas de composants actifs (étape ), on peut utiliser la même astuce que ci-dessus mais dans la limite infinitésimale où tous les poids de régression sont nuls et seul le signe du premier composant devient les questions actives (à l'étape ). Cela donne:λk=1bk=2

λ=2 sign(βb)XbTy
qui est strictement équivalent à

λ=max(2|XTy|), for k=1

car (i) même remarque que précédemment concernant le signe des poids de régression; (ii) l'algorithme LARS détermine la composante suivante pour entrer l'ensemble actif comme celui qui est le plus corrélé avec le résiduel actuel , qui à l'étape est simplement .bk=1y

Quantuple
la source
2
C'est quelque chose qui est mentionné dans chaque travail de LASSO mais personne ne tient à l'expliquer (je ne sais pas si c'est très basique ou quoi, mais cela m'a pris beaucoup de temps pour le comprendre). Je veux juste souligner que, bien que "équivalent", vous ne pouvez passer d'une formulation à l'autre (contrainte à non contrainte et vice versa) qu'une fois que vous avez résolu le problème d'optimisation et que vous avez les poids optimaux.
skd
2
Je ressens la même chose! En ce qui concerne votre remarque, oui en effet. Ici, cela se reflète dans le , qui ne peut être calculé qu'une fois que les poids de régression optimaux ont été obtenus à la fin de l'étape . rAkβkk
Quantuple