Introduzione all'algoritmo KNN

K L'algoritmo di Neighbour più vicino, ben noto come KNN, è l'algoritmo di base per l'apprendimento automatico. La comprensione di questo algoritmo è un ottimo punto di partenza per l'apprendimento automatico, in quanto la logica alla base di questo algoritmo è incorporata in molti altri modelli di apprendimento automatico. K L'algoritmo del Neighbour più vicino rientra nella parte di classificazione dell'apprendimento supervisionato.

Che cos'è l'apprendimento supervisionato?

L'algoritmo di apprendimento supervisionato è un tipo di algoritmo in cui si basa su input etichettati per apprendere e predice in base alla funzione quando vengono forniti dati senza etichetta. Come abbiamo capito cos'è l'apprendimento supervisionato, vediamo cos'è la classificazione, l'algoritmo di classificazione fornisce un valore discreto come output, non valori continui.

Come funziona l'algoritmo KNN?

K I vicini più vicini è un algoritmo di base che memorizza tutti i dati disponibili e prevede la classificazione dei dati senza etichetta sulla base di una misura di somiglianza. Nella geometria lineare quando due parametri sono tracciati sul sistema cartesiano 2D, identifichiamo la misura di somiglianza calcolando la distanza tra i punti. Lo stesso vale qui, l'algoritmo KNN lavora sul presupposto che cose simili esistono nelle immediate vicinanze, semplicemente possiamo mettere nelle stesse cose stare vicini gli uni agli altri.

Esempio: se abbiamo un set di dati quando tracciato è simile a questo, per classificare questi punti di dati K L'algoritmo dei vicini più vicini identificherà prima la distanza tra i punti e vedrà se sono simili o meno.

In Geometria secondo Euclide, la funzione della distanza può essere calcolata con la seguente equazione,

Se K = 1, il caso viene semplicemente assegnato a una classe del suo vicino più vicino (Usiamo "1" in quasi tutte le situazioni in matematica, possiamo alterare il valore di K durante l'addestramento dei modelli nell'apprendimento automatico e lo faremo discuterne ulteriormente nell'articolo) X e Y sono i valori sugli assi coordinati.

Se notiamo qui, tutte le misure di distanza che stiamo ottenendo saranno variabili continue, ma abbiamo bisogno di valori discreti mentre facciamo la classificazione, quindi dobbiamo usare la distanza di percussione per raggiungere questo obiettivo.

Questa equazione ci porta anche alla standardizzazione dei valori numerici tra 0 e 1 quando vi è una miscela di valori numerici e categorici nel set di dati.

X Y Distanza
Con Il Cancro Con Il Cancro X = Y → D = 0
Senza cancro Senza cancro X! = Y → D = 1

In questo modo, l'algoritmo funziona e ora, tuffiamoci nel modo in cui scegliamo il valore di K in KNN.

Scelta del valore K nell'algoritmo KNN

Prima di vedere quali sono i fattori da considerare nella scelta del valore K, dobbiamo capire in che modo il valore di K influenza l'algoritmo.

Questi sono i grafici dello stesso set di dati con valori K variabili, il valore K è 1 per il grafico nell'angolo in alto a sinistra e massimo per il diagramma nell'angolo in basso a destra. Se esaminiamo attentamente, possiamo capire che il limite dell'algoritmo di classificazione diventa liscio man mano che il valore di K aumenta. Questo è il valore di K è direttamente proporzionale alla levigatezza del confine. Quindi, da questo, possiamo capire che se il valore K è impostato su 1, allora il modello di allenamento si adatta ai dati e se il valore K è impostato su un numero elevato, allora si adatta ai dati. Per scegliere un valore ottimale di K dobbiamo verificare l'errore di validazione con più valori K e scegline uno con l'errore minimo.

I passaggi per implementare l'algoritmo KNN in Python

Finora qui abbiamo appreso la parte teorica dell'algoritmo del K Neighbour più vicino, ora ci permette di vedere praticamente imparando come implementare in Python.

Passaggio 1: importazione delle librerie

Di seguito vedremo l'importazione delle librerie di cui abbiamo bisogno per eseguire KNN.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Passaggio 2: importazione del set di dati

Qui vedremo il set di dati importato.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Passaggio 3: dividere il set di dati

Il prossimo passo è dividere il nostro set di dati in test e formare il split.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Nota: il set di dati che sto usando per dimostrare è stato pre-elaborato con la definizione dei valori X e Y. Se ciò non viene fatto per primo, deve essere fatto, perché mentre il modello di classificazione viene addestrato, dobbiamo trasmettere i dati etichettati per calcolare le distanze.

Passaggio 4: modello di addestramento

Ora, in questo passaggio, vedremo un modello di formazione.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Nota: qui stiamo usando il classificatore K neighbors importato dalla libreria sklearn.neighbours del modulo.

Passaggio 5: esecuzione delle previsioni

Esecuzione di previsioni sui dati suddivisi del test.

y_pred = classifier.predict(X_test)

Passaggio 6: Verifica convalida

Il prossimo passo è valutare l'algoritmo e verificare l'errore di convalida, eseguirlo nuovamente con un valore K diverso e considerare il valore k in cui viene visualizzato l'errore minimo di convalida. Questo è il modo in cui possiamo praticamente implementare il classificatore K Neighbours più vicini, ci sono diversi modi per implementare questo algoritmo, questo è solo uno di questi e in questo articolo, ho descritto molto brevemente i passaggi poiché la nostra agenda principale è capire come funziona l'algoritmo.

Conclusione

Come detto in precedenza, l'algoritmo K Neighbours più vicino è uno degli algoritmi più semplici e facili utilizzati per la classificazione. In base a come funziona, rientra anche nel "Lazy Learning Algorithm". In generale, il valore K che tutti passano durante l'addestramento del modello è un numero dispari ma non è una coazione. Tuttavia, ci sono anche alcuni svantaggi durante l'utilizzo di KNN

  • Non va bene con i dati categorici, perché non possiamo trovare la distanza tra due caratteristiche categoriali.
  • Inoltre, non funziona bene con dati ad alta dimensione, poiché sarà difficile per l'algoritmo calcolare la distanza in ciascuna dimensione.

Se attualmente vediamo che la maggior parte dei casi d'uso in Machine Learning è circondata dall'algoritmo di classificazione a livello base, è così che KNN sta giocando un ruolo importante nel mondo dell'apprendimento automatico.

Articoli consigliati

Questa è una guida all'algoritmo KNN. Qui discutiamo dell'introduzione e del funzionamento dell'algoritmo K Nearby Neighbours con i passaggi per implementare l'algoritmo kNN in Python. Puoi anche consultare i seguenti articoli per saperne di più-

  1. Come funziona l'algoritmo SVM?
  2. Algoritmo MD5 (Vantaggi e svantaggi)
  3. K: significa algoritmo di clustering
  4. Tipi di apprendimento per rinforzo
  5. Guida completa all'algoritmo C ++

Categoria: