Le binning (également appelé binning) est un
ingénierie des caractéristiques
qui regroupe différentes sous-plages numériques dans des classes ou
buckets :
Dans de nombreux cas, le binning transforme les données numériques en données catégorielles.
Prenons l'exemple d'une fonctionnalité.
nommé X
, dont la valeur la plus faible est 15 et
la valeur la plus élevée est 425. À l'aide du binning, vous pouvez représenter X
avec le
les cinq classes suivantes:
- Classe 1: 15 à 34
- Classe 2: 35 à 117
- Classe 3: 118 à 279
- Classe 4: 280 à 392
- Classe 5: 393 à 425
Le bin 1 couvre la plage 15 à 34, de sorte que chaque valeur de X
est comprise entre 15 et 34
se retrouve dans le bin 1. Un modèle entraîné sur ces classes ne réagira pas différemment
à X
des valeurs de 17 et 29, car les deux valeurs se trouvent dans le bin 1.
Le vecteur de caractéristiques représente les cinq bins comme suit:
Numéro de bin | Plage | Vecteur de caractéristiques |
---|---|---|
1 | 15-34 | [1.0, 0.0, 0.0, 0.0, 0.0] |
2 | 35-117 | [0.0, 1.0, 0.0, 0.0, 0.0] |
3 | 118-279 | [0,0, 0,0, 1,0, 0,0, 0,0] |
4 | 280-392 | [0,0, 0,0, 0,0, 1,0, 0,0] |
5 | 393-425 | [0,0, 0,0, 0,0, 0,0, 1,0] |
Même si X
est une colonne unique de l'ensemble de données, le binning entraîne le modèle
de traiter X
comme cinq caractéristiques distinctes. Par conséquent, le modèle apprend
des pondérations distinctes
pour chaque classe.
Le binning est une bonne alternative au scaling ou le clipping lorsque l'une des les conditions suivantes sont remplies:
- Relation linéaire globale entre la caractéristique et la label est faible ou inexistant.
- Lorsque les valeurs des caractéristiques sont mises en cluster.
Le binning peut sembler contre-intuitif, étant donné que le modèle dans l'exemple précédent traite les valeurs 37 et 115 de manière identique. Mais quand une caractéristique semble plus encombrante que linéaire, le binning est un bien meilleur moyen représentent les données.
Exemple de binning: nombre d'acheteurs par rapport à la température
Supposons que vous créez un modèle qui prédit le nombre clients en fonction de la température extérieure du jour. Voici un graphique des par rapport au nombre d'acheteurs:
![Figure 9. Un nuage de points de 45 points. Naturellement, les 45 points
en trois groupes.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers.png?authuser=5&hl=fr)
Le tracé montre, sans surprise, que le nombre d'acheteurs était le plus élevé lorsque la température était la plus agréable.
Vous pouvez représenter la caractéristique sous forme de valeurs brutes: une température de 35,0 dans la est de 35,0 dans le vecteur de caractéristiques. Est-ce la meilleure idée ?
Pendant l'entraînement, un modèle de régression linéaire apprend une seule pondération pour chaque . Par conséquent, si la température est représentée par une seule caractéristique, une température de 35,0 aurait cinq fois plus d'influence (ou un cinquième influence) dans une prédiction, sous la forme d'une température de 7,0. Cependant, le tracé ne montrent une relation linéaire entre l'étiquette la valeur de la caractéristique.
Le graphique suggère trois clusters dans les sous-plages suivantes:
- Le bin 1 est la plage de températures 4-11.
- Le bin 2 est la plage de températures 12-26.
- Le bin 3 est la plage de températures de 27 à 36.
![Figure 10 : Le même diagramme de dispersion de 45 points que le précédent
mais avec des lignes verticales
pour rendre les classes plus évidentes.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers_divided_into_3_bins.png?authuser=5&hl=fr)
Le modèle apprend des pondérations distinctes pour chaque bin.
Bien qu'il soit possible de créer plus de trois bins, même un bin distinct pour chaque température relevée, cette pratique est souvent déconseillée pour les raisons suivantes:
- Un modèle ne peut apprendre l'association entre un bin et une étiquette que s'il existe sont assez d'exemples dans cette classe. Dans l'exemple donné, chacune des trois classes contient au moins 10 exemples, ce qui peut suffire pour l'entraînement. Avec 33 bacs distincts, aucun des bins ne contiendrait suffisamment d'exemples pour l'entraînement du modèle.
- Un bin distinct pour chaque température donne 33 fonctionnalités de température distinctes. Toutefois, vous devez généralement minimiser le nombre de caractéristiques d'un modèle.
Exercice: tester vos connaissances
Le graphique suivant montre le prix médian d’une maison pour chaque 0,2 degré de latitude du pays mythique, la Freedonie:
![Figure 11 : Graphique des valeurs domestiques en fonction de la latitude. La maison la plus basse
la valeur est d’environ 327 et la
plus élevée est 712. Les latitudes s'étendent sur 41,0
à 44,8, avec un point représentant la valeur médiane d'un logement
0,2 degré de latitude. Le modèle est très irrégulier, mais avec
Deux clusters distincts (un cluster compris entre 41,0 et 41,8,
et un autre avec une latitude comprise entre 42,6 et 43,4).](https://developers.google.cn/static/machine-learning/crash-course/images/MedianHouseValueByLatitude.png?authuser=5&hl=fr)
Le graphique montre un schéma non linéaire entre la valeur du logement et la latitude. Il est donc peu probable que représenter la latitude comme sa valeur à virgule flottante pour qu'un modèle réalise de bonnes prédictions. Le binning des latitudes conviendrait peut-être idée ?
- 41,0 à 41,8
- 42,0 à 42,6
- 42,8 à 43,4
- 43,6 à 44,8
Binning de quantiles
Le binning par quantile crée des limites de binning de sorte que le nombre d'exemples dans chaque bucket est exactement ou presque égal. Le binning en quantiles cache principalement les anomalies.
Pour illustrer le problème que permet le binning en quantiles, prenons sont espacés de manière égale, comme illustré dans la figure suivante, où chaque bucket des dix catégories représente une portée de exactement 10 000 dollars. Notez que le bucket compris entre 0 et 10 000 contient des dizaines d'exemples mais le bucket de 50 000 à 60 000 ne contient que 5 exemples. Par conséquent, le modèle dispose de suffisamment d'exemples pour être entraîné sur la plage de 0 à 10 000 mais pas assez d'exemples pour l'entraînement du bucket de 50 000 à 60 000.
![Figure 13 Graphique du prix d'une voiture par rapport au nombre de voitures vendues à
ce prix. Le nombre de voitures vendues culmine à 6 000.
Au-dessus de 6 000, le nombre de voitures vendues en général
baisse, avec très peu de voitures vendues entre 40 000 et
60 000. Le tracé est divisé en 6 buckets de taille égale, chacun ayant
une plage de 10 000. Ainsi, le premier bucket contient
toutes les voitures vendues
entre 0 et 10 000, la seconde
bucket contient toutes les voitures vendues entre 10 001 et
20 000, etc. Le premier bucket contient de nombreux exemples. chaque
le bucket suivant contient moins d'exemples.](https://developers.google.cn/static/machine-learning/crash-course/images/NeedsQuantileBucketing.png?authuser=5&hl=fr)
À l'inverse, la figure suivante utilise le binning en quantiles pour diviser le prix des voitures. dans des bins contenant à peu près le même nombre d'exemples dans chaque bucket. Notez que certains segments incluent une fourchette de prix étroite, tandis que d'autres s'adressent à des prix très larges.
![Figure 14. Identique à la figure précédente, sauf avec des buckets de quantiles.
Autrement dit, les buckets ont maintenant des tailles différentes. Le premier bucket
contient les voitures vendues de 0 à 4 000, le deuxième contient
les voitures vendues de 4 001 à 6 000. Le sixième bucket contient
de 25 001 à 60 000 voitures. Nombre de voitures dans chaque bucket
est maintenant à peu près identique.](https://developers.google.cn/static/machine-learning/crash-course/images/QuantileBucketing.png?authuser=5&hl=fr)