Uvod u algoritam KNN-a

K algoritam najbližeg susjeda, poznatiji kao KNN, osnovni je algoritam za strojno učenje. Razumijevanje ovog algoritma vrlo je dobro mjesto za početak strojnog učenja, jer je logika ovog algoritma ugrađena u mnoge druge modele strojnog učenja. K Najbliži susjedni algoritam spada u dio klasifikacije u nadgledanom učenju.

Što je nadzirano učenje?

Nadzirani algoritam učenja vrsta je algoritma gdje se oslanja na označeni ulaz za učenje i predviđanje na temelju funkcije kada se daju neobilježeni podaci. Pošto smo shvatili što nadgledano učenje omogućuje da vidimo što je klasifikacija, algoritam klasifikacije daje diskretnu vrijednost kao izlazne, a ne kontinuirane vrijednosti.

Kako djeluje KNN algoritam?

K Najbliži susjedi osnovni je algoritam koji pohranjuje sve dostupne i predviđa klasificiranje neobilježenih podataka na temelju mjere sličnosti. U linearnoj geometriji kada su prikazana dva parametra na 2D kartezijanskom sustavu, identificiramo mjeru sličnosti izračunavanjem udaljenosti između točaka. Isto se ovdje primjenjuje, algoritam KNN djeluje na pretpostavku da slične stvari postoje u neposrednoj blizini, jednostavno možemo staviti u to da iste stvari ostanu blizu jedna drugoj.

Primjer: Ako imamo skup podataka kada nacrt izgleda ovako, za klasificiranje ovih podataka K K algoritam najbližih susjeda prvo će identificirati udaljenost između točaka i vidjeti jesu li slične ili nisu.

U geometriji prema Euklidovoj funkciji udaljenosti može se izračunati sljedećom jednadžbom,

Ako je K = 1, slučaj je jednostavno dodijeljen razredu najbližeg susjeda (Koristimo "1" u gotovo svim situacijama u matematici, možemo mijenjati vrijednost K tijekom treninga modela u strojnom učenju i hoćemo raspravljajte o tome dalje u članku) X i Y su vrijednosti na koordinatnim osovinama.

Ako ovdje primijetimo, sve mjere udaljenosti koje dobivamo bit će neprekidne varijable, ali potrebne su nam diskretne vrijednosti dok radimo klasifikaciju, tako da za postizanje tog cilja moramo koristiti udaljenost čekića.

Ova jednadžba donosi nam i standardizaciju numeričkih vrijednosti između 0 do 1 kada u skupu podataka postoji mješavina brojčanih i kategorijskih vrijednosti.

x Y Udaljenost
Uz Rak Uz Rak X = Y → D = 0
Bez raka Bez raka X! = Y → D = 1

Algoritam funkcionira na ovaj način i sada zavirimo u način na koji ćemo odabrati vrijednost K u KNN.

Odabir vrijednosti K u algoritmu KNN

Prije nego što vidimo koji su faktori koje treba uzeti u obzir pri odabiru K vrijednosti, moramo razumjeti kako vrijednost K utječe na algoritam.

To su plohe istog skupa podataka s različitim K vrijednostima, K-vrijednost je 1 za crtež u lijevom gornjem kutu, a najviša za shemu u desnom donjem kutu. Ako ga pažljivo proučimo, možemo shvatiti da granica klasifikacijskog algoritma postaje glatka kako vrijednost K raste. To je vrijednost K izravno je proporcionalna glatkoći granice. Dakle, iz ovoga možemo shvatiti da ako je vrijednost K postavljena na 1, tada će model treninga previdjeti podatke, a ako je vrijednost K postavljena na veliki broj, tada će podaci biti nedovoljni. Za odabir optimalne vrijednosti K trebamo provjeriti pogrešku validacije s više K - vrijednosti i odabrati jednu s minimalnom pogreškom.

Koraci za implementaciju KNN algoritma u Pythonu

Do sada smo naučili teorijski dio algoritma K Najbliži susjed, a sada ćemo vidjeti praktično učenjem kako implementirati u python.

1. korak: uvoz biblioteka

U nastavku ćemo vidjeti Uvoz knjižnica koje nam trebaju za pokretanje KNN-a.

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

Korak 2: Uvoz skupa podataka

Ovdje ćemo vidjeti skup podataka koji se uvoze.

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

Korak 3: Podjela skupa podataka

Sljedeći korak je podijeliti naš skup podataka na test i vlak vlak.

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)

Napomena: Skup podataka koji koristim za demonstraciju unaprijed je obrađen s definiranjem X i Y vrijednosti. Ako se to prvo ne napravi, to mora biti učinjeno, jer dok se klasifikacijski model trenira, za izračun udaljenosti moramo proslijediti obilježene podatke.

4. korak: Model treninga

Sada ćemo u ovom koraku vidjeti trening modela.

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

Napomena: Ovdje koristimo K susjedni klasifikator uvezeni iz knjižnice modula sklearn.neighbours.

5. korak: Pokretanje predviđanja

Trčanje predviđanja na osnovu podataka o testnom podjelu.

y_pred = classifier.predict(X_test)

Korak 6: Provjera valjanosti

Sljedeći korak je procjena algoritma i provjeravanje pogreške validacije, ponovno pokretanje s različitim vrijednostima K i razmatranje k vrijednosti tamo gdje dobivamo minimalnu pogrešku provjere. Ovako možemo praktično implementirati klasifikator K Najbliži susjedi, postoji više načina za implementaciju ovog algoritma, ovo je samo jedan od njih i u ovom sam članku opisao vrlo kratko korake jer je naš glavni dnevni red razumjeti kako algoritam radi.

Zaključak

Kao što je rečeno ranije, algoritam K Najbliži susjedi jedan je od najjednostavnijih i najlakših algoritama koji se koriste za klasifikaciju. Na osnovu načina na koji to funkcionira također se nalazi i pod „Algoritamom lijenog učenja“. Općenito, K-vrijednost koju svi prođu tijekom treninga modela je neparan broj, ali to nije prisila. Međutim, malo je nedostataka dok koristite KNN malo ih je

  • Ne ide dobro s kategorijskim podacima jer ne možemo pronaći udaljenost između dvije kategorijske značajke.
  • Također ne funkcionira dobro s podacima velike dimenzije, jer će algoritmu biti teško izračunati udaljenost u svakoj dimenziji.

Ako vidimo da je većina slučajeva uporabe u Strojnom učenju okružena algoritmom za klasifikaciju na osnovnoj razini, to znači da KNN igra veliku ulogu u svijetu strojnog učenja.

Preporučeni članci

Ovo je vodič za KNN algoritam. Ovdje razgovaramo o uvođenju i radu algoritma K Najbliži susjedi s koracima za implementaciju algoritma kNN u python-u. Možete pogledati i sljedeće članke da biste saznali više -

  1. Kako djeluje SVM algoritam?
  2. MD5 algoritam (prednosti i nedostaci)
  3. K- znači algoritam klasteriranja
  4. Vrste usavršavanja učenja
  5. Kompletan vodič za C ++ algoritam

Kategorija: