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.
- Comment décider quelle régularisation (L1 ou L2) utiliser?
- Quels sont les avantages et les inconvénients de chacune des régularisations L1 / L2?
- 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?
regression
lasso
regularization
ridge-regression
GeorgeOfTheRF
la source
la source
Réponses:
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)
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 nulsN N . 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.
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.
la source
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.
la source