Comment gérer les variables prédictives de différentes distributions dans la régression logistique?


8

J'utilise la régression logistique pour prédire y étant donné x1 et x2:

z = B0 + B1 * x1 + B2 * x2
y = e^z / (e^z + 1)

Comment la régression logistique est-elle censée traiter les cas dans lesquels mes variables ont des échelles très différentes? Les gens construisent-ils jamais des modèles de régression logistique avec des coefficients d'ordre supérieur pour les variables? J'imagine quelque chose comme ça (pour deux variables):

z = B0 + B1 * x1 + B2 * x1^2 + B3 * x2 + B4 * x2^2

Ou bien, est-ce la bonne réponse pour simplement normaliser, normaliser ou redimensionner les valeurs x1 et x2 avant d'utiliser la régression logistique?

Réponses:


6

Bien sûr, vous pouvez normaliser vos paramètres, cela augmenterait également la vitesse de l'algorithme d'apprentissage.

Afin d'avoir comparable à la fin de l'exécution de l'algorithme, vous devez, pour chaque , calculer sa moyenne et sa plage . Ensuite, vous modifiez chaque valeur , c'est-à-dire la valeur de la fonction pour un enregistrement , avec: Maintenant, vos valeurs se situent dans l'intervalle [- 1,1], afin que vous puissiez comparer votre avec plus de confiance et donc votre rapport de cotes. Cela raccourcit également le temps pour trouver le meilleur ensemble deβxiμiri=maximinir[xi]xir

r[xi]μiri
r[xi]ββsi vous utilisez une descente en pente. N'oubliez pas de normaliser vos fonctionnalités si vous souhaitez prédire la classe d'un nouvel enregistrement .r

Vous pouvez également ajouter des fonctionnalités d'ordre supérieur, mais cela conduit à un sur-ajustement. Habituellement, tant que vous ajoutez plus de paramètres, il est préférable d'ajouter une régularisation, qui essaie d'éviter le surapprentissage en diminuant l'ampleur de votre . Ceci est obtenu en ajoutant ce terme à la fonction de coût de régression logistique où règle la puissance de la régularisation.β

λi=0nβi2
λ

Je suggère de consulter les cours de Stanford sur l'apprentissage automatique ici: http://www.ml-class.org/course/video/preview_list , Unit 6 and 7.


juste pour clarifier, quand vous dites de normaliser un nouvel enregistrement r ', vous utilisez les anciens et dérivés des données originales, correct? Mercimuiri
FMZ

Oui, ça l'est. Vous devez utiliser et calculés sur l'ensemble d'apprentissage pour normaliser les valeurs d'un nouvel enregistrement. Ps, vous pouvez également utiliser l'écart-type de votre fonctionnalité plutôt que . μirixiri
Simone

6

@Simone fait de bons points, donc je vais juste ajouter quelques friandises complémentaires. Bien que la normalisation puisse aider avec des choses comme la vitesse, la régression logistique ne fait pas d'hypothèses sur les distributions de vos variables prédictives. Ainsi, vous n'avez à Normaliser. Deuxièmement, tout en ajoutant un terme au carré peut conduire à un sur-ajustement (et vous devez être prudent à ce sujet), il est autorisé. Cela signifierait que la probabilité de réussite est plus élevée au milieu de la fourchette d'un prédicteur qu'aux extrêmes (ou vice versa).


4

En théorie, l'échelle de vos entrées n'est pas pertinente pour la régression logistique. Vous pouvez "théoriquement" multiplier par et l'estimation de s'ajustera en conséquence. Elle sera fois plus petite que la , en raison de la propriété d'invariance des MLE.X110101010β110101010β1

Mais essayez d'amener R à effectuer la régression ajustée ci-dessus - cela va paniquer (il ne sera même pas en mesure de construire la matrice X).

C'est un peu comme l'algorithme de décomposition cholesky pour calculer une racine carrée de matrice. Oui, en mathématiques exactes , la décomposition cholesky n'implique jamais de prendre la racine carrée d'un nombre négatif, mais arrondir les erreurs, et l'arithmétique à virgule flottante peut conduire à de tels cas.

Vous pouvez prendre n'importe quelle combinaison linéaire de vos variables X, et les valeurs prévues seront les mêmes.

Si nous suivons les conseils de @ simone, et en utilisant les variables X redimensionnées pour ajuster le modèle . Mais nous pouvons utiliser la propriété d'invariance de MLE pour obtenir la version bêta que nous voulons, après avoir utilisé des variables X d'entrée numériquement stables. Il se peut que la version bêta de l'échelle d'origine soit plus facile à interpréter que la version bêta de celle transformée de @ simone. Nous avons donc la transformée ( ème observation pour la ème variable), appelons-la , définie par:xijijx~ij

x~ij=ajxij+bj

Le choix de @ simone correspond à et (en utilisant pour désigner la statistique du ème ordre de la ème variable, c'est-à-dire ). Les et peuvent être considérés comme des paramètres d'algorithme (choisis pour rendre l'algorithme plus stable et / ou plus rapide). Nous ajustons ensuite une régression logistique en utilisant , et obtenons des estimations de paramètres . Ainsi, nous écrivons le prédicteur linéaire:aj=1x[N]jx[1]jbj=x¯jx[N]jx[1]jx[i]jijx[N]jx[N1]jx[1]jajbjx~ijβ~j

zi=β~0+jx~ijβ~j

Remplacez maintenant l'équation par et vous obtenez:x~ij

zi=β~0+j(ajxij+bj)β~j=β0+jxijβj
β0=β~0+jbjβ~jβj=ajβ~j

Vous pouvez voir qu'en théorie, les paramètres ne font aucune différence: tout choix (à l'exception de ) entraînera la même vraisemblance, car le prédicteur linéaire est inchangé. Il fonctionne même pour des transformations linéaires plus complexes, telles que la représentation de la matrice X par ses principales composantes (ce qui implique des rotations). Nous pouvons donc retransformer les résultats pour obtenir les bêtas que nous voulons pour l'interprétation.aj,bjaj=0


Belle preuve théorique. Sans normalisation, les rapports de cotes ont une signification vraiment pratique. Cependant, parfois, les praticiens utilisent ces rapports de cotes pour évaluer l'importance de cette caractéristique, et cela est en quelque sorte trompeur car une caractéristique peut être significative mais peut également varier sur une large plage et donc avoir un faible rapport de cotes. Avec la normalisation, ils sont immédiatement comparables même s'ils perdent leur sens pratique. Bien sûr, un test statistique doit être effectué pour évaluer l'importance d'une caractéristique.
Simone
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.