Nell'ambito dell'apprendimento supervisionato e discipline affini, l'algoritmo k-nearest neighbors (traducibile come dei k vicini più prossimi), abbreviato in algoritmo k-NN, è un metodo non parametrico di classificazione o regressione che si basa direttamente sul dataset di addestramento e su una misura di similarità per decidere il valore di una variabile di output, rispettivamente categorica o continua [1][2][3]. In entrambi i casi, per ogni nuovo esempio x* si trovano i k esempi di addestramento (k numero intero positivo) più simili / vicini nello spazio determinato dalle feature ossia le variabili di input utilizzate per descrivere gli esempi. L'output y* dipende dal problema da risolvere:

  • Nella classificazione k-NN, l'output è l'etichetta di una classe. L'oggetto x* viene classificato attraverso un voto di maggioranza, ossia l'oggetto sarà assegnato alla classe corrispondente all'etichetta più comune tra i suoi k vicini più prossimi.
  • Nella regressione k-NN, l'output è il valore y* della variabile di output per l'oggetto x* calcolato come media dei valori dei k vicini più prossimi.

Caratteristiche principali

modifica

È l'algoritmo più semplice fra quelli utilizzati nell'apprendimento automatico.

Il parametro k

modifica

Un oggetto è classificato in base alla maggioranza dei voti dei suoi k vicini. k è un intero positivo tipicamente non molto grande. Se k=1 allora l'oggetto viene assegnato alla classe del suo vicino. In caso di problema di classificazione binario, ossia in cui sono previste esclusivamente due classi, è opportuno scegliere k dispari per evitare di ritrovarsi in situazioni di parità.

Questo metodo può essere utilizzato per la tecnica di regressione assegnando all'oggetto la media dei valori dei k oggetti suoi vicini.

Considerando solo i voti dei k oggetti vicini c'è l'inconveniente dovuto alla predominanza delle classi con più oggetti. In questo caso può risultare utile pesare i contributi dei vicini in modo da dare, nel calcolo della media, maggior importanza in base alla distanza dall'oggetto considerato.

Scelta del parametro k

modifica

La scelta di k dipende dalle caratteristiche dei dati. Generalmente all'aumentare di k si riduce il rumore che compromette la classificazione, ma il criterio di scelta per la classe diventa più labile. La scelta può esser presa attraverso tecniche di euristica, come ad esempio la convalida incrociata.

L'algoritmo

modifica

Fase di apprendimento

modifica

Lo spazio viene partizionato in regioni in base alle posizioni e alle caratteristiche degli oggetti di apprendimento. Questo può essere considerato come l'insieme d'apprendimento per l'algoritmo, anche se esso non è esplicitamente richiesto dalle condizioni iniziali.

Calcolo della distanza

modifica

Ai fini del calcolo della distanza gli oggetti sono rappresentati attraverso vettori di posizione in uno spazio multidimensionale. Di solito viene usata la distanza euclidea, ma anche altri tipi di distanza sono ugualmente utilizzabili, ad esempio la distanza Manhattan. Nel caso in cui si debbano manipolare stringhe e non numeri si possono usare altre distanze quali ad esempio la distanza di Hamming. L'algoritmo è sensibile alla struttura locale dei dati.

Fase di classificazione

modifica

Un punto (che rappresenta un oggetto) è assegnato alla classe C se questa è la più frequente fra i k esempi più vicini all'oggetto sotto esame, la vicinanza si misura in base alla distanza fra punti. I vicini sono presi da un insieme di oggetti per cui è nota la classificazione corretta. Nel caso della regressione per il calcolo della media (classificazione) si usa il valore della proprietà considerata.

Esempio di utilizzo

modifica
Esempio di problema di classificazione risolto via k-NN

In figura è rappresentato un esempio di classificazione mediante kNN. Il punto sotto osservazione è il pallino verde. Le classi sono due:

  • quella dei triangolini rossi;
  • quella dei quadratini blu.

Se k = 3 (cioè vengono considerati i 3 oggetti più vicini), allora il pallino verde viene inserito nella stessa classe dei triangolini rossi perché sono presenti 2 triangolini e 1 quadratino. Se k = 5 allora viene inserito nella stessa classe dei quadratini blu perché sono presenti 3 quadratini e 2 triangolini.

Valutazioni

modifica

Inconvenienti

modifica

Il calcolo delle distanze è computazionalmente oneroso e proporzionale alla taglia dell'insieme di dati sotto esame. Gli algoritmi proposti che migliorano questo inconveniente cercano principalmente di diminuire il numero di distanze da calcolare per la decisione. In alcuni casi si cerca di partizionare lo spazio vettoriale e si calcolano solo le distanze tra volumi dello spazio vettoriale.

Algoritmi simili

modifica

Di seguito sono elencati alcuni algoritmi della tipologia k-NN:

Pregi

modifica

Al tendere della quantità di dati all'infinito l'algoritmo non supera mai di due volte il Bayes error rate (il minimo errore dovuto alla distribuzione dei dati). Per alcuni valori di k, con k che cresce in funzione della mole di dati, l'algoritmo raggiunge il Bayes error rate.

Variabili continue

modifica

k-NN può essere utilizzato, con opportuni adattamenti, per stimare variabili continue. Questo tipo di implementazione utilizza una media pesata basata sull'inverso della distanza.

Note

modifica
  1. ^ (EN) Fix, Evelyn; Hodges, Joseph L., Discriminatory Analysis. Nonparametric Discrimination: Consistency Properties (Tech. Report) (PDF), su apps.dtic.mil, 1951. URL consultato il 27 settembre 2025 (archiviato dall'url originale il 15 settembre 2020).
  2. ^ T. Cover e P. Hart, Nearest neighbor pattern classification, in IEEE Transactions on Information Theory, vol. 13, n. 1, 1967-01, pp. 21–27, DOI:10.1109/TIT.1967.1053964.
  3. ^ Tom M. Mitchell, Ch. 8 (PDF), in Machine learning, McGraw-Hill, 2013, ISBN 978-0-07-042807-2.

Bibliografia

modifica
  • (EN) Belur V. Dasarathy (a cura di), Nearest neighbor (NN) norms: nn pattern classification techniques, IEEE Computer Society Press ; IEEE Computer Society Press Tutorial, 1991, ISBN 978-0-8186-8930-7.
  • (EN) G. Shakhnarovish, T. Darrell, P. Indyk (a cura di), Nearest-neighbor methods in learning and vision: theory and practice, collana Neural information processing series, MIT Press, 2005, ISBN 978-0-262-19547-8.
  • Trevor Hastie, Robert Tibshirani e Jerome Friedman, 13. Prototype Methods and Nearest-Neighbors, in The Elements of Statistical Learning, collana Springer Series in Statistics, Springer New York, 2009, DOI:10.1007/978-0-387-84858-7, ISBN 978-0-387-84857-0.

Collegamenti esterni

modifica

📚 Artikel Terkait di Wikipedia

Percettrone

agosto 2018. ^ Michael Collins, Convergence Proof for the Perceptron Algorithm (PDF), su cs.columbia.edu, Columbia University - Dipartimento di informatica

Domain Name System

1912, Common DNS Operational and Configuration Errors (EN) RFC 1995, Incremental Zone Transfer in DNS (EN) RFC 1996, A Mechanism for Prompt Notification

Certificate revocation list

CertificateList  ::= SEQUENCE { tbsCertList TBSCertList, signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING } TBSCertList  ::= SEQUENCE

Rete neurale convoluzionale

Recognition, Suvisoft, 2006. ^ GE Hinton, S Osindero e YW Teh, A fast learning algorithm for deep belief nets., in Neural computation, vol. 18, n. 7, Jul 2006

Macchine a vettori di supporto

Bernhard E. Boser, Isabelle M. Guyon e Vladimir N. Vapnik, A training algorithm for optimal margin classifiers, in Proceedings of the fifth annual workshop

Apprendimento automatico

of Machine Learning, Morgan Kaufmann. Domingos, P. (2015). The master algorithm: How the quest for the ultimate learning machine will remake our world

Regolarizzazione (matematica)

Zhu, Regularized Least Absolute Deviations Regression and an Efficient Algorithm for Parameter Tuning, in Sixth International Conference on Data Mining

Calibrazione (statistica)

Calibration Error (ECE). che ha avuto successivamente alcune varianti come l'Adaptive Calibration Error (ACE) e il Test-based Calibration Error (TCE), che