Après avoir examiné vos données à l'aide de techniques statistiques et de visualisation, vous devez les transformer de manière à faciliter l'entraînement de votre modèle. L'objectif de la normalisation est de transformer les caractéristiques pour qu'elles soient à une échelle similaire. Prenons l'exemple des deux fonctionnalités suivantes:
- La fonctionnalité
X
s'étend de 154 à 24 917 482. - La fonctionnalité
Y
s'étend de 5 à 22.
Ces deux fonctionnalités couvrent des plages très différentes. La normalisation peut manipuler X
et Y
afin qu'ils couvrent une plage similaire, peut-être de 0 à 1.
La normalisation offre les avantages suivants:
- Elle permet aux modèles de converger plus rapidement pendant l'entraînement. Lorsque différentes fonctionnalités ont des plages différentes, la descente du gradient peut "rebondir" et ralentir la convergence. Toutefois, des optimiseurs plus avancés tels que Adagrad et Adam protègent contre ce problème en modifiant le taux d'apprentissage effectif au fil du temps.
- Aide les modèles à déduire de meilleures prédictions. Lorsque différentes fonctionnalités ont des plages différentes, le modèle obtenu peut générer des prédictions moins utiles.
- Elle permet d'éviter le "piège NaN" lorsque les valeurs des caractéristiques sont très élevées.
NaN est l'abréviation de not a number (n'est pas un nombre). Lorsqu'une valeur d'un modèle dépasse la limite de précision en virgule flottante, le système définit la valeur sur
NaN
au lieu d'un nombre. Lorsqu'un nombre du modèle devient un NaN, les autres nombres du modèle finissent également par devenir des NaN. - Elle permet au modèle d'apprendre les pondérations appropriées pour chaque caractéristique. Sans mise à l'échelle des caractéristiques, le modèle accorde une attention trop importante aux caractéristiques présentant les plages les plus larges et pas assez aux caractéristiques présentant les plages les plus étroites.
Nous vous recommandons de normaliser les caractéristiques numériques couvrant des plages distinctes (par exemple, l'âge et les revenus).
Nous vous recommandons également de normaliser une seule caractéristique numérique couvrant une large plage, comme city population.
.
Prenons les deux fonctionnalités suivantes:
- La valeur la plus faible de l'élément géographique
A
est -0,5 et la plus élevée est +0,5. - La valeur la plus faible de l'élément géographique
B
est -5,0 et la plus élevée est +5,0.
Les éléments géographiques A
et B
ont des étendues relativement étroites. Toutefois, la période de la fonctionnalité B
est 10 fois plus longue que celle de la fonctionnalité A
. Par conséquent :
- Au début de l'entraînement, le modèle suppose que la caractéristique
B
est dix fois plus "importante" que la caractéristiqueA
. - L'entraînement prendra plus de temps que prévu.
- Le modèle obtenu peut être non optimal.
Les dommages globaux dus à la non-normalisation seront relativement faibles. Toutefois, nous vous recommandons de normaliser les caractéristiques A et B à la même échelle, par exemple de -1,0 à +1,0.
Prenons maintenant deux caractéristiques dont les plages sont plus éloignées:
- La valeur la plus faible de l'élément géographique
C
est -1 et la plus élevée est +1. - La valeur la plus faible de l'élément
D
est +5 000 et la plus élevée est +1 000 000 000.
Si vous ne normalisez pas les caractéristiques C
et D
, votre modèle sera probablement sous-optimal. De plus, l'entraînement prendra beaucoup plus de temps à converger, voire ne convergera pas du tout.
Cette section présente trois méthodes de normalisation courantes:
- mise à l'échelle linéaire
- Mise à l'échelle de la cote Z
- mise à l'échelle logarithmique
Cette section aborde également le clipping. Bien qu'il ne s'agisse pas d'une véritable technique de normalisation, le recadrage permet de canaliser les caractéristiques numériques indisciplinées dans des plages qui produisent de meilleurs modèles.
Mise à l'échelle linéaire
La mise à l'échelle linéaire (généralement abrégée en mise à l'échelle) consiste à convertir les valeurs à virgule flottante de leur plage naturelle en une plage standard, généralement comprise entre 0 et 1 ou entre -1 et +1.
Le scaling linéaire est un bon choix lorsque toutes les conditions suivantes sont remplies:
- Les limites inférieure et supérieure de vos données ne changent guère au fil du temps.
- La caractéristique contient peu ou pas de valeurs aberrantes, qui ne sont pas extrêmes.
- La caractéristique est distribuée de manière à peu près uniforme sur toute sa plage. Autrement dit, un histogramme afficherait des barres à peu près égales pour la plupart des valeurs.
Supposons que age
humain soit une fonctionnalité. La mise à l'échelle linéaire est une bonne technique de normalisation pour age
, car:
- Les limites inférieure et supérieure approximatives sont comprises entre 0 et 100.
age
contient un pourcentage relativement faible d'écarts. Seulement environ 0,3% de la population a plus de 100 ans.- Bien que certaines tranches d'âge soient un peu mieux représentées que d'autres, un grand ensemble de données doit contenir suffisamment d'exemples de toutes les tranches d'âge.
Exercice : Vérifiez votre compréhension
Supposons que votre modèle comporte une caractéristique nomméenet_worth
qui contient la valeur nette de différentes personnes. La mise à l'échelle linéaire est-elle une bonne technique de normalisation pour net_worth
? Pourquoi ?
Mise à l'échelle de la cote Z
Un score Z correspond au nombre d'écarts types d'une valeur par rapport à la moyenne. Par exemple, une valeur qui est supérieure de deux écarts types à la moyenne a un score Z de +2,0. Une valeur qui est inférieure de 1,5 écart type à la moyenne a un score Z de -1,5.
Représenter une caractéristique avec une mise à l'échelle du score z-score signifie stocker le score z-score de cette caractéristique dans le vecteur de caractéristiques. Par exemple, la figure suivante montre deux histogrammes:
- À gauche, une distribution normale classique.
- À droite, la même distribution normalisée par la mise à l'échelle du score Z.
Le scaling par score Z est également un bon choix pour les données telles que celles illustrées dans la figure suivante, qui ne présentent qu'une distribution vaguement normale.
Le score Z est un bon choix lorsque les données suivent une distribution normale ou une distribution semblable à une distribution normale.
Notez que certaines distributions peuvent être normales dans la majeure partie de leur plage, mais contenir des valeurs aberrantes extrêmes. Par exemple, presque tous les points d'une caractéristique net_worth
peuvent correspondre parfaitement à trois écarts types, mais il peut s'agir, par exemple, de centaines d'écarts types par rapport à la moyenne. Pour gérer ces situations, vous pouvez combiner le scaling du score Z avec une autre forme de normalisation (généralement le bornement).
Exercice : Vérifiez votre compréhension
Supposons que votre modèle entraîne le modèle sur une caractéristique nomméeheight
, qui représente la taille adulte de dix millions de femmes. La mise à l'échelle du score Z serait-elle une bonne technique de normalisation pour height
? Pourquoi ?
Mise à l'échelle logarithmique
La mise à l'échelle logarithmique calcule le logarithme de la valeur brute. En théorie, le logarithme peut avoir n'importe quelle base. En pratique, la mise à l'échelle logarithmique calcule généralement le logarithme naturel (ln).
La mise à l'échelle logarithmique est utile lorsque les données sont conformes à une distribution de loi d'alimentation. De manière informelle, une distribution de loi de puissance se présente comme suit:
- Les valeurs faibles de
X
correspondent à des valeurs très élevées deY
. - À mesure que les valeurs de
X
augmentent, celles deY
diminuent rapidement. Par conséquent, les valeurs élevées deX
correspondent à des valeurs très faibles deY
.
Les notes des films sont un bon exemple de distribution de loi de puissance. Dans la figure suivante, notez les points suivants:
- Certains films ont reçu de nombreuses notes d'utilisateurs. (Les valeurs faibles de
X
correspondent à des valeurs élevées deY
.) - La plupart des films ne reçoivent que très peu de notes des utilisateurs. (Les valeurs élevées de
X
ont des valeurs faibles deY
.)
La mise à l'échelle logarithmique modifie la distribution, ce qui permet d'entraîner un modèle qui effectue de meilleures prédictions.
Par exemple, les ventes de livres suivent une distribution de loi de puissance, car:
- La plupart des livres publiés ne se vendent qu'à quelques centaines d'exemplaires.
- Certains livres se vendent à quelques milliers d'exemplaires.
- Seules quelques meilleures ventes se vendent plus d'un million d'exemplaires.
Supposons que vous entraîniez un modèle linéaire pour déterminer la relation entre les couvertures de livres et les ventes de livres, par exemple. Un modèle linéaire entraîné sur des valeurs brutes devrait trouver quelque chose sur les couvertures de livres qui se vendent à un million d'exemplaires,qui est 10 000 fois plus puissant que les couvertures de livres qui ne se vendent qu'à 100 exemplaires. Toutefois, la mise à l'échelle de tous les chiffres de vente dans le journal rend la tâche beaucoup plus réalisable. Par exemple, le logarithme de 100 est:
~4.6 = ln(100)
tandis que le journal de 1 000 000 est le suivant:
~13.8 = ln(1,000,000)
Ainsi, la logarithme de 1 000 000 est seulement trois fois plus grande que celle de 100. Vous pouvez imaginer qu'une couverture de livre à succès est environ trois fois plus efficace (d'une certaine manière) qu'une couverture de livre qui ne se vend pas.
Clipping
Le bornement est une technique qui permet de minimiser l'influence des anomalies extrêmes. En bref, le recadrage limite généralement (réduit) la valeur des valeurs aberrantes à une valeur maximale spécifique. Le rognage est une idée étrange, mais pourtant, elle peut être très efficace.
Par exemple, imaginez un ensemble de données contenant une caractéristique nommée roomsPerPerson
, qui représente le nombre de pièces (nombre total de pièces divisé par le nombre d'occupants) pour différentes maisons. Le graphique suivant montre que plus de 99% des valeurs de la caractéristique sont conformes à une distribution normale (environ 1,8 de moyenne et 0,7 d'écart type). Toutefois, la fonctionnalité contient quelques valeurs aberrantes, dont certaines sont extrêmes:
Comment pouvez-vous minimiser l'influence de ces anomalies extrêmes ? Eh bien, l'histogramme ne correspond pas à une distribution uniforme, à une distribution normale ni à une distribution de loi de puissance. Que se passe-t-il si vous limitez ou coupez simplement la valeur maximale de roomsPerPerson
à une valeur arbitraire, disons 4,0 ?
Couper la valeur de la fonctionnalité à 4,0 ne signifie pas que votre modèle ignore toutes les valeurs supérieures à 4,0. Cela signifie plutôt que toutes les valeurs supérieures à 4,0 deviennent 4,0. Cela explique cette étrange colline, située à la valeur 4,0. Malgré cette colline, l'ensemble d'éléments mis à l'échelle est désormais plus utile que les données d'origine.
Attends une seconde ! Pouvez-vous vraiment réduire chaque valeur aberrante à un seuil supérieur arbitraire ? Lors de l'entraînement d'un modèle, oui.
Vous pouvez également couper les valeurs après avoir appliqué d'autres formes de normalisation. Par exemple, supposons que vous utilisiez la mise à l'échelle par score Z, mais que quelques valeurs aberrantes aient des valeurs absolues bien supérieures à 3. Dans ce cas, vous pouvez:
- Extrayez les scores Z supérieurs à 3 pour obtenir exactement 3.
- Coupez les scores Z inférieurs à -3 pour obtenir exactement -3.
Le recadrage empêche votre modèle d'indexer trop de données sans importance. Toutefois, certains écarts sont importants. Veillez donc à couper les valeurs avec précaution.
Résumé des techniques de normalisation
Technique de normalisation | Formule | Quand l'utiliser |
---|---|---|
Mise à l'échelle linéaire | $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ | Lorsque l'élément géographique est réparti de manière uniforme sur une plage fixe. |
Mise à l'échelle de la cote Z | $$ x' = \frac{x - μ}{σ}$$ | Lorsque la distribution des éléments géographiques ne contient pas d'écarts extrêmes. |
Mise à l'échelle logarithmique | $$ x' = log(x)$$ | Lorsque la fonctionnalité est conforme à la loi de puissance. |
Coupe | Si $x > max$, définir $x' = max$ Si $x < min$, définir $x' = min$ |
Lorsque l'élément contient des valeurs aberrantes extrêmes. |
Exercice: Testez vos connaissances
Supposons que vous développiez un modèle qui prédit la productivité d'un centre de données en fonction de la température mesurée à l'intérieur.
Presque toutes les valeurs temperature
de votre ensemble de données se situent entre 15 et 30 (Celsius), à quelques exceptions près:
- Une ou deux fois par an, lors de journées extrêmement chaudes, quelques valeurs comprises entre 31 et 45 sont enregistrées dans
temperature
. - Chaque 1 000e point de
temperature
est défini sur 1 000 au lieu de la température réelle.
Quelle technique de normalisation serait raisonnable pour temperature
?
Les valeurs de 1 000 correspondent à des erreurs et doivent être supprimées plutôt que tronquées.
Les valeurs comprises entre 31 et 45 sont des points de données légitimes. Le rognage est probablement une bonne idée pour ces valeurs, en supposant que l'ensemble de données ne contient pas suffisamment d'exemples dans cette plage de températures pour entraîner le modèle à effectuer des prédictions correctes. Toutefois, lors de l'inférence, notez que le modèle ébarbé effectue donc la même prédiction pour une température de 45 °C que pour une température de 35 °C.