Il binning (chiamato anche bucketing) è un
feature engineering
tecnica che raggruppa diversi sottointervalli numerici in bin o
bucket.
In molti casi, il binning trasforma i dati numerici in dati categorici.
Ad esempio, considera una caratteristica
denominato X
, il cui valore più basso è 15
il valore più alto è 425. Utilizzando il binning, potresti rappresentare X
con il
dopo cinque bin:
- Fascia 1: da 15 a 34
- Fascia 2: da 35 a 117
- Fascia 3: da 118 a 279
- Fascia 4: da 280 a 392
- Fascia 5: da 393 a 425
Il bin 1 comprende l'intervallo da 15 a 34, quindi ogni valore di X
compreso tra 15 e 34
finisce nello spazio 1. Un modello addestrato su questi bin non reagirà in modo diverso
a X
valori di 17 e 29 poiché entrambi i valori si trovano nella fascia 1.
Il vettore di caratteristiche rappresenta i cinque bin come segue:
Numero bin | Intervallo | Vettore di caratteristiche |
---|---|---|
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] |
Anche se X
è una singola colonna nel set di dati, il binning fa sì che il modello
per trattare X
come cinque caratteristiche separate. Di conseguenza, il modello apprende
pesi separati per ogni fascia.
Il binning è una buona alternativa alla scalabilità. o clip quando uno dei due le seguenti condizioni sono soddisfatte:
- La relazione lineare complessiva tra la caratteristica e label: è debole o inesistente.
- Quando i valori delle caratteristiche sono in cluster.
Il binning può sembrare controintuitivo, dato che il modello nell'esempio precedente i valori 37 e 115 sono identici. Ma quando una caratteristica appare più compresa rispetto alla linea, il binning è un modo molto migliore per rappresentano i dati.
Esempio di binning: numero di acquirenti rispetto alla temperatura
Supponi di dover creare un modello che prevede il numero gli acquirenti in base alla temperatura esterna per quel giorno. Ecco un grafico della temperatura rispetto al numero di acquirenti:
![Figura 9. Un grafico a dispersione di 45 punti. Naturalmente i 45 punti
in tre gruppi.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers.png?authuser=7&hl=it)
La trama mostra, non sorprende, che il numero di acquirenti sia stato più alto quando la temperatura era più confortevole.
È possibile rappresentare la caratteristica come valori non elaborati: una temperatura di 35,0 nel sarebbe 35,0 nel vettore di caratteristiche. È l'idea migliore?
Durante l'addestramento, un modello di regressione lineare apprende un singolo peso per ogni funzionalità. Pertanto, se la temperatura è rappresentata come una singola caratteristica, allora una temperatura di 35,0 avrebbe cinque volte l'influenza (o un quinto del influenzale) in una previsione come una temperatura di 7,0. Tuttavia, la trama non mostrare qualsiasi tipo di relazione lineare tra l'etichetta e valore della caratteristica.
Il grafico suggerisce tre cluster nei seguenti sottointervalli:
- Lo scomparto 1 è l'intervallo di temperatura da 4 a 11.
- Lo scomparto 2 è l'intervallo di temperatura 12-26.
- Lo scomparto 3 è l'intervallo di temperatura 27-36.
![Figura 10. Lo stesso grafico a dispersione di 45 punti dell'esempio precedente
ma con linee verticali per rendere le fasce più evidenti.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers_divided_into_3_bins.png?authuser=7&hl=it)
Il modello apprende pesi separati per ogni fascia.
Sebbene sia possibile creare più di tre bin, anche uno separato per lettura di ogni temperatura, spesso questa è una cattiva idea per i seguenti motivi:
- Un modello può apprendere l'associazione tra un contenitore e un'etichetta solo se sono presenti ci sono abbastanza esempi in quella barra. Nell'esempio, ognuno dei 3 bin contiene almeno 10 esempi, che potrebbero essere sufficienti per l'addestramento. Con 33 bin separati, nessuno dei bin conterrà abbastanza esempi per l'addestramento del modello.
- Una convezione separata per ogni temperatura genera 33 funzionalità separate per la temperatura. Tuttavia, in genere dovresti ridurre al minimo il numero di caratteristiche in un modello.
Allenamento: verifica le tue conoscenze
Il seguente grafico mostra il prezzo medio di una casa per ogni 0,2 gradi di latitudine del mitico paese della Freedonia:
![Figura 11. Un grafico con i valori della casa per latitudine. La casa più bassa
è circa 327, mentre il più alto è 712. Le latitudini coprono 41,0
a 44,8, con un punto che rappresenta il valore medio della casa per ogni
0,2 gradi di latitudine. Il pattern è molto irregolare, ma con
due cluster distinti (un cluster tra le latitudine 41.0 e 41.8,
e un altro ammasso tra le latitudini 42,6 e 43,4).](https://developers.google.cn/static/machine-learning/crash-course/images/MedianHouseValueByLatitude.png?authuser=7&hl=it)
L'immagine mostra uno schema non lineare tra il valore della casa e la latitudine, pertanto è improbabile che rappresentare la latitudine come valore in virgola mobile un modello può fare buone previsioni. Forse raggruppare le latitudini sarebbe meglio idea?
- Da 41,0 a 41,8
- Da 42,0 a 42,6
- Da 42,8 a 43,4
- Da 43,6 a 44,8
Bucketing dei quantili
Il bucketing dei quantili crea limiti di bucketing in modo che il numero di esempi in ciascun bucket è esattamente o quasi uguale. Bucketing dei quantili nasconde perlopiù i valori anomali.
Per illustrare il problema che viene risolto dal bucketing dei quantili, considera la con la stessa spaziatura mostrata nella figura seguente, in cui dei dieci bucket rappresenta un intervallo di esattamente 10.000 dollari. Nota che il bucket da 0 a 10.000 contiene decine di esempi ma il bucket da 50.000 a 60.000 contiene solo 5 esempi. Di conseguenza, il modello ha un numero sufficiente di esempi per l’addestramento da 0 a 10.000 ma non ci sono abbastanza esempi su cui eseguire l'addestramento per il bucket da 50.000 a 60.000.
![Figura 13. Un grafico del prezzo di un'auto rispetto al numero di auto vendute a
a quel prezzo. Il numero di auto vendute raggiunge il valore massimo di 6000.
Al di sopra di un prezzo di 6.000, il numero di auto vendute generalmente
diminuisce, con pochissime auto vendute tra un prezzo di 40.000 e
60.000. Il grafico è diviso in 6 bucket di uguali dimensioni, ognuno con
un intervallo di 10.000. Il primo bucket contiene tutte le auto vendute
tra un prezzo di 0 e un prezzo di 10.000, la seconda
un bucket contiene tutte le auto vendute tra un prezzo di 10.001 e
20.000 e così via. Il primo bucket contiene molti esempi; ognuno
bucket successivo contiene meno esempi.](https://developers.google.cn/static/machine-learning/crash-course/images/NeedsQuantileBucketing.png?authuser=7&hl=it)
Al contrario, la figura seguente utilizza il bucketing dei quantili per dividere i prezzi delle auto in bin con circa lo stesso numero di esempi in ciascun bucket. Nota che alcune fasce di prezzo prevedono un intervallo di prezzo ristretto, mentre altre prevedono una fascia di prezzo molto ampia.
![Figura 14. Come il valore precedente, tranne che per i bucket di quantili.
In altre parole, i bucket ora hanno dimensioni diverse. Il primo bucket
contiene le auto vendute da 0 a 4.000, il secondo bucket contiene
le auto vendute da 4.001 a 6.000. Il sesto bucket contiene
auto vendute da 25.001 a 60.000. Il numero di automobili in ciascun segmento
ora è più o meno uguale.](https://developers.google.cn/static/machine-learning/crash-course/images/QuantileBucketing.png?authuser=7&hl=it)