Glossario

Vicini più vicini (K-Nearest Neighbors, KNN)

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

K-Nearest Neighbors (KNN) è un algoritmo di apprendimento supervisionato fondamentale, utilizzato per compiti di classificazione e regressione. È considerato un algoritmo basato sulle istanze o di "apprendimento pigro" perché non costruisce un modello durante la fase di addestramento dei dati. Al contrario, memorizza l'intero set di dati e fa previsioni trovando le "K" istanze più simili (vicini) nei dati memorizzati. L'idea di base è che i punti di dati simili esistono in stretta vicinanza. Per un nuovo punto di dati non classificato, KNN identifica i suoi vicini più prossimi e utilizza le loro etichette per determinare la propria classificazione o il proprio valore.

Come funziona KNN?

L'algoritmo KNN funziona in base a un semplice principio di somiglianza, tipicamente misurato da una metrica di distanza. La più comune è la distanza euclidea, anche se possono essere utilizzate altre metriche a seconda del set di dati.

Il processo per fare una previsione è semplice:

  1. Scegliere il valore di K: il numero di vicini (K) da considerare è un iperparametro critico. La scelta di K può influenzare in modo significativo le prestazioni del modello.
  2. Calcolo delle distanze: Per un nuovo punto di dati, l'algoritmo calcola la distanza tra esso e ogni altro punto del dataset di addestramento.
  3. Identificare i vicini: Identifica i K punti di dati dell'insieme di allenamento che sono più vicini al nuovo punto. Questi sono i "vicini più vicini".
  4. Fare una previsione:
    • Per i compiti di classificazione, l'algoritmo esegue una votazione a maggioranza. Al nuovo punto dati viene assegnata la classe più comune tra i K vicini. Ad esempio, se K=5 e tre vicini sono di classe A e due di classe B, il nuovo punto viene classificato come classe A.
    • Per i compiti di regressione, l'algoritmo calcola la media dei valori dei K vicini più prossimi. Questa media diventa il valore previsto per il nuovo punto dati.

Applicazioni del mondo reale

La semplicità e l'intuitività di KNN lo rendono utile in diverse applicazioni, soprattutto 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ò raccomandare film a un utente identificando altri utenti (vicini) con storie di visione simili. I film apprezzati da questi vicini, che l'utente non ha visto, vengono quindi raccomandati. Questa tecnica è una forma di filtraggio collaborativo.
  • Servizi finanziari: In campo finanziario, KNN può essere utilizzato per il credit scoring. Confrontando un nuovo richiedente di prestito con un database di richiedenti passati con esiti creditizi noti, l'algoritmo è in grado di prevedere se il nuovo richiedente è probabile che vada in default. I vicini sono richiedenti passati con profili finanziari simili (ad esempio, età, reddito, livello di indebitamento) e la loro storia di insolvenza informa la previsione. Questo aiuta ad automatizzare la valutazione iniziale del rischio.

KNN vs. concetti correlati

È importante distinguere KNN da altri comuni algoritmi di apprendimento automatico:

  • Raggruppamento K-Means: Sebbene i nomi siano simili, le loro funzioni sono molto diverse. K-Means è un algoritmo di apprendimento non supervisionato utilizzato per suddividere i dati in K sottogruppi (cluster) distinti e non sovrapposti. KNN, invece, è un algoritmo supervisionato utilizzato per la predizione basata su dati etichettati.
  • Macchina vettoriale di supporto (SVM): SVM è un algoritmo supervisionato che cerca di trovare il miglior iperpiano possibile che separa le diverse classi nello spazio delle caratteristiche. Mentre KNN prende decisioni basate sulla somiglianza locale dei vicini, SVM mira a trovare un confine ottimale globale, il che lo rende fondamentalmente diverso nel suo approccio. Maggiori dettagli sono disponibili alla pagina SVM di Scikit-learn.
  • Alberi decisionali: Un albero decisionale classifica i dati creando un modello di decisioni gerarchiche e basate su regole. Il risultato è una struttura ad albero, mentre KNN si basa sulla somiglianza basata sulla distanza senza apprendere regole esplicite. Per saperne di più, consultare la documentazione sugli alberi decisionali di Scikit-learn.

Sebbene KNN sia uno strumento prezioso per la comprensione dei concetti fondamentali dell'apprendimento automatico e per l'uso su insiemi di dati piccoli e ben curati, può essere computazionalmente intensivo per l'inferenza in tempo reale con i big data. Per compiti di computer vision complessi, come il rilevamento di oggetti in tempo reale, si preferiscono modelli più avanzati, come Ultralytics YOLO, per la loro velocità e precisione superiori. Questi modelli possono essere facilmente addestrati e distribuiti utilizzando piattaforme come Ultralytics HUB.

Unitevi alla comunità di Ultralytics

Entrate a far parte del futuro dell'IA. Connettetevi, collaborate e crescete con gli innovatori globali.

Iscriviti ora
Link copiato negli appunti