Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
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 di apprendimento non parametrico, di apprendimento non parametrico e supervisionato, ampiamente utilizzato per classificazione e regressione. Spesso definito come "apprendista pigro" o metodo di apprendimento basato sull'istanza, KNN non genera una funzione discriminativa dai dati di addestramento durante la fase di addestramento. dai dati di addestramento durante la fase di addestramento. Al contrario, memorizza l'intero set di dati ed esegue calcoli solo quando fa previsioni su nuove istanze. Questo approccio presuppone che i punti di dati simili siano vicini nello spazio delle caratteristiche, consentendo all'algoritmo di classify nuovi input in classify alla classe maggioritaria. nuovi input in base alla classe maggioritaria o al valore medio dei loro vicini più prossimi.

Come funziona KNN

Il meccanismo operativo di K-Nearest Neighbors si basa su metriche di distanza per quantificare la somiglianza tra i punti di dati. punti di dati. La metrica più comune è la distanza euclidea, ma se ne possono usare altre come la distanza di Manhattan o la distanza di Minkowski possono essere usate a seconda del dominio del problema. Il processo di previsione prevede diverse fasi distinte:

  1. Selezionare K: l'utente definisce il numero di vicini, indicato come "K". Questo è un passo cruciale nella nella regolazione degli iperparametri, poiché il valore di K influenza direttamente il rapporto bias-varianza del modello. del modello sul rapporto bias-varianza. Un K piccolo può portare sensibilità al rumore, mentre un K grande può attenuare i confini distinti.
  2. Calcolo delle distanze: Quando viene introdotto un nuovo punto di interrogazione, l'algoritmo calcola la distanza tra questo punto e ogni esempio del set di dati memorizzato.
  3. Identificare i vicini: L'algoritmo ordina le distanze e seleziona le prime K voci con i valori più bassi. valori più piccoli.
  4. Produzione aggregata:
    • Classificazione: L'algoritmo assegna l'etichetta di classe che appare più frequentemente tra i K vicini (voto a maggioranza).
    • Regressione: La previsione viene calcolata come media dei valori target dei K vicini.

La semplicità di KNN lo rende una base efficace per molti problemi di apprendimento problemi di apprendimento automatico. Di seguito è riportato un esempio esempio utilizzando la popolare libreria Scikit-learn per dimostrare un flusso di lavoro di classificazione di base.

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])

# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])

Applicazioni nel mondo reale

Nonostante la sua semplicità, K-Nearest Neighbors viene impiegato in vari domini sofisticati in cui l'interpretabilità e il ragionamento basato sull'istanza sono preziosi. ragionamento basato sull'istanza sono preziosi.

  • Motori di raccomandazione: KNN facilita il filtraggio collaborativo nei sistemi di raccomandazione. Le piattaforme di streaming piattaforme di streaming lo utilizzano per suggerire contenuti trovando utenti con storie di visione simili (vicini) e consigliando elementi che sono piaciuti. Questo metodo è efficace per personalizzare le esperienze degli utenti.
  • Diagnosi medica: nell'analisi analisi delle immagini mediche, KNN può aiutare a diagnosi di patologie confrontando le metriche del paziente o le caratteristiche dell'immagine con un database di casi storici. Per esempio esempio, può aiutare a classify tumori del cancro al seno come maligno o benigno in base alla somiglianza delle caratteristiche delle cellule con i casi confermati.
  • Rilevamento delle anomalie: Le istituzioni finanziarie utilizzano KNN per rilevamento delle anomalie per identificare le frodi. Analizzando i modelli di transazione analizzando i modelli di transazione, il sistema può segnalare le attività che si discostano in modo significativo dal comportamento standard di un utente. comportamento standard dell'utente, in sostanza i punti che sono lontani dai loro "vicini più vicini".

Distinguere KNN da altri algoritmi simili

Comprendere le differenze tra KNN e altri algoritmi è fondamentale per scegliere lo strumento giusto per un progetto di computer vision o di analisi dei dati. progetto di computer vision o di analisi dei dati.

  • Clustering K-Means: È facile confondere KNN con K-Means Clustering a causa dei nomi simili. Tuttavia, K-Means è una tecnica di apprendimento tecnica di apprendimento non supervisionato che raggruppa dati non etichettati in cluster, mentre KNN è una tecnica supervisionata che richiede dati etichettati per la predizione.
  • Macchina a vettori di supporto (SVM): Sebbene entrambi siano utilizzati per la classificazione, una macchina vettoriale di supporto (SVM) si concentra trovare un confine decisionale globale (iperpiano) che massimizzi il margine tra le classi. KNN, invece, prende decisioni decisioni basate sulla densità locale dei dati senza costruire un modello globale. Per saperne di più su queste differenze, consultare la Documentazione SVM.
  • Alberi decisionali: A Un albero decisionale classifica i dati attraverso l'apprendimento di regole regole gerarchiche che dividono lo spazio delle caratteristiche. Il KNN si basa esclusivamente su metriche di distanza nello spazio delle caratteristiche, il che lo rende più flessibile ai confini decisionali irregolari ma più flessibile ai confini irregolari delle decisioni, ma più pesante dal punto di vista computazionale durante l'inferenza.

Sebbene KNN sia potente per i piccoli insiemi di dati, deve affrontare problemi di scalabilità con i grandi dati. grandi dati a causa del costo computazionale del calcolo delle distanze per ogni interrogazione. Per ottenere prestazioni elevate in tempo reale in compiti come il rilevamento di oggetti, le moderne architetture di deep learning come YOLO11 sono generalmente preferite per la loro velocità e precisione superiori.

Unitevi alla comunità di Ultralytics

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

Iscriviti ora