K-NN con Più Caratteristiche
Scorri per mostrare il menu
Ora hai compreso come funziona k-NN con una singola caratteristica. Passiamo a un esempio leggermente più complesso che utilizza due caratteristiche: weight e width.
In questo caso, è necessario trovare i vicini in base a sia width che weight. Tuttavia, c'è un piccolo problema. Tracciamo i dolci e vediamo cosa non funziona:
Si può notare che il weight varia da 12 a 64, mentre il width è solo tra 5 e 12. Poiché l'intervallo di width è molto più piccolo, i dolci appaiono quasi allineati verticalmente. Se ora calcoliamo le distanze, rifletteranno principalmente le differenze di weight, come se non avessimo mai considerato width.
Esiste però una soluzione: scalare i dati.
Ora, sia il peso che la larghezza sono sulla stessa scala e centrati intorno a zero. Questo può essere ottenuto tramite la classe StandardScaler di sklearn. StandardScaler sottrae semplicemente la media del campione e poi divide il risultato per la deviazione standard del campione:
StandardScaler centra i dati intorno allo zero. Sebbene il centraggio non sia obbligatorio per k-NN e possa generare confusione, come ad esempio "come può il peso essere negativo", è semplicemente un modo per presentare i dati a un computer. Alcuni modelli richiedono il centraggio, quindi utilizzare StandardScaler per la scalatura di default è consigliabile.
In realtà, è sempre opportuno scalare i dati prima di utilizzare k-Nearest Neighbors. Con i dati scalati, ora possiamo trovare i vicini:
Nel caso di due caratteristiche, k-NN definisce un vicinato circolare che contiene il numero desiderato di vicini. Con tre caratteristiche, questo diventa una sfera. In dimensioni superiori, il vicinato assume una forma più complessa che non può essere visualizzata, ma i calcoli sottostanti rimangono invariati.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione