Algoritmo K-Nearest Neighbors in R [Guida definitiva con esempi]
Pubblicato: 2020-03-20L'algoritmo KNN in R è piuttosto popolare grazie alla sua versatilità e funzionalità. Quindi devi aver sentito parlare del suo nome di tanto in tanto se stai studiando l'apprendimento automatico. E ti sarai chiesto: "Cos'è KNN in R?" O come funziona?".
In questo articolo, troveremo le risposte a queste stesse domande e ti aiuteremo a comprendere a fondo questo argomento. Quindi, senza ulteriori indugi, tuffiamoci.
Sommario
Cos'è l'algoritmo KNN?
KNN sta per K Nearest Neighbor. È un algoritmo di apprendimento automatico supervisionato che classifica i punti dati in classi target in base alle caratteristiche dei punti dati adiacenti ai punti.
Supponiamo che tu voglia che la tua macchina identifichi le immagini di mele e arance e le distingua. Per farlo, dovrai inserire un set di dati di immagini mela e arancione. Quindi, dovrai addestrare il tuo modello di dati consentendogli di rilevare ogni frutto attraverso le loro caratteristiche uniche. Ad esempio, potrebbe riconoscere le mele attraverso il loro colore rosso e le arance attraverso il loro colore.
Dopo aver addestrato il tuo modello di dati, puoi testarlo assegnandogli un nuovo set di dati con altre immagini di mele e arance. Ora, l'algoritmo KNN separerà mele e arance classificandole in base alle caratteristiche individuate nel modello di addestramento.
Confronterebbe le caratteristiche di un punto dati con quelli vicini per vedere quanto sono simili. E li classificherà in base a tali risultati.

In molti casi, disegnerai i punti su un grafico. E per calcolare la distanza tra due punti, dovrai utilizzare formule diverse. Il metodo più comune per calcolare la distanza tra due punti dati è la distanza euclidea. Calcola la distanza indipendentemente dalle proprietà o attributi presenti nei punti.
Caratteristiche dell'algoritmo KNN
Di seguito sono riportate le caratteristiche dell'algoritmo KNN in R:
- È un algoritmo di apprendimento supervisionato. Ciò significa che utilizza dati di input etichettati per fare previsioni sull'output dei dati.
- È un semplice algoritmo di apprendimento automatico
- È possibile utilizzare l'algoritmo KNN per più tipi di problemi
- È un modello non parametrico. Ciò significa che non fa alcuna ipotesi sui dati, il che lo rende abbastanza utile per risolvere problemi relativi ai dati reali.
- Classifica i dati confrontando i punti dati con quelli vicini. In parole semplici, il funzionamento dell'algoritmo KNN si basa sulla somiglianza degli attributi.
- Rientra nella categoria degli algoritmi pigri. Un algoritmo pigro memorizza i dati di allenamento invece di apprendere la funzione discriminativa dagli stessi. Ulteriori informazioni sui tipi di algoritmi di apprendimento automatico.
- È possibile utilizzare KNN per risolvere problemi di regressione e classificazione.
L'algoritmo KNN è imparziale e, a causa delle caratteristiche discusse sopra, è la scelta preferita per molti problemi. Tuttavia, ogni cosa ha i suoi problemi e KNN non fa eccezione.
Questo algoritmo non è utile per risolvere problemi troppo complessi. Anche il suo modello non ha un processo di astrazione. Per un modello adeguato, avrai bisogno di dati di alta qualità in quanto a volte possono perdere informazioni preziose perché è un algoritmo pigro. È veloce, ma dovrai dedicare una notevole quantità di tempo alla pulizia dei dati.
Come funziona?
Per capire come funziona KNN in R, daremo un'occhiata a un altro esempio.
Supponiamo che il tuo set di dati abbia due classi. La classe 1 ha rettangoli, mentre la classe 2 ha cerchi. Devi assegnare il nuovo punto dati che hai inserito a una di queste due classi usando questo algoritmo. Per fare ciò, devi prima definire il valore di "K" per il tuo algoritmo. K indica il numero di punti vicini più vicini che l'algoritmo considererà.
Considera di inserire K come 4 in questo esempio. E per K = 4, i vicini sono tre cerchi e un rettangolo. In questo caso, classificherai il punto dati nella Classe 2 poiché il numero di cerchi che circondano il punto è maggiore dei rettangoli.
Se i vicini fossero tre rettangoli e un cerchio, lo avresti classificato in Classe 1. Abbiamo già discusso di come l'algoritmo KNN calcola la distanza tra due punti per determinare chi è il vicino più vicino. Usa la formula della distanza euclidea per questo scopo.

La formula per la distanza euclidea è la seguente:
d(p,q) = d(q,p) = ( q 1 – p 1 ) 2 +( q 2 – p 2 ) 2 … ( q n – p n ) 2
Qui p = (p1, p2, p3, ….pn) e q = (q1, q2, q3, … qn). In questa equazione, 'd' indica la distanza euclidea tra i punti p e q.
Come puoi vedere, è abbastanza semplice. E la sua semplicità lo rende estremamente versatile, grazie al quale è uno degli algoritmi più popolari. Puoi usarlo per una varietà di problemi.
Esempio di KNN in R
Ti starai chiedendo dove vediamo le applicazioni degli algoritmi KNN nella vita reale. Per questo, devi guardare Amazon.
L'enorme successo di Amazon dipende da molti fattori, ma uno di questi è il loro uso di tecnologie avanzate. Una di queste tecnologie è l'apprendimento automatico. Il loro sistema di raccomandazioni li ha aiutati a generare centinaia di milioni di entrate. E questo sistema di raccomandazione utilizza l'algoritmo KNN per questo scopo.
Leggi anche: Idee per progetti di apprendimento automatico

Supponiamo di acquistare un jeans Wrangler's nero con una giacca di pelle su Amazon. Poche settimane dopo, un'altra persona compra gli stessi jeans da Amazon ma non compra quella giacca di pelle. Amazon consiglierà a questa persona di acquistare la giacca poiché ha mostrato un modello di acquisto simile al tuo.
Quindi, il sistema di raccomandazione di Amazon funziona in base ai modelli di acquisto delle persone. E per comprendere questa somiglianza, puoi utilizzare l'algoritmo KNN poiché si basa su questo principio. Ora conosci le basi di questo algoritmo e la sua applicazione nel mondo reale. Ci sono molti altri esempi del suo utilizzo, ma per ora atteniamoci a questo.
Impara i corsi di scienza dei dati dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Pensieri conclusivi
L'algoritmo KNN in R ha molti usi. E dopo aver letto questo articolo, siamo sicuri che conosci questo algoritmo. Se vuoi saperne di più su tali algoritmi di machine learning, dai un'occhiata al nostro corso dettagliato di Machine Learning .
Imparerai molto sull'apprendimento automatico e sui vari algoritmi utilizzati in esso, oltre agli altri suoi aspetti.
A cosa serve il linguaggio di programmazione R?
Il linguaggio di programmazione R è stato creato per i calcoli che coinvolgono la statistica e la visualizzazione dei dati. Oggi, R è ampiamente utilizzato da statistici, data scientist, analisti di dati e business. Il nucleo di R viene fornito con molte funzionalità statistiche integrate, quindi le librerie di terze parti non sono necessarie per gran parte dell'analisi dei dati di base che R può ottenere. A differenza di molti altri linguaggi di programmazione per computer, R non è un linguaggio generico. Quindi, è essenzialmente impiegato per ottenere funzionalità specifiche che fa eccezionalmente bene. Tuttavia, R è ampiamente utilizzato dalle aziende di tutti i settori per ottenere informazioni utili da enormi volumi di dati giornalieri generati dagli utenti.
Quali sono i vantaggi della programmazione con R?
Il linguaggio di programmazione R offre vari vantaggi sia ai principianti che ai programmatori esperti. I suoi principali vantaggi includono le funzionalità e la facilità che fornisce per costruire modelli statistici e computazionali. Successivamente, R è un linguaggio di programmazione open source che supporta il calcolo distribuito parallelo. Chiunque può usarlo senza doversi procurare licenze o costi di utilizzo. Inoltre, viene fornito con un'enorme libreria per supportare varie funzionalità e il suo framework indipendente dalla piattaforma aggiunge anche comodità. R può essere utilizzato anche per efficaci funzioni di pulizia dei dati, web scraping e data wrangling ed è comunemente usato per sviluppare modelli di machine learning.
Perché la KNN è chiamata Algoritmo per studenti pigri?
L'algoritmo K-Nearest Neighbors è uno degli algoritmi più semplici utilizzati nell'apprendimento automatico. Tuttavia, è spesso chiamato lo studente pigro. Il motivo è che quando fornisci tutti i dati relativi all'addestramento a questo algoritmo, non funziona per l'addestramento stesso. Invece di apprendere funzioni discriminanti, ha memorizzato l'intero set di dati di addestramento. Con ogni aggiunta di un nuovo punto dati, questo algoritmo cerca i suoi vicini più vicini nell'intero set di addestramento, il che aumenta invariabilmente il tempo necessario per fare previsioni. Questo spesso lo rende computazionalmente costoso e richiede molto tempo.