Bucketing

Iniziamo con una rapida revisione di un'idea chiave del corso di arresto anomalo di machine learning. Osserva la distribuzione nel grafico qui sotto.

Un appezzamento di case per latitudine. La trama è altamente irregolare, in quanto contiene tamburi intorno alla latitudine 36 ed enormi picchi intorno alle latitudini 34 e 38. Figura 1: prezzi delle case rispetto alla latitudine.

 

Per la seguente domanda, fai clic sulla freccia desiderata per controllare la tua risposta:

Considera la Figura 1. Se ritieni che la latitudine possa essere un buon predittore dei valori degli alloggi, dovresti lasciare la latitudine come valore in virgola mobile? Come mai? Supponiamo che si tratti di un modello lineare.
Sì: se la latitudine è un valore in virgola mobile nel set di dati, non devi modificarla.
Se inserisci tali valori in virgola mobile nella rete, proverà a apprendere una relazione lineare tra la funzionalità e l'etichetta. Tuttavia, non è probabile che una relazione lineare sia latitudine. Un aumento di un grado della latitudine (ad esempio, da 34 a 35 gradi) può produrre una certa quantità di variazioni nell'output del modello, mentre un diverso aumento di un grado (ad esempio, da 35 a 36 gradi) può produrre una quantità di cambiamento diversa. Si tratta di un comportamento non lineare.
No, non c'è alcuna relazione lineare tra la latitudine e i valori degli alloggi.
Hai il sospetto che i singoli valori di latitudine e alloggio siano correlati, ma la relazione non è lineare.

In casi come l'esempio della latitudine, devi dividere le latitudini in bucket per ottenere informazioni diverse sui valori degli alloggi per ciascun bucket. Questa trasformazione di funzionalità numeriche in caratteristiche categoriche, utilizzando un insieme di soglie, è chiamata bucketing (o binding). In questo esempio di bucket, i confini sono equidistanti.

Lo stesso grafico di latitudine e quello dei prezzi degli alloggi indicati nella cifra precedente. Questa volta, tuttavia, la trama è suddivisa in 11 "bins"tra
numero intero di latitudini.

 

Figura 2: prezzi delle case e latitudine, ora suddivisi in bucket.

Bucket quantile

Rivediamo il nostro set di dati sui prezzi delle auto con i bucket aggiunti. Con una funzionalità per bucket, il modello utilizza quanta capacità per un singolo esempio nell'intervallo >45000 quanto per tutti gli esempi nell'intervallo 5000-10000. che sembra uno spreco. Come potremmo migliorare la situazione?

Un grafico del prezzo per numero di auto vendute a quel prezzo. La trama è suddivisa in 10 bucket di dimensioni uguali con un intervallo di 5000 (prezzo dell'auto). I primi tre bucket contengono molti esempi, ma gli ultimi sette bucket contengono pochi esempi.

Figura 3: numero di auto vendute a prezzi diversi.

 

Il problema è che i bucket con spaziatura uniforme non acquisiscono bene questa distribuzione. La soluzione consiste nel creare bucket che abbiano lo stesso numero di punti. Questa tecnica è chiamata bucket quantile. Ad esempio, la seguente figura divide i prezzi delle auto in bucket quantili. Per ottenere lo stesso numero di esempi in ciascun bucket, alcuni bucket comprendono una sezione di prezzi ristretta, mentre altri includono un intervallo di prezzi molto ampio.

Come nella Figura 3, tranne che per i bucket quantili. Questo significa che i bucket ora hanno dimensioni diverse. Il bucket più piccolo ha una gamma di circa 1000 dollari e il bucket più grande ha una gamma di circa 25.000 dollari.
Il numero di auto in ogni bucket è ora più o meno uguale.

Figura 4: il bucket quantile fornisce a ogni bucket lo stesso numero di auto.

Riepilogo bucket

Se scegli di bucket per le tue funzionalità numeriche, spiega chiaramente come imposti i limiti e il tipo di bucket che stai applicando:

  • Bucket con limiti equidistanti: i limiti sono fissi e comprendono lo stesso intervallo (ad esempio 0-4 gradi, 5-9 gradi e 10-14 gradi oppure 5000 $ 9999, $ 10.000-14.999 $ e 15.000 $-19.999 $). Alcuni bucket potrebbero contenere molti punti, mentre altri potrebbero averne pochi o nessuno.
  • Bucket con limiti quantici: ogni bucket ha lo stesso numero di punti. I limiti non sono fissi e potrebbero includere un intervallo di valori ristretto o ampio.