Glossario

K-Nearest Neighbors (KNN)

Scopri come K-Nearest Neighbors (KNN) semplifica l'apprendimento automatico con il suo approccio intuitivo e non parametrico per le attività di classificazione e regressione.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Il K-Nearest Neighbors (KNN) è un algoritmo fondamentale nell'apprendimento automatico (ML), utilizzato per compiti di classificazione e regressione. Si distingue per la sua semplicità e l'approccio intuitivo, che lo rendono un ottimo punto di partenza per comprendere l'apprendimento basato sulle istanze. Il KNN è classificato come metodo non parametrico perché non fa ipotesi sulla distribuzione dei dati sottostanti. È anche conosciuto come un algoritmodi "apprendimento pigro" perché non costruisce un modello generale durante la fase di formazione dei dati; al contrario, memorizza l'intero set di dati ed esegue i calcoli solo quando è necessaria una previsione.

Come funziona KNN

L'idea alla base del KNN si basa sulla somiglianza, spesso definita utilizzando metriche di distanza come la distanza euclidea. Quando si prevede un nuovo punto di dati non visto, l'algoritmo identifica i "K" punti di dati più vicini (vicini) ad esso dal set di dati di formazione memorizzati. Il valore "K" è un numero intero definito dall'utente e rappresenta il numero di vicini considerati.

Per la classificazione, il nuovo punto viene assegnato alla classe più comune tra i K vicini (voto a maggioranza). Per la regressione, la previsione è tipicamente il valore medio dei K vicini. La scelta della metrica della distanza (ad esempio, Manhattan, Minkowski) e il valore di "K" sono iperparametri cruciali che influenzano in modo significativo le prestazioni del modello. Un'implementazione efficiente si affida spesso a strutture di dati come gli alberi KD o gli alberi di Ball per velocizzare la ricerca dei vicini, soprattutto in caso di set di dati più grandi.

Scegliere il valore di 'K'

La selezione del valore ottimale di "K" è fondamentale. Un valore di "K" piccolo (ad esempio, K=1) rende il modello molto sensibile al rumore e ai valori anomali dei dati, portando potenzialmente a un overfitting, in cui il modello si comporta bene sui dati di addestramento ma male sui dati non visti. Al contrario, un valore di "K" elevato può rendere i confini decisionali troppo morbidi, rendendo il modello meno sensibile ai modelli locali e portando potenzialmente a un underfitting e a un elevato costo computazionale durante la predizione. Tecniche come la convalida incrociata (vedi la Guida alla convalida incrociata di Scikit-learn) sono spesso utilizzate per trovare un valore 'K' adatto che bilanci il compromesso bias-varianza. La libreria Scikit-learn fornisce strumenti per implementare KNN ed eseguire ricerche di iperparametri; puoi trovare suggerimenti generali nella Guida alla regolazione degli iperparametriUltralytics .

Applicazioni di KNN

La semplicità di KNN si presta a diverse applicazioni, in particolare quando l'interpretabilità è importante:

Vantaggi e svantaggi di KNN

KNN offre diversi vantaggi ma presenta anche delle limitazioni:

Vantaggi:

Svantaggi:

KNN vs. concetti correlati

È importante distinguere KNN dagli altri algoritmi:

Mentre KNN è utile per alcuni compiti e per comprendere i concetti fondamentali del ML, problemi complessi come il rilevamento di oggetti in tempo reale spesso traggono vantaggio da modelli più avanzati come Ultralytics YOLOche offrono velocità e prestazioni superiori, soprattutto su dataset di computer vision di grandi dimensioni. Puoi addestrare e distribuire questi modelli utilizzando piattaforme come Ultralytics HUB.

Leggi tutto