Sintonizzati su YOLO Vision 2025!
25 settembre 2025
10:00 — 18:00 BST
Evento ibrido
Yolo Vision 2024
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 task di classificazione e regressione.

K-Nearest Neighbors (KNN) è un algoritmo fondamentale di apprendimento supervisionato utilizzato sia per attività di classificazione che di regressione. È considerato un algoritmo instance-based o di "lazy learning" perché non costruisce un modello durante la fase di training data. Invece, memorizza l'intero set di dati ed effettua previsioni trovando le 'K' istanze (vicini) più simili nei dati memorizzati. L'idea di base è che punti dati simili esistano in stretta prossimità. Per un nuovo punto dati non classificato, KNN identifica i suoi vicini più prossimi e utilizza le loro etichette per determinare la propria classificazione o valore.

Come funziona KNN?

L'algoritmo KNN si basa su un semplice principio di similarità, tipicamente misurata da una metrica di distanza. La più comune è la distanza euclidea, sebbene si possano usare altre metriche a seconda del dataset.

Il processo per fare una previsione è semplice:

  1. Scegliere il valore di K: Il numero di vicini (K) da considerare è un iperparametro fondamentale. La scelta di K può influenzare significativamente le prestazioni del modello.
  2. Calcola le distanze: Per un nuovo punto dati, l'algoritmo calcola la distanza tra esso e ogni altro punto nel dataset di training.
  3. Identificazione dei vicini: identifica i K punti dati del set di addestramento più vicini al nuovo punto. Questi sono i "vicini più prossimi".
  4. Effettua una previsione:
    • Per le attività di classificazione, l'algoritmo esegue un voto a maggioranza. Al nuovo punto dati viene assegnata la classe più comune tra i suoi K vicini più prossimi. Ad esempio, se K=5 e tre vicini sono di Classe A e due sono di Classe B, il nuovo punto viene classificato come Classe A.
    • Per le attività di regressione, l'algoritmo calcola la media dei valori dei suoi K vicini più prossimi. Questa media diventa il valore previsto per il nuovo punto dati.

Applicazioni nel mondo reale

La semplicità e la natura intuitiva di KNN lo rendono utile in varie applicazioni, specialmente come modello di base.

  • Sistemi di raccomandazione: KNN è una scelta popolare per la costruzione di motori di raccomandazione. Ad esempio, un servizio di streaming può consigliare film a un utente identificando altri utenti (vicini) con storie di visualizzazione simili. I film apprezzati da questi vicini, che l'utente target non ha visto, vengono quindi consigliati. Questa tecnica è una forma di filtraggio collaborativo.
  • Servizi finanziari: In finanza, KNN può essere utilizzato per la valutazione del credito. Confrontando un nuovo richiedente di prestito con un database di richiedenti precedenti con esiti creditizi noti, l'algoritmo può prevedere se è probabile che il nuovo richiedente diventi inadempiente. I vicini sono richiedenti precedenti con profili finanziari simili (ad esempio, età, reddito, livello di debito) e la loro storia di inadempienza informa la previsione. Questo aiuta ad automatizzare le valutazioni iniziali del rischio.

KNN vs. Concetti correlati

È importante distinguere KNN da altri algoritmi comuni di machine learning:

  • K-Means Clustering: Sebbene i nomi siano simili, le loro funzioni sono molto diverse. K-Means è un algoritmo di apprendimento non supervisionato utilizzato per partizionare i dati in K sottogruppi distinti e non sovrapposti (cluster). KNN, al contrario, è un algoritmo supervisionato utilizzato per la previsione basata su dati etichettati.
  • Macchina a vettori di supporto (SVM): SVM è un algoritmo supervisionato che cerca di trovare il miglior iperpiano possibile che separi diverse classi nello spazio delle caratteristiche. Mentre KNN prende decisioni basate sulla somiglianza del vicino locale, SVM mira a trovare un confine ottimale globale, rendendolo fondamentalmente diverso nel suo approccio. Maggiori dettagli sono disponibili sulla pagina SVM di Scikit-learn.
  • Alberi Decisionali: Un albero decisionale classifica i dati creando un modello di decisioni gerarchiche basate su regole. Ciò si traduce in una struttura ad albero, mentre KNN si basa sulla somiglianza basata sulla distanza senza apprendere regole esplicite. Puoi saperne di più nella documentazione sugli alberi decisionali di Scikit-learn.

Sebbene KNN sia uno strumento prezioso per comprendere i concetti fondamentali del machine learning e per l'uso su set di dati più piccoli e ben curati, può essere computazionalmente intensivo per l'inferenza in tempo reale con i big data. Per attività complesse di computer vision come il rilevamento di oggetti in tempo reale, sono preferiti modelli più avanzati come Ultralytics YOLO per la loro velocità e accuratezza superiori. Questi modelli possono essere facilmente addestrati e distribuiti utilizzando piattaforme come Ultralytics HUB.

Unisciti alla community di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora
Link copiato negli appunti