J'utilise la régression linéaire pour prédire les données. Mais je reçois des résultats totalement contrastés lorsque je normalise (vs) Standardise des variables.
Normalisation = x-xmin/xmax - xmin Zero Score Standardization = x - xmean/xstd
a) Also, when to Normalize (Vs) Standardize ?
b) How Normalization affects Linear Regression?
c) Is it okay if I don't normalize all the attributes/lables in the linear regression?
Merci, Santos
Notez que les résultats pourraient ne pas être nécessairement si différents. Vous aurez peut-être simplement besoin d'hyperparamètres différents pour que les deux options donnent des résultats similaires.
L'idéal est de tester ce qui fonctionne le mieux pour votre problème. Si vous ne pouvez pas vous le permettre pour une raison quelconque, la plupart des algorithmes tireront probablement davantage parti de la normalisation que de la normalisation.
Voir ici pour quelques exemples de cas où l’un devrait être préféré à l’autre:
Par exemple, dans les analyses de regroupement, la normalisation peut être particulièrement cruciale pour comparer les similitudes entre les caractéristiques en fonction de certaines mesures de distance. Un autre exemple frappant est l’analyse en composantes principales, où nous préférons généralement la standardisation à l’échelle Min-Max, car nous nous intéressons aux composants qui maximisent la variance (en fonction de la question et si PCA calcule les composants via la matrice de corrélation au lieu de la matrice de covariance; mais plus sur la PCA dans mon article précédent).
Cependant, cela ne signifie pas que la mise à l'échelle Min-Max n'est pas du tout utile! Une application courante est le traitement d’image, où les intensités de pixels doivent être normalisées pour s’ajuster dans une certaine plage (c’est-à-dire de 0 à 255 pour la plage de couleurs RVB). En outre, un algorithme de réseau neuronal typique nécessite des données sur une échelle de 0-1.
L'un des inconvénients de la normalisation par rapport à la normalisation est qu'elle perd certaines informations dans les données, en particulier concernant les valeurs aberrantes.
Également sur la page liée, il y a cette image:
Comme vous pouvez le constater, la mise à l'échelle des grappes de toutes les données est très rapprochée, ce qui peut ne pas être ce que vous voulez. Cela pourrait retarder la mise au point d’algorithmes tels que la descente de gradient, pour aboutir à la même solution que sur un jeu de données normalisé, voire rendre cela impossible.
"Normaliser les variables" n'a pas vraiment de sens. La terminologie correcte est "normaliser/mettre à l'échelle les fonctionnalités". Si vous souhaitez normaliser ou mettre à l'échelle une fonctionnalité, vous devriez en faire de même pour le reste.
Cela a du sens car la normalisation et la normalisation ont des effets différents.
La normalisation transforme vos données dans une plage comprise entre 0 et 1
La normalisation transforme vos données de sorte que la distribution résultante ait une moyenne de 0 et un écart type de 1.
La normalisation/normalisation sont conçues pour atteindre un objectif similaire, à savoir créer des fonctionnalités ayant des plages similaires. Nous voulons cela, afin de pouvoir être sûrs de capturer les informations vraies dans une fonctionnalité, et de ne pas surestimer une fonctionnalité particulière simplement parce que ses valeurs sont beaucoup plus grandes que les autres fonctionnalités.
Si toutes vos fonctionnalités se trouvent dans une plage similaire les unes des autres, il n'est pas vraiment nécessaire de normaliser/normaliser. Si, toutefois, certaines caractéristiques prennent naturellement des valeurs beaucoup plus grandes/plus petites que d’autres, alors la normalisation/normalisation est requise.
Si vous normalisez au moins une variable/caractéristique, je ferais la même chose pour toutes les autres.
La première question est pourquoi nous avons besoin de normalisation/normalisation?
=> Nous prenons un exemple de jeu de données où nous avons une variable de salaire et une variable d’âge . L’âge peut aller de 0 à 90 ans, le salaire pouvant aller de 25 000 à 2,5lakh.
Nous comparons la différence pour 2 personnes, puis la différence d'âge se situe dans la plage inférieure à 100, la différence de salaire sera comprise dans la fourchette de milliers.
Donc, si nous ne voulons pas qu'une variable en domine une autre, nous utilisons soit la normalisation, soit la normalisation. Maintenant, l'âge et le salaire seront dans la même échelle mais lorsque nous utilisons la normalisation ou la normalisation, nous perdons les valeurs d'origine et il est transformé en certaines valeurs. Donc, perte d’interprétation mais extrêmement importante lorsque nous voulons tirer des conclusions de nos données.
La normalisation redimensionne les valeurs dans une plage de [0,1]. également appelé min-max mis à l'échelle.
La normalisation redimensionne les données pour avoir une moyenne (μ) de 0 et un écart type (σ) de 1. Cela donne donc un graphique normal.
Exemple ci-dessous:
Un autre exemple:
Dans l'image ci-dessus, vous pouvez voir que nos données réelles (en vert) sont réparties b/w 1 à 6, les données normalisées (en rouge) sont réparties autour de -1 à 3 alors que les données normalisées (en bleu) sont réparties autour de 0 à 1. .
Normalement, de nombreux algorithmes exigent que vous normalisiez/normalisiez d'abord les données avant de les passer en paramètre. Comme en PCA, nous réduisons les dimensions en traçant nos données 3D en 1D (par exemple). Ici, nous avions besoin d'une normalisation.
Mais dans le traitement des images, il est nécessaire de normaliser les pixels avant de les traiter ..__ Mais lors de la normalisation, nous perdons des valeurs aberrantes (points de données extrêmes - trop bas ou trop élevés), ce qui constitue un léger désavantage.
Donc, cela dépend de notre préférence de ce que nous avons choisi mais la normalisation est la plus recommandée car elle donne une courbe normale.