K-NN con Più Caratteristiche
Ora hai compreso come funziona il k-NN con una singola caratteristica. Passiamo a un esempio leggermente più complesso che utilizza due caratteristiche: peso e larghezza.
In questo caso, è necessario trovare i vicini in base sia alla larghezza che al peso. Tuttavia, c'è un piccolo problema. Tracciamo i dolci e vediamo cosa non va:
Si può notare che il peso varia da 12 a 64, mentre la larghezza è solo tra 5 e 12. Poiché l'intervallo della larghezza è molto più piccolo, i dolci appaiono quasi allineati verticalmente. Se ora calcoliamo le distanze, rifletteranno principalmente le differenze di peso, come se non avessimo mai considerato la larghezza.
Tuttavia, esiste 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 attorno allo zero. Sebbene la centratura non sia obbligatoria per k-NN e possa generare confusione, come "come può il peso essere negativo", è semplicemente un modo per presentare i dati a un computer. Alcuni modelli richiedono la centratura, quindi è consigliabile utilizzare StandardScaler per la scalatura di default.
In realtà, si dovrebbe sempre 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 contenente 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
Fantastico!
Completion tasso migliorato a 3.33
K-NN con Più Caratteristiche
Scorri per mostrare il menu
Ora hai compreso come funziona il k-NN con una singola caratteristica. Passiamo a un esempio leggermente più complesso che utilizza due caratteristiche: peso e larghezza.
In questo caso, è necessario trovare i vicini in base sia alla larghezza che al peso. Tuttavia, c'è un piccolo problema. Tracciamo i dolci e vediamo cosa non va:
Si può notare che il peso varia da 12 a 64, mentre la larghezza è solo tra 5 e 12. Poiché l'intervallo della larghezza è molto più piccolo, i dolci appaiono quasi allineati verticalmente. Se ora calcoliamo le distanze, rifletteranno principalmente le differenze di peso, come se non avessimo mai considerato la larghezza.
Tuttavia, esiste 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 attorno allo zero. Sebbene la centratura non sia obbligatoria per k-NN e possa generare confusione, come "come può il peso essere negativo", è semplicemente un modo per presentare i dati a un computer. Alcuni modelli richiedono la centratura, quindi è consigliabile utilizzare StandardScaler per la scalatura di default.
In realtà, si dovrebbe sempre 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 contenente 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!