Condividi tramite


Confrontare kNN e ANN

Due categorie principali di algoritmi di ricerca vettoriale sono k-Nearest Neighbors (kNN) e Approximate Nearest Neighbors (ANN, non da confondere con la rete neurale artificiale). KNN è preciso ma a elevato utilizzo di calcolo, rendendolo meno adatto per set di dati di grandi dimensioni. ANN, d'altra parte, offre un equilibrio tra accuratezza ed efficienza, rendendolo più adatto ad applicazioni su larga scala.

Funzionamento di kNN

  • Vettorizzazione: ogni punto dati nel set di dati è rappresentato come vettore in uno spazio multidimensionale.
  • Calcolo della distanza: per classificare un nuovo punto dati (punto di query), l'algoritmo calcola la distanza tra il punto di query e tutti gli altri punti del set di dati usando una funzione distance.
  • Ricerca di vicini: l'algoritmo identifica i punti dati k più vicini (vicini) al punto di query in base alle distanze calcolate. Il valore di k (il numero di vicini) è fondamentale. Un k di piccole dimensioni può essere sensibile al rumore, mentre un k di grandi dimensioni può attenuare i dettagli.
  • Fare previsioni
    • Classificazione: Per le attività di classificazione, kNN assegna l'etichetta della classe al punto di interrogazione più frequente tra i k vicini. Essenzialmente, esegue un voto di maggioranza.
    • Regressione: per le attività di regressione, kNN predice il valore per il punto di interesse come media semplice (o talvolta ponderata) dei valori dei k vicini.

Funzionamento di ANN

  • Vettorizzazione: ogni punto dati nel set di dati è rappresentato come vettore in uno spazio multidimensionale.
  • Indicizzazione e strutture di dati: gli algoritmi ANN usano strutture di dati avanzate (ad esempio, alberi KD, hashing sensibili alla località o metodi basati su grafo) per indicizzare i punti dati, consentendo ricerche più veloci.
  • Calcolo della distanza: invece di calcolare la distanza esatta a ogni punto, gli algoritmi ANN usano euristica per identificare rapidamente le aree dello spazio che probabilmente contengono i vicini più vicini.
  • Ricerca di elementi adiacenti: l'algoritmo identifica un set di punti dati che potrebbero essere vicini al punto di query. Non è possibile garantire che questi vicini siano i punti esattamente più vicini, ma sono abbastanza vicini ai fini pratici.
  • Fare previsioni
    • Classificazione: per le attività di classificazione, ANN assegna l'etichetta di classe al punto di query più comune tra i vicini identificati, simile a kNN.
    • Regressione: per le attività di regressione, ANN predice il valore del punto di interesse come media (o media ponderata) dei valori dei vicini identificati.