Quand la régularisation L1 fonctionnera-t-elle mieux que L2 et vice versa?


30

Remarque: Je sais que L1 a une propriété de sélection de fonction. J'essaie de comprendre lequel choisir lorsque la sélection des fonctionnalités est complètement hors de propos.

  1. Comment décider quelle régularisation (L1 ou L2) utiliser?
  2. Quels sont les avantages et les inconvénients de chacune des régularisations L1 / L2?
  3. Est-il recommandé de faire d'abord la sélection des fonctionnalités en utilisant L1 puis d'appliquer L2 sur ces variables sélectionnées?

2
Notez que la "sélection d'entités L1" devrait plutôt être appelée régularisation de l'espace d'entités; il y a beaucoup de façon de meilleures méthodes pour faire fonction sélection compris que l' obtention de l' information ce qui est pertinent au problème modélisé.

@mbq: Je suis curieux de savoir "de bien meilleures méthodes" que vous vouliez dire ici?
amibe dit Réintégrer Monica

1
Comme ceux énumérés ici .

Réponses:


31

Comment décider quelle régularisation (L1 ou L2) utiliser?

Quel est ton but? Les deux peuvent améliorer la généralisation du modèle en pénalisant les coefficients, car les caractéristiques ayant une relation opposée au résultat peuvent se «compenser» (une grande valeur positive est contrebalancée par une grande valeur négative). Cela peut se produire lorsqu'il existe des entités colinéaires. De petits changements dans les données peuvent entraîner des estimations de paramètres radicalement différentes (estimations de variance élevée). La pénalisation peut restreindre les deux coefficients pour qu'ils soient plus petits. (Hastie et al, Elements of Statistical Learning , 2e édition, p. 63)

Quels sont les avantages et les inconvénients de chacune des régularisations L1 / L2?

La régularisation L1 peut résoudre le problème de multicolinéarité en contraignant la norme de coefficient et en épinglant certaines valeurs de coefficient à 0. Calculativement, la régression Lasso (régression avec une pénalité L1) est un programme quadratique qui nécessite des outils spéciaux pour résoudre. Lorsque vous avez plus de fonctionnalités que d'observations , le lasso conserve au maximum coefficients non nulsNN . Selon le contexte, ce n'est peut-être pas ce que vous voulez.

La régularisation L1 est parfois utilisée comme méthode de sélection des fonctionnalités. Supposons que vous ayez une sorte de limite stricte sur le nombre de fonctionnalités que vous pouvez utiliser (car la collecte de données pour toutes les fonctionnalités est coûteuse, ou vous avez des contraintes d'ingénierie strictes sur le nombre de valeurs que vous pouvez stocker, etc.). Vous pouvez essayer de régler la pénalité L1 pour atteindre le nombre souhaité de fonctionnalités non nulles.

La régularisation L2 peut résoudre le problème de multicolinéarité en contraignant la norme de coefficient et en conservant toutes les variables. Il est peu probable qu'un coefficient soit exactement égal à 0. Ce n'est pas nécessairement un inconvénient, à moins qu'un vecteur de coefficient clairsemé soit important pour une raison quelconque.

Dans le cadre de la régression, c'est la solution «classique» au problème d'estimation d'une régression avec plus de fonctionnalités que d'observations. La régularisation L2 peut estimer un coefficient pour chaque caractéristique même s'il y a plus de caractéristiques que d'observations (en effet, c'était la motivation d'origine de la "régression de crête").

En alternative, le filet élastique permet la régularisation L1 et L2 comme cas particuliers. Un cas d'utilisation typique pour un scientifique des données dans l'industrie est que vous voulez simplement choisir le meilleur modèle, mais ne vous souciez pas nécessairement s'il est pénalisé en utilisant L1, L2 ou les deux. Le filet élastique est agréable dans de telles situations.

Est-il recommandé de faire d'abord la sélection des fonctionnalités en utilisant L1 puis d'appliquer L2 sur ces variables sélectionnées?

Je ne connais pas une publication proposant un pipeline L1 puis L2, mais ce n'est probablement que de l'ignorance de ma part. Il ne semble pas y avoir de problème. Je ferais une revue de la littérature.

Il existe quelques exemples de pipelines "phasés" similaires. Le premier est le "lasso détendu", qui applique deux fois la régression du lasso , une fois pour sélectionner à la baisse d'un grand groupe à un petit groupe de caractéristiques, et deuxièmement pour estimer les coefficients à utiliser dans un modèle. Cela utilise la validation croisée à chaque étape pour choisir l'ampleur de la pénalité. Le raisonnement est que dans la première étape, vous effectuez une validation croisée et choisirez probablement une pénalité importante pour éliminer les prédicteurs non pertinents; dans la deuxième étape, vous effectuez une validation croisée et choisirez probablement une pénalité plus petite (et donc des coefficients plus grands). Ceci est brièvement mentionné dans Elements of Statistical Learning avec une citation à Nicolai Meinshausen ("Relaxed Lasso." Computational Statistics & Data Analysis Volume 52, numéro 1, 15 septembre 2007, pp 374-393).

L'utilisateur @amoeba suggère également un pipeline L1 puis OLS; cela pourrait être bien car il n'a qu'un seul hyperparamètre pour l'ampleur de la pénalité L1, donc moins de violon serait nécessaire.

Un problème qui peut survenir avec tout pipeline d'analyse "en plusieurs phases" qui effectue certaines étapes, puis certaines autres étapes séparément, est qu'il n'y a pas de "visibilité" entre ces différents algorithmes, de sorte qu'un processus hérite de l'espionnage des données qui s'est produit lors des étapes précédentes. Cet effet n'est pas négligeable; une modélisation mal conçue peut conduire à des modèles d'ordures.

Une façon de se prémunir contre les effets secondaires d'espionnage de données consiste à valider de manière croisée tous vos choix. Cependant, l'augmentation des coûts de calcul peut s'avérer prohibitive.


Désolé, je n'ai pas suivi la réponse à mon troisième point. Peux-tu expliquer?
GeorgeOfTheRF

1
Il s'agit de bien tenir compte de l'optimisme. Pour la même raison que nous mesurons les performances sur des données hors échantillon, il est nécessaire d'effectuer toutes les étapes de filtrage / prétraitement d'une manière qui ne permette pas la fuite d'informations entre les étapes. Si vous sélectionnez des fonctionnalités sur l'ensemble de vos données, puis exécutez une analyse, vous trouverez un signal dans le bruit.
Sycorax dit Réintégrer Monica

D'accord. Quelle est alors l'approche recommandée pour la sélection des fonctionnalités avant d'exécuter un modèle ML?
GeorgeOfTheRF

3
Ma recommandation est «non». Voir ici pour un exemple de la façon dont cela peut mal tourner: stats.stackexchange.com/questions/164048/… Mais cela est suffisamment distinct de votre question initiale pour que vous deviez simplement poser une nouvelle question. (C'est à votre avantage, car vous pourrez accumuler des représentants supplémentaires sur la nouvelle question.)
Sycorax dit Réintégrer Monica

3
(+1) Je n'ai pas vu la L1 suivie de la L2 discutée dans la littérature, mais cela a du sens pour moi. Il y a L1 suivi par OLS (alias "hybride LARS-OLS") et L1 suivi par L1 (lasso détendu), donc on pourrait aussi bien considérer L1 suivi par L2. Tant que les deux hyperparamètres sont validés de façon croisée, cela devrait être une stratégie de régularisation viable.
amibe dit Réintégrer Monica le

19

De manière générale, si vous voulez une prédiction optimale, utilisez L2. Si vous voulez parcimonie à un certain sacrifice de discrimination prédictive, utilisez L1. Mais notez que la parcimonie peut être illusoire, par exemple, la répétition du processus de lasso en utilisant le bootstrap révèlera souvent une instabilité significative dans la liste des fonctionnalités "sélectionnées", en particulier lorsque les prédicteurs sont corrélés les uns avec les autres.


"Prévision optimale" - Vous voulez dire que L2 donne en général une meilleure précision sur les données invisibles?
GeorgeOfTheRF

3
Oui, notamment en ce qui concerne la discrimination prédictive.
Frank Harrell

1
+1 à ce commentaire (et à la réponse). Je suis tombé sur ce phénomène où est généralement meilleur en termes de discrimination prédictive (c'est-à-dire les tâches de classification) que et cela m'agace toujours un peu .. Je bootstrap intensivement uniquement pour que mon filet élastique propose une crête proche ou complète Solution. :)L2L1
usεr11852 dit Réintégrer Monic le

2
La discrimination prédictive est un concept beaucoup plus général que la classification. Mais pour vous, est généralement meilleur que car il ne dépense aucune information en essayant d'être parcimonieux. Il permet à beaucoup de petits effets de s'additionner. L2L1
Frank Harrell

Cool, merci pour la clarification. C'est tout à fait logique. (Oui, vous avez raison; j'associe la DP à des mesures relatives à la probabilité de classification correcte et / ou d'ordonnancement des sujets en termes de risque donc j'ai vite dit "tâches de classification"; mon mauvais, je devrais être plus prudent.)
usεr11852 dit Réintégrer Monic le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.