Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara K-NN con Più Caratteristiche | Classificatore K-Nn
Classificazione con Python

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:

TwoFeatureNN1

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.

TwoFeatureNNScaled

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:

Xscaled=XxˉsX_{scaled} = \frac{X - \bar x}{s}

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:

TwoFeatureNN

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.

question mark

Scegli l'affermazione corretta.

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 1. Capitolo 3
some-alt