Questo algoritmo di apprendimento a macchina è facile e semplice da capire. È possibile risolvere i problemi di regressione e classificazione con metodi di apprendimento automatico. Per comprendere il concetto di vicino di casa K-nearest, è necessario prima conoscere il funzionamento di una tecnica di machine learning supervisionata. Nell’apprendimento supervisionato, si fornisce il modello con dati etichettati. La macchina analizza poi i dati etichettati e pilota un’uscita adeguata.
Per esempio, quando i bambini sono piccoli, hanno bisogno di supervisione per capire la differenza tra i diversi colori, animali, alfabeti, ecc. Etichettate tutti gli articoli per loro in modo che possano identificarli rapidamente. Questo è il modo in cui funziona l’apprendimento automatico supervisionato. Questo apprendimento aiuta a risolvere i problemi di classificazione. In questo tipo di problema, si prevede il valore dei dati di input, e poi l’algoritmo organizza i valori in diverse classi in base al peso delle funzioni e alle loro caratteristiche di input.
K – Vicini più vicini
Per risolvere la regressione e la classificazione, è possibile utilizzare questo algoritmo per il metodo di apprendimento macchina supervisionato. KNN non include alcuna fase di apprendimento. Non calcola il metodo predittivo come la regressione lineare o la regressione logistica. Questo algoritmo trova le similitudini tra le variabili. Misurano quanto sono vicine o distanti le variabili sulla base dei dati forniti. In parole semplici, questo algoritmo pensa che più le cose sono vicine tra loro, più sono simili.
Come funziona l’algoritmo KNN
Per implementare correttamente l’algoritmo K-Nearest Neighbor Algorithm (per Python) è necessario seguire il seguente metodo:
Caricare l’input o i dati sulla macchina dal set di dati
Modificare il valore di K dalle variabili
Calcolare la distanza delle variabili rispetto ad ogni esempio di dati.
Aggiungere ora la distanza in forma ordinata
Ora ordinate la collezione ordinata in ordine crescente in base alla loro distanza.
Scegliere la K dalla collezione
Ora trovate le etichette di quel valore K
Se si tratta di regressione, è necessario restituire la media dell’etichetta “K”.
Se si tratta della classificazione, è necessario restituire la modalità dell’etichetta “K.”.
Implementazione della codifica su
fromcollezioni importContatore
importazione matematica defknn(data, query, k, distance_fn, choice_fn):
distanze_distanze_e_indici_del_vicino = []
3. Per ogni esempio nei dati per l’indice, ad esempio inenumero(dati):
3.1 Calcolare la distanza tra l’esempio di interrogazione e la corrente esempio dai dati. distanza =distanza_fn(esempio[:-1], query)
3.2 Aggiungere la distanza e l’indice dell’esempio ad una collezione ordinata distanze_distanze_e_indici.append((distanza, indice))
4. Ordina la raccolta ordinata delle distanze e degli indici da dal più piccolo al più grande (in ordine crescente) per le distanze Distanze_distanze_e_indici_del_vicino_ordinato =ordinato(distanze_e_indici_del_vicino_e_distanze_del_vicino)
5. Scegliere le prime voci K dalla raccolta ordinata k_nearest_distanze_e_indici = distanza_distanze_e_indici_del_vicino_ordinato[:k]
6. Ottenere le etichette delle voci K selezionate k_nearest_labels = [dati[i][1] per la distanza, i in k_nearest_distanze_e_indici]
7. Se la regressione (choice_fn = media), restituire la media delle etichette K
8. Se la classificazione (choice_fn = modo), restituire il modo delle etichette K restituire le distanze_e_indici_di_nearest , scelta_fn(etichette_nearest) defmean(etichette):
returnum(etichette) /len(etichette) defmode(etichette):
returnCounter(labels).most_common(1)[0][0][0] distanza_distanza_distruttiva(punto1, punto2):
somma_squared_distanza_distanza =0
per i inrange(len(punto1)):
sum_squared_distance += matematica.pow(punto1[i] – punto2[i], 2)
restituire la matematica.sqrt(somma_quadrata_distanza) defmain():
”’
# Dati di regressione
#
# Colonna 0: altezza (pollici)
# Colonna 1: peso (libbre)
”’
reg_data = [
[65.75, 112.99],
[71.52, 136.49],
[69.40, 153.03],
[68.22, 142.34],
[67.79, 144.30],
[68.70, 123.30],
[69.80, 141.49],
[70.01, 136.46],
[67.90, 112.37],
[66.49, 127.45],
] Domanda: Dati i dati che abbiamo, qual è la migliore ipotesi sul peso di qualcuno se è alto 60 pollici? reg_query = [60] reg_k_nearest_nearest_neighbors, reg_prediction =knn( reg_data, reg_query, k=3, distance_fn=distanza euclidea, choice_fn=mezzo )
”’
# Dati di classificazione
#
# Colonna 0: età
# Colonna 1: ama l’ananas
”’
clf_data = [
[22, 1],
[23, 1],
[21, 1],
[18, 1],
[19, 1],
[25, 0],
[27, 0],
[29, 0],
[31, 0],
[45, 0],
] Domanda: Dati i dati in nostro possesso, l’M&M non specificato si adatta al set di M&M rosso o verde? clf_query = [33] clf_k_nearest_nearest_neighbors, clf_prediction =knn( clf_data, clf_query, k=3, distance_fn=distanza_euclidea, choice_fn=modalità )
se name ==’main‘:
principale()
Comprensione con l’esempio
Ora cerchiamo di capire i passi sopra descritti con parole semplici. Immaginate che ci siano M&Ms verdi e rosse su un piatto. Qui troverete un altro M&M di cui non conoscete la classe. Per trovare la classe, dovete impostare un valore di K. Diciamo che in questa condizione K = 4. Ora disegnerete un cerchio intorno all’M&M non identificato in modo che il centro del cerchio sia quel M&M stesso, e solo le altre quattro M&M siano nel cerchio. Ora verificheremo quale classe di M&Ms ha il cerchio in più. Diciamo che se ci fossero quattro M&Ms rosse, allora considereremo le M&M non identificate come una classe rossa.
Quando si può usare l’algoritmo KNN?
Potete usare l’algoritmo K-Nearest Neighbor Algorithm per risolvere il problema della regressione o della classificazione. Molte industrie utilizzano questo sistema di apprendimento macchina supervisionato per problemi di classificazione. Qui ci sono tre fattori importanti per valutare qualsiasi tecnica:
Quanto è facile interpretare il risultato?
Come si può calcolare l’output?
Qual è il potere predittivo?
Il KNN è perfetto per tutti i parametri di cui sopra per misurare una tecnica. Tuttavia, la tecnica KNN ha applicazioni frequenti perché è facile da interpretare e calcolare il tempo di uscita.
Come si può scegliere il valore K?
Per trovare il valore K migliore, dobbiamo eseguire l’algoritmo molte volte e verificare quale numero riduce gli errori e mantenere la capacità dell’algoritmo e fare previsioni. Ecco alcune delle cose da tenere a mente:
La prima cosa che non si dovrebbe fare è selezionarne uno come valore K. Quando si seleziona uno come valore K, si ottengono previsioni instabili. Per esempio, se abbiamo bisogno di trovare la classe di un M&M che è completamente circondata da M&M rossi, ma solo un M&M verde è vicino al M&M non identificato. In questa condizione, penseremo che il punto di interrogazione sia verde, quindi la nostra previsione sarà sbagliata.
Quando aumenteremo il valore K, vedremo che la previsione diventerà stabile a causa della maggioranza dei votanti. Tuttavia, quando troviamo più errori, ci allontaniamo troppo dal valore K.
Quando c’è un legame tra le previsioni, dobbiamo scegliere il numero dispari.
La scelta del valore K dipende dal set di dati che si sta cercando di utilizzare. Tuttavia, dovete sapere che più vicini aggiungiamo, più precisi saranno i risultati che otterremo.
Conclusione
In questo articolo abbiamo cercato di fornire un concetto di base e di facile comprensione del concetto di K-Nearest Neighbor Algorithm. Abbiamo imparato che KNN aiuta a prevedere la classificazione con il dataset dato. Si tratta di un metodo di calcolo facile e veloce.