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

bookK-NN con Più Caratteristiche

Ora hai compreso come funziona 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 funziona:

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.

Esiste però una soluzione: scalare i dati.

Ora sia il peso che la larghezza sono sulla stessa scala e centrati intorno allo 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 attorno allo zero. Sebbene il centraggio non sia obbligatorio per k-NN e possa generare confusione, come "come può il peso essere negativo", si tratta semplicemente di un modo per presentare i dati a un computer. Alcuni modelli richiedono il centraggio, quindi è consigliabile utilizzare StandardScaler per la scalatura di default.

In realtà, è sempre necessario 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 intorno circolare contenente il numero desiderato di vicini. Con tre caratteristiche, questo diventa una sfera. In dimensioni superiori, l'intorno assume una forma più complessa che non può essere visualizzata, ma i calcoli sottostanti rimangono invariati.

question mark

Scegli l'affermazione corretta.

Select the correct answer

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

Awesome!

Completion rate improved to 4.17

bookK-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: 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 funziona:

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.

Esiste però una soluzione: scalare i dati.

Ora sia il peso che la larghezza sono sulla stessa scala e centrati intorno allo 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 attorno allo zero. Sebbene il centraggio non sia obbligatorio per k-NN e possa generare confusione, come "come può il peso essere negativo", si tratta semplicemente di un modo per presentare i dati a un computer. Alcuni modelli richiedono il centraggio, quindi è consigliabile utilizzare StandardScaler per la scalatura di default.

In realtà, è sempre necessario 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 intorno circolare contenente il numero desiderato di vicini. Con tre caratteristiche, questo diventa una sfera. In dimensioni superiori, l'intorno assume una forma più complessa che non può essere visualizzata, ma i calcoli sottostanti rimangono invariati.

question mark

Scegli l'affermazione corretta.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3
some-alt