Données numériques: normalisation

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éristique A.
  • 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ée net_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.
Figure 4. Deux histogrammes: les deux présentent des distributions normales avec une distribution identique. Le premier histogramme, qui contient des données brutes, a une moyenne de 200 et une déviation standard de 30. Le deuxième histogramme, qui contient une version en score Z de la première distribution, présente une moyenne de 0 et un écart type de 1.
Figure 4. Données brutes (à gauche) par rapport au score Z (à droite) pour une distribution normale.

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.

Figure 5. Deux histogrammes de forme identique, chacun montrant une montée abrupte vers un plateau, puis une descente relativement rapide suivie d'une décroissance progressive. L'un des histogrammes illustre la distribution des données brutes, et l'autre la distribution des données brutes lorsqu'elles sont normalisées par la mise à l'échelle du score Z.
            Les valeurs sur l'axe X des deux histogrammes sont très différentes.
            L'histogramme de données brutes s'étend sur le domaine 0 à 29 000,tandis que l'histogramme basé sur la note Z s'étend de -1 à environ +4, 8.
Figure 5 : Données brutes (à gauche) par rapport à la mise à l'échelle du score Z (à droite) pour une distribution normale non classique.

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ée height, 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 de Y.
  • À mesure que les valeurs de X augmentent, celles de Y diminuent rapidement. Par conséquent, les valeurs élevées de X correspondent à des valeurs très faibles de Y.

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 de Y.)
  • 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 de Y.)

La mise à l'échelle logarithmique modifie la distribution, ce qui permet d'entraîner un modèle qui effectue de meilleures prédictions.

Figure 6. Deux graphiques comparant les données brutes au journal des données brutes.
            Le graphique des données brutes affiche de nombreuses notes d'utilisateurs dans la tête, suivies d'une longue traîne. Le graphique du journal présente une répartition plus uniforme.
Figure 6 : Comparer une distribution brute à son journal

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:

Figure 7. Représentation graphique de roomsPerPerson (nombre de pièces par personne), dans laquelle pratiquement toutes les valeurs sont regroupées entre 0 et 4, mais avec une très longue file de valeurs s'étendant jusqu'à 17 pièces par personne
Figure 7. Principalement normal, mais pas complètement.

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 ?

Représentation graphique de roomsPerPerson, dans laquelle toutes les valeurs sont comprises entre 0 et 4,0 La courbe est en cloche, avec une anomalie : une bosse à 4,0.
Figure 8 : Coupe des valeurs des éléments géographiques à 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 normalisationFormuleQuand 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

Quelle technique est la plus adaptée pour normaliser une caractéristique avec la distribution suivante ?

Histogramme montrant un cluster de données avec des valeurs comprises entre 0 et 200 000. Le nombre de points de données augmente progressivement de 0 à 100 000, puis diminue progressivement de 100 000 à 200 000.

Mise à l'échelle de la cote Z
Les points de données sont généralement conformes à une distribution normale. La mise à l'échelle du score Z les force donc à se situer dans la plage de –3 à +3.
Mise à l'échelle linéaire
Consultez les discussions sur les techniques de normalisation de cette page, puis réessayez.
Mise à l'échelle logarithmique
Consultez les discussions sur les techniques de normalisation sur cette page, puis réessayez.
Coupe
Consultez les discussions sur les techniques de normalisation de cette page, puis réessayez.

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 ?

Coupez les valeurs aberrantes comprises entre 31 et 45, mais supprimez les valeurs aberrantes de 1 000.

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.

Couper toutes les valeurs aberrantes
Consultez les discussions sur les techniques de normalisation présentées sur cette page, puis réessayez.
Supprimer toutes les valeurs aberrantes
Consultez les discussions sur les techniques de normalisation de cette page, puis réessayez.
Supprimez les valeurs aberrantes comprises entre 31 et 45, mais coupez les valeurs aberrantes avec une valeur de 1 000.
Consultez les discussions sur les techniques de normalisation sur cette page, puis réessayez.