mozzicone Cos'è un KNN (K-Nearest Neighbors)? - Unite.AI
Seguici sui social
Corso di perfezionamento sull'intelligenza artificiale:

AI 101

Cos'è un KNN (K-Nearest Neighbors)?

mm
aggiornato on

Che cos'è K-Nearest Neighbours (KNN)?

K-Nearest Neighbours è una tecnica e un algoritmo di apprendimento automatico che può essere utilizzato sia per attività di regressione che di classificazione. K-vicini più vicini esamina le etichette di un numero scelto di punti dati che circonda un punto dati di destinazione, al fine di fare una previsione sulla classe in cui ricade il punto dati. K-Nearest Neighbors (KNN) è un algoritmo concettualmente semplice ma molto potente e, per questi motivi, è uno degli algoritmi di apprendimento automatico più popolari. Facciamo un tuffo nell'algoritmo KNN e vediamo esattamente come funziona. Avere una buona comprensione di come funziona KNN ti consentirà di apprezzare i casi d'uso migliori e peggiori per KNN.

Panoramica di K-Nearest Neighbours (KNN)

Foto: Antti Ajanki AnAj tramite Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Visualizziamo un set di dati su un piano 2D. Immagina una serie di punti dati su un grafico, distribuiti lungo il grafico in piccoli gruppi. KNN esamina la distribuzione dei punti dati e, a seconda degli argomenti forniti al modello, separa i punti dati in gruppi. A questi gruppi viene quindi assegnata un'etichetta. Il presupposto principale di un modello KNN è che i punti dati/le istanze che esistono in prossimità l'uno dell'altro sono molto simili, mentre se un punto dati è lontano da un altro gruppo è diverso da quei punti dati.

Un modello KNN calcola la somiglianza utilizzando la distanza tra due punti su un grafico. Maggiore è la distanza tra i punti, meno simili sono. Esistono diversi modi per calcolare la distanza tra punti, ma la metrica di distanza più comune è solo la distanza euclidea (la distanza tra due punti in una linea retta).

KNN è un algoritmo di apprendimento supervisionato, il che significa che agli esempi nel set di dati devono essere assegnate etichette/le loro classi devono essere note. Ci sono altre due cose importanti da sapere su KNN. Innanzitutto, KNN è un algoritmo non parametrico. Ciò significa che non vengono fatte ipotesi sul set di dati quando viene utilizzato il modello. Piuttosto, il modello è costruito interamente dai dati forniti. In secondo luogo, non è possibile suddividere il set di dati in set di addestramento e test quando si utilizza KNN. KNN non effettua generalizzazioni tra un set di addestramento e un set di test, quindi tutti i dati di addestramento vengono utilizzati anche quando al modello viene chiesto di fare previsioni.

Come funziona un algoritmo KNN

Un algoritmo KNN passa attraverso tre fasi principali mentre viene eseguito:

  1. Impostando K sul numero scelto di vicini.
  2. Calcolo della distanza tra un esempio fornito/test e gli esempi di set di dati.
  3. Ordinamento delle distanze calcolate.
  4. Ottenere le etichette delle prime voci K.
  5. Restituzione di una previsione sull'esempio di test.

Nella prima fase, K viene scelto dall'utente e indica all'algoritmo quanti vicini (quanti punti dati circostanti) devono essere considerati quando si esprime un giudizio sul gruppo a cui appartiene l'esempio target. Nella seconda fase, si noti che il modello controlla la distanza tra l'esempio di destinazione e ogni esempio nel set di dati. Le distanze vengono quindi aggiunte in un elenco e ordinate. Successivamente, viene controllato l'elenco ordinato e vengono restituite le etichette per i primi K elementi. In altre parole, se K è impostato su 5, il modello controlla le etichette dei primi 5 punti dati più vicini al punto dati di destinazione. Quando si esegue il rendering di una previsione sul punto dati di destinazione, è importante se l'attività è a regressione or classificazione compito. Per un'attività di regressione, viene utilizzata la media delle prime K etichette, mentre la modalità delle prime K etichette viene utilizzata nel caso della classificazione.

Le operazioni matematiche esatte utilizzate per eseguire KNN differiscono a seconda della metrica di distanza scelta. Se desideri saperne di più su come vengono calcolate le metriche, puoi leggere alcune delle metriche di distanza più comuni, come euclideo, Manhattane Minkowski.

Perché il valore di K è importante

La limitazione principale quando si utilizza KNN è che in un valore improprio di K (il numero errato di vicini da considerare) potrebbe essere scelto. Se ciò accade, le previsioni restituite possono essere sostanzialmente sbagliate. È molto importante che, quando si utilizza un algoritmo KNN, venga scelto il valore corretto per K. Vuoi scegliere un valore per K che massimizzi la capacità del modello di fare previsioni su dati non visibili riducendo al contempo il numero di errori che fa.

Foto: Agor153 tramite Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Valori più bassi di K indicano che le previsioni fornite dal KNN sono meno stabili e affidabili. Per avere un'idea del motivo per cui è così, considera un caso in cui abbiamo 7 vicini attorno a un punto dati target. Supponiamo che il modello KNN funzioni con un valore K di 2 (gli stiamo chiedendo di guardare i due vicini più vicini per fare una previsione). Se la stragrande maggioranza dei vicini (cinque su sette) appartiene alla classe Blue, ma i due vicini più vicini sono semplicemente Red, il modello prevede che l'esempio di query sia Red. Nonostante l'ipotesi del modello, in uno scenario del genere il blu sarebbe un'ipotesi migliore.

Se questo è il caso, perché non scegliere semplicemente il valore K più alto che possiamo? Questo perché dire al modello di considerare troppi vicini ridurrà anche la precisione. Man mano che il raggio che il modello KNN considera aumenta, alla fine inizierà a considerare i punti dati più vicini ad altri gruppi di quanto non siano il punto dati di destinazione e inizierà a verificarsi una classificazione errata. Ad esempio, anche se il punto scelto inizialmente si trovava in una delle regioni rosse sopra, se K fosse impostato su un valore troppo alto, il modello raggiungerebbe le altre regioni per considerare i punti. Quando si utilizza un modello KNN, vengono provati diversi valori di K per vedere quale valore offre al modello le migliori prestazioni.

KNN Pro e contro

Esaminiamo alcuni dei pro e dei contro del modello KNN.

PRO:

KNN può essere utilizzato sia per attività di regressione che di classificazione, a differenza di altri algoritmi di apprendimento supervisionato.

KNN è estremamente preciso e semplice da usare. È facile da interpretare, capire e implementare.

KNN non fa ipotesi sui dati, il che significa che possono essere utilizzati per un'ampia varietà di problemi.

Contro:

KNN memorizza la maggior parte o tutti i dati, il che significa che il modello richiede molta memoria ed è computazionalmente costoso. I set di dati di grandi dimensioni possono anche far sì che le previsioni richiedano molto tempo.

KNN si dimostra molto sensibile alla scala del set di dati e può essere scartato da caratteristiche irrilevanti abbastanza facilmente rispetto ad altri modelli.

Riepilogo dei vicini K-Nearest (KNN)

K-Nearest Neighbors è uno degli algoritmi di apprendimento automatico più semplici. Nonostante quanto sia semplice KNN, in teoria, è anche un potente algoritmo che offre una precisione piuttosto elevata sulla maggior parte dei problemi. Quando usi KNN, assicurati di sperimentare vari valori di K per trovare il numero che fornisce la massima precisione.

Blogger e programmatore con specialità in machine Learning ed Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.