Uvod v algoritem KNN

K algoritem za najbližji sosed, znan kot KNN, je osnovni algoritem za strojno učenje. Razumevanje tega algoritma je zelo dober kraj za začetek strojnega učenja, saj je logika tega algoritma vključena v številne druge modele strojnega učenja. K najbližji sosedov algoritem spada pod razvrstitveni del nadzorovanega učenja.

Kaj je nadzorovano učenje?

Nadzorovani algoritem učenja je neke vrste algoritem, pri katerem se pri zaužitju neoznačenih podatkov zanaša na označen vhod za učenje in napoveduje na podlagi funkcije. Ko smo razumeli, kaj nadzorovano učenje omogoča, da vidimo, kaj je klasifikacija, algoritem klasifikacije daje diskretno vrednost kot izhodne in ne neprekinjene vrednosti.

Kako deluje algoritem KNN?

K Najbližji sosedje je osnovni algoritem, ki shrani vse razpoložljive in napoveduje razvrstitev neoznačenih podatkov na podlagi merila podobnosti. V linearni geometriji, ko sta na 2D kartezijanskem sistemu narisana dva parametra, ugotovimo merilo podobnosti tako, da izračunamo razdaljo med točkami. Tu velja enako, algoritem KNN deluje na predpostavki, da podobne stvari obstajajo v neposredni bližini, preprosto lahko postavimo v iste stvari, da ostanejo blizu drug drugemu.

Primer: Če imamo nabor podatkov, ko je načrtovan videti tako, bomo razvrstili te podatkovne točke. Najbližji sosedski algoritem bo najprej določil razdaljo med točkami in preveril, ali sta si podobni ali ne.

V geometriji po Evklidovi funkciji razdalje lahko izračunamo z naslednjo enačbo,

Če je K = 1, je primer preprosto dodeljen razredu njegovega najbližjega soseda (v skoraj vseh situacijah matematike uporabljamo "1", lahko med usposabljanjem modelov v strojnem učenju spremenimo vrednost K in bomo razpravljajte o tem v članku) X in Y sta vrednosti na osih koordinat.

Če tu opazimo, bodo vsi ukrepi razdalje, ki jih dosežemo, neprekinjene spremenljivke, vendar pri klasifikaciji potrebujemo diskretne vrednosti, za to pa moramo uporabiti razdaljo kladiva.

Ta enačba nam prinaša tudi standardizacijo številskih vrednosti med 0 do 1, če je v podatkovnem nizu mešanica številčnih in kategoričnih vrednosti.

X Y Razdalja
Z rakom Z rakom X = Y → D = 0
Brez raka Brez raka X! = Y → D = 1

Algoritem deluje na ta način in zdaj pojdimo v to, kako izberemo vrednost K v KNN.

Izbira vrednosti K v algoritmu KNN

Preden vidimo, katere dejavnike moramo upoštevati pri izbiri vrednosti K, moramo razumeti, kako vrednost K vpliva algoritem.

To so parcele istega nabora podatkov z različnimi vrednostmi K, vrednost K je ena za črto v levem zgornjem kotu in najvišja za parcelo v desnem spodnjem kotu. Če natančno preučimo, lahko razumemo, da meja klasifikacijskega algoritma postane gladka, ko vrednost K narašča. To pomeni, da je vrednost K neposredno sorazmerna z gladkostjo meje. Torej iz tega lahko razberemo, da če je vrednost K nastavljena na 1, bo vadbeni model prenapolnil podatke in če bo vrednost K nastavljena na veliko število, bo podatke premalo uporabila. Za izbiro optimalne vrednosti K moramo preveriti napako preverjanja z več K-vrednostmi in izbrati eno z najmanjšo napako.

Koraki za izvajanje algoritma KNN v Pythonu

Do zdaj smo se naučili teoretičnega dela algoritma K Najbližjega soseda, zdaj pa si lahko ogledamo praktično z učenjem izvajanja v pythonu.

1. korak: Uvoz knjižnic

Spodaj bomo videli Uvoz knjižnic, ki jih potrebujemo za zagon KNN.

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

2. korak: Uvoz nabora podatkov

Tu bomo videli uvoženi nabor podatkov.

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

3. korak: Razdelitev nabora podatkov

Naslednji korak je, da razdelimo naš nabor podatkov na test in 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)

Opomba: Nabor podatkov, ki ga uporabljam za prikaz, je bil predhodno obdelan z definiranjem vrednosti X in Y. Če se to najprej ne naredi, je treba to storiti, ker moramo, ko se klasifikacijski model usposablja, za izračun razdalje posredovati označene podatke.

4. korak: Model usposabljanja

Zdaj v tem koraku si bomo ogledali model treninga.

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

Opomba: Tu uporabljamo klasifikator sosedov K, uvožen iz knjižnice modula sklearn.neighbours.

5. korak: Prikazovanje napovedi

Tekoče napovedi za podatke o razdelitvi testa.

y_pred = classifier.predict(X_test)

6. korak: Preverite preverjanje veljavnosti

Naslednji korak je ocenjevanje algoritma in preverjanje napake pri preverjanju veljavnosti, ponovno zaženimo z drugačno K vrednostjo in upoštevamo vrednost k, kjer dobimo najmanjšo napako pri preverjanju. Tako lahko praktično implementiramo klasifikator K Najbližji sosedje, obstaja več načinov za izvajanje tega algoritma, to je le eden od njih in v tem članku sem zelo na kratko opisal korake, saj je naš glavni dnevni red razumevanje, kako algoritem deluje.

Zaključek

Kot že rečeno, je algoritem K Najbližji sosedi eden najpreprostejših in najlažjih algoritmov, ki se uporablja za razvrščanje. Glede na to, kako deluje, spada tudi pod „Algoritem lenega učenja“. Na splošno je vrednost K, ki jo vsi opravijo med usposabljanjem modela, liho število, vendar to ni prisila. Vendar pa je med uporabo KNN malo kontrastov

  • S kategoričnimi podatki ne gre dobro, saj ne moremo najti razdalje med dvema kategoričnimi lastnostmi.
  • Prav tako ne deluje dobro z visoko dimenzionalnimi podatki, saj bo algoritem težko izračunal razdaljo v vsaki dimenziji.

Če vidimo, da je večina primerov uporabe v strojnem učenju obkrožena z algoritmom za klasifikacijo na osnovni ravni, potem KNN igra glavno vlogo v svetu strojnega učenja.

Priporočeni članki

To je vodnik po algoritmu KNN. Tukaj razpravljamo o uvedbi in delovanju algoritma K Najbližji sosedje s koraki za implementacijo algoritma kNN v pythonu. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Kako deluje algoritem SVM?
  2. Algoritem MD5 (prednosti in slabosti)
  3. K- Pomeni algoritem grozda
  4. Vrste okrepitvenega učenja
  5. Celoten vodnik po algoritmu C ++

Kategorija: