Introducere în algoritmul KNN

Algoritmul lui K Near Neighbour, cunoscut sub numele de KNN este algoritmul de bază pentru învățarea mașinii. Înțelegerea acestui algoritm este un loc foarte bun pentru a începe învățarea învățării automate, deoarece logica din spatele acestui algoritm este încorporată în multe alte modele de învățare automată. Algoritmul K Near Neighbour intră în partea de clasificare în învățarea supravegheată.

Ce este învățarea supravegheată?

Algoritmul de învățare supravegheat este un fel de algoritm în care se bazează pe o intrare etichetată pentru a învăța și prezice pe baza funcției atunci când sunt furnizate date fără etichetare. Deoarece am înțeles ce învățare supravegheată este să vedem ce este clasificarea, algoritmul de clasificare dă o valoare discretă ca o ieșire, nu ca valori continue.

Cum funcționează algoritmul KNN?

K Near Neighbors este un algoritm de bază care stochează toate cele disponibile și prezice clasificarea datelor fără etichetare pe baza unei măsuri de similaritate. În geometrie liniară când sunt parametri doi parametri pe sistemul cartezian 2D, identificăm măsura de asemănare calculând distanța dintre puncte. Același lucru se aplică aici, algoritmul KNN funcționează pe presupunerea că lucruri similare există în imediata apropiere, pur și simplu putem pune în aceleași lucruri să rămână aproape unul de celălalt.

Exemplu: Dacă avem un set de date atunci când este reprezentat grafic, astfel încât să clasificăm aceste puncte de date K Kigh vecine algoritmul va identifica mai întâi distanța dintre puncte și va vedea dacă sunt similare sau nu.

În Geometrie conform Euclidiei, funcția distanței poate fi calculată prin următoarea ecuație,

Dacă K = 1, atunci cazul este pur și simplu atribuit unei clase de vecinul cel mai apropiat (folosim „1” în aproape oricare dintre situațiile de matematică, putem modifica valoarea lui K în timp ce antrenăm modelele în învățarea mașinii și vom face discutați în continuare în articol) X și Y sunt valorile axelor coordonate.

Dacă observăm aici, toate măsurile de distanță pe care le obținem vor fi variabile continue, dar avem nevoie de valori discrete în timp ce facem clasificarea, trebuie să folosim distanța de ciocanire pentru a realiza acest lucru.

Această ecuație ne aduce, de asemenea, standardizarea valorilor numerice între 0 până la 1 când există un amestec de valori numerice și categorice în setul de date.

X Y Distanţă
Cu Rac Cu Rac X = Y → D = 0
Fără Rac Fără Rac X! = Y → D = 1

În acest fel, algoritmul funcționează și acum, să ne scufundăm în modul în care alegem valoarea lui K în KNN.

Alegerea valorii K în algoritmul KNN

Înainte de a vedea care sunt factorii de luat în considerare în timp ce alegem valoarea K trebuie să înțelegem cum influențează valoarea K în algoritm.

Acestea sunt diagramele aceluiași set de date cu valori K diferite, valoarea K este 1 pentru complotul din colțul din stânga sus și cel mai mare pentru parcela din colțul din dreapta jos. Dacă examinăm cu atenție, putem înțelege că limita algoritmului de clasificare devine lină pe măsură ce valoarea lui K crește. Aceasta este valoarea lui K este direct proporțională cu netezimea graniței. Prin urmare, putem înțelege că dacă valoarea K este setată la 1, atunci modelul de instruire va potrivi datele și dacă valoarea K este setată la un număr mare, atunci acestea vor potrivi datele. Pentru a alege o valoare optimă de K trebuie să verificăm eroarea de validare cu mai multe valori K și să alegem una cu eroarea minimă.

Pași pentru implementarea algoritmului KNN din Python

Până aici, am învățat partea teoretică a algoritmului lui K Near Neighbour, să ne vedem acum învățând practic cum să implementăm în python.

Pasul 1: Importarea bibliotecilor

În cele de mai jos, vom vedea Importarea bibliotecilor de care avem nevoie pentru a rula KNN.

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

Pasul 2: Importarea setului de date

Aici, vom vedea importul setului de date.

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

Pasul 3: Set de date Split

Următorul pas este să împărțim setul nostru de date în divizare de test și tren.

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)

Notă: Setul de date pe care îl folosesc pentru a demonstra a fost pre-procesat cu definirea valorilor X și Y. Dacă acest lucru nu se face mai întâi, trebuie făcut, deoarece în timp ce modelul de clasificare este pregătit, trebuie să trecem datele etichetate pentru a calcula distanțele.

Pasul 4: Model de instruire

Acum, în acest pas, vom vedea o pregătire de model.

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

Notă: Aici folosim clasificatorul K vecini importat din biblioteca modulului sklearn.neighbours.

Pasul 5: Executarea previziunilor

Efectuarea de predicții asupra datelor împărțite la test.

y_pred = classifier.predict(X_test)

Pasul 6: Verificați validarea

Următorul pas este să evaluezi algoritmul și să verifici eroarea de validare, să rulezi din nou cu valoare K diferită și să iei în considerare valoarea k unde obținem eroarea de validare minimă. Astfel putem implementa practic clasificatorul K Near Neighbors, există mai multe modalități de implementare a acestui algoritm, acesta este doar unul dintre ele, iar în acest articol, am descris foarte pe scurt pașii, deoarece agenda noastră principală este să înțelegem cum funcționează algoritmul.

Concluzie

Așa cum am spus anterior, algoritmul K Near Neighbors este unul dintre cei mai simpli și mai ușori algoritmi utilizați pentru clasificare. Pe baza modului de funcționare, acesta intră și sub „Algoritmul Lazy Learning”. În general, valoarea K pe care o trece toată lumea în timp ce antrenează modelul este un număr impar, dar aceasta nu este o compulsie. Cu toate acestea, există și câteva contra, în timp ce folosesc KNN, puține dintre acestea sunt

  • Nu merge bine cu datele categorice, deoarece nu putem găsi distanța dintre două caracteristici categorice.
  • De asemenea, nu funcționează bine cu date dimensionale înalte, deoarece algoritmul va fi dificil să calculeze distanța în fiecare dimensiune.

Dacă în prezent vedem că majoritatea cazurilor de utilizare în Machine Learning sunt înconjurate de algoritmul de clasificare la nivel de bază, acesta este modul în care KNN joacă un rol major în lumea învățării mașinilor.

Articole recomandate

Acesta este un ghid pentru algoritmul KNN. Aici discutăm despre introducerea și funcționarea algoritmului K Near Neighbors cu pași pentru implementarea algoritmului kNN în python. De asemenea, puteți consulta următoarele articole pentru a afla mai multe-

  1. Cum funcționează algoritmul SVM?
  2. Algoritmul MD5 (Avantaje și dezavantaje)
  3. K- Înseamnă algoritmul de clustering
  4. Tipuri de învățare de armare
  5. Ghid complet pentru algoritmul C ++

Categorie: