Méthodes de régularisation pour la régression logistique

42

La régularisation à l'aide de méthodes telles que Ridge, Lasso, ElasticNet est assez courante pour la régression linéaire. Je voulais savoir ce qui suit: Ces méthodes sont-elles applicables à la régression logistique? Si tel est le cas, existe-t-il des différences dans la manière dont ils doivent être utilisés pour la régression logistique? Si ces méthodes ne sont pas applicables, comment régulariser une régression logistique?

TAK
la source
Examinez-vous un ensemble de données particulier et devez-vous donc envisager de rendre les données exploitables pour le calcul, par exemple, en sélectionnant, en mettant à l'échelle et en décalant les données de sorte que le calcul initial ait tendance à réussir? Ou est-ce un aperçu plus général du comment et du pourquoi (sans ensemble de données spécifique à calculer contre0?
Philip Oakley
1
Voici un aperçu plus général du comment et du pourquoi de la régularisation. Textes d'introduction aux méthodes de régularisation (crête, Lasso, Elasticnet, etc.) que j'ai rencontrés sont spécifiquement mentionnés comme exemples de régression linéaire. Pas un seul n'a mentionné la logistique spécifiquement, d'où la question.
TAK
1
La régression logistique est une forme de GLM utilisant une fonction de lien non d'identité, presque tout s'applique.
Firebug
1
Avez-vous découvert la vidéo d'Andrew Ng sur le sujet?
Antoni Parellada
La régression de type crête, lasso et réseau élastique est une option populaire, mais ce ne sont pas les seules options de régularisation. Par exemple, les matrices de lissage pénalisent les fonctions avec de grandes dérivées secondes, de sorte que le paramètre de régularisation vous permet de "composer" une régression qui représente un bon compromis entre sur et sous-ajustement des données. Comme avec la régression crête / lasso / réseau élastique, celles-ci peuvent également être utilisées avec la régression logistique.
Réintégrer Monica le

Réponses:

49

Oui, la régularisation peut être utilisée dans toutes les méthodes linéaires, y compris la régression et la classification. Je voudrais vous montrer qu'il n'y a pas trop de différence entre la régression et la classification: la seule différence est la fonction de perte.

Plus précisément, il existe trois composantes principales de la méthode linéaire, fonction de perte, régularisation, algorithmes . Où fonction de perte plus régularisation est la fonction objectif dans le problème sous forme d'optimisation et l'algorithme est le moyen de le résoudre (la fonction objectif est convexe, nous ne discuterons pas dans cet article).

L(y^,y)=(y^y)2L(y^,y)=|y^y|L()yy^

L(y^,y)=log(1+exp(y^y))L(y^,y)=(1y^y)+y{1,1}y^y^

En ce qui concerne la régularisation, vous avez mentionné les régularisations de L1 et de L2. Il existe également d’autres formes qui ne seront pas abordées dans ce post.

Par conséquent, à un niveau élevé, une méthode linéaire est

minimizew   x,yL(wx,y)+λh(w)

Si vous remplacez la fonction Perte du paramètre de régression par la perte logistique, vous obtenez la régression logistique avec régularisation.

Par exemple, dans la régression de crête, le problème d'optimisation est

minimizew   x,y(wxy)2+λww

Si vous remplacez la fonction de perte par une perte logistique, le problème devient

minimizew   x,ylog(1+exp(wxy))+λww

Vous avez ici la régression logistique avec la régularisation L2.


Voici à quoi cela ressemble dans un jeu de données binaires synthétisées par des jouets. La figure de gauche représente les données avec le modèle linéaire (limite de décision). La figure de droite représente le contour de la fonction objectif (les axes x et y représentent les valeurs pour 2 paramètres). Le jeu de données a été généré à partir de deux gaussiennes et nous ajustons le modèle de régression logistique sans interception. Il ne reste donc que deux paramètres à visualiser dans la sous-figure de droite.

Les lignes bleues représentent la régression logistique sans régularisation et les lignes noires, la régression logistique avec régularisation L2. Les points bleu et noir de la figure de droite sont les paramètres optimaux pour la fonction objective.

λ0

entrez la description de l'image ici

Voici un autre exemple de régularisation L1.

entrez la description de l'image ici

Notez que le but de cette expérience est d’essayer de montrer comment la régularisation fonctionne dans la régression logistique, mais ne prétend pas que le modèle régularisé est préférable.


λλ0

entrez la description de l'image ici entrez la description de l'image ici


wxyy^=f(x)=wx1

yy{1,1}

y^=wxy^yy^=wx{1,1}y^

y{0,1}

Le code peut être trouvé dans mon autre réponse ici.

Existe-t-il une explication intuitive de la raison pour laquelle la régression logistique ne fonctionnera pas dans le cas d’une séparation parfaite? Et pourquoi l'ajout de la régularisation va le réparer?

Haitao Du
la source
4
wTxf(x)
Merci pour la réponse @ hxd1011, pouvez-vous s'il vous plaît expliquer ce que les lignes noires continues représentent dans le graphique de contour? Pour être plus précis, je sais que (comme vous l'avez expliqué) les axes x et y indiquent les 2 paramètres que nous utilisons. Mais qu'en est-il des lignes continues et de leurs nombres, tels que 8000, 10000, 12000. Merci!
Jespar
12

l(β)=l(β)+12ln|i(β)|
i(β)=1nipi(1pi)xixi{(yi,xi)={(1,1),(0,0)}glmR
StasK
la source
1
Oui, vous pouvez utiliser les packages R logistf ou brglm pour cela!
Mieux
C'est très élégant, mais c'est assez lent pour l'optimisation, n'est-ce pas? Dans le gradient, vous obtenez l'inverse de qui doit être recalculé à chaque itération ...i(β)
appletree
En effet, il est douloureusement lent, @appletree
StasK
(+1) Je n'avais jamais entendu parler de la correction de Firth auparavant. Je ne m'attendrais pas à ce que l'approche implicite dans le document cité ajoute beaucoup de temps à la solution GLM? (Vous n'avez pas besoin d'inverser une matrice, vous calculez simplement des effets de levier. Si vous résolvez le GLM via des moindres carrés itérativement repondérés, il ne s'agit que des normes de lignes du facteur Q. Les effets de levier s'ajoutent aux données et à l'exposition, en utilisant au lieu de dans l' ajustement de Jeffreys .)une / 2h/21/2
GeoMatt22
6

Oui, cela s’applique à la régression logistique. Dans R, en utilisant glmnet, vous spécifiez simplement la famille appropriée qui est "binomiale" pour la régression logistique. Vous pouvez spécifier quelques autres (poison, multinomial, etc.) en fonction de vos données et du problème que vous résolvez.

bonne vitesse
la source
Le seul inconvénient de l'utilisation de glmnet est que cette approche ne vous donnerait pas de niveaux de signification. Si cela vous intéresse, les paquets R logistf ou brglm seraient une meilleure solution ...
Tom Wenseleers Le
@TomWenseleers, il existe également des méthodes pour amorcer glmnet afin d'obtenir des valeurs p. Cependant, c'est un peu compliqué car le bootstrap "normal" ne fonctionne pas pour les coefficients de lasso
bonjour
Merci de m'avoir informé de cela, j'ai vu d'autres personnes le mentionner, par exemple ici: stats.stackexchange.com/questions/34859/… , mais ne parvenais pas à trouver quoi que ce soit implémenté de manière standard dans certains packages R. Auriez-vous des indications? Ou une bonne littérature primaire à ce sujet? Inconvénient du démarrage, c'est aussi qu'il serait généralement très lent pour les grands ensembles de données ...
Tom Wenseleers
Faites-vous référence à des méthodes telles que celles mises en œuvre dans le package R hdi, cran.r-project.org/web/packages/hdi/index.html ?
Tom Wenseleers