Sissejuhatus KNN-i algoritmi

K Lähima naabri algoritm, tuntud kui KNN, on masinõppe põhialgoritm. Selle algoritmi mõistmine on väga hea koht masinõppe õppimiseks, kuna selle algoritmi loogika on sisse viidud paljudesse teistesse masinõppe mudelitesse. K Lähima naabri algoritm kuulub juhendatud õppe klassifitseerimise osa alla.

Mis on juhendatud õpe?

Juhendatud õppe algoritm on omamoodi algoritm, kus see tugineb õppimiseks märgistatud sisendile ja ennustab funktsiooni põhjal märgistamata andmete esitamisel. Nagu oleme aru saanud, mis on juhendatud õppimine, vaatame, mis on klassifikatsioon, annab klassifitseerimise algoritm väljundina diskreetse väärtuse, mitte pidevad väärtused.

Kuidas KNN-i algoritm töötab?

K Lähimad naabrid on põhialgoritm, mis salvestab kõik saadaolevad ja ennustab märgistamata andmete klassifitseerimise sarnasuse mõõtme põhjal. Lineaarses geomeetrias, kui 2D-Descartes'i süsteemil on kujutatud kaks parameetrit, tuvastame sarnasuste mõõtmise punktide vahelise kauguse arvutamise teel. Sama kehtib ka siin, KNN-i algoritm töötab eeldusel, et sarnased asjad eksisteerivad ka vahetus läheduses, lihtsalt saame panna ühtede ja samadesse asjadesse üksteise läheduses püsima.

Näide: kui meil on andmekogum, kui graafik näeb välja selline, siis nende andmepunktide klassifitseerimiseks tuvastab K Lähimate naabrite algoritm kõigepealt punktide vahelise kauguse ja kontrollib, kas need on sarnased või mitte.

Eukleidilise geomeetria korral saab kaugusfunktsiooni arvutada järgmise võrrandi abil:

Kui K = 1, siis omistatakse juhtum lihtsalt lähima naabri klassile (me kasutame numbrit „1” peaaegu igas matemaatika olukorras, saame K väärtust muuta, kui koolitame mudeleid masinõppes, ja siis arutage seda lähemalt artiklis) X ja Y on koordinaaditelgede väärtused.

Kui siin tähele paneme, on kõik saadavad vahemaa mõõtmed pidevad muutujad, kuid klassifitseerimisel on vaja diskreetseid väärtusi, selle saavutamiseks peame kasutama haamrivahekaugust.

See võrrand annab meile ka arvväärtuste standardimise vahemikus 0 kuni 1, kui andmekogumis on arvuliste ja kategooriliste väärtuste segu.

X Y Kaugus
Vähiga Vähiga X = Y → D = 0
Ilma vähita Ilma vähita X! = Y → D = 1

Sel moel algoritm töötab ja nüüd, mõelgem, kuidas valida KN-is K väärtus.

K-väärtuse valimine KNN-i algoritmis

Enne kui vaadata, milliseid tegureid tuleb K väärtuse valimisel arvestada, peame mõistma, kuidas K väärtus mõjutab algoritmi.

Need on sama andmekogumi graafikud, millel on erinevad K väärtused, K-väärtus on vasakpoolses ülanurgas oleva graafiku jaoks kõrgeim ja paremas alanurgas oleva graafiku jaoks kõrgeim. Kui uurime hoolikalt, saame aru, et klassifitseerimise algoritmi piir muutub K väärtuse kasvades sujuvaks. See on K väärtus, mis on otseselt võrdeline piiri sujuvusega. Nii saame sellest aru, et kui K väärtuseks on seatud 1, sobib treenimismudel andmetega üle ja kui K väärtus on seatud suurele arvule, siis sobib see andmetega vähem. K optimaalse väärtuse valimiseks peame kontrollima valideerimisviga mitme K väärtusega ja valima väikseima veaga väärtuse.

Sammud KNN-i algoritmi rakendamisel Pythonis

Siiani oleme siin õppinud K Lähima Naabri algoritmi teoreetilist osa, nüüd laseme meil seda praktiliselt näha, õppides, kuidas pütonis rakendada.

1. samm: teekide importimine

Allpool näeme nende raamatukogude importimist, mida peame KNN-i käitamiseks.

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

2. samm: andmestiku importimine

Siin näeme andmestiku importimist.

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

3. samm: Jagage andmestik

Järgmine samm on jagada meie andmestik testideks ja rongideks jagamiseks.

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)

Märkus. Andmekogum, mida ma demonstreerin, on eeltöödeldud X ja Y väärtuste määratlemisega. Kui seda kõigepealt ei tehta, tuleb seda teha, sest klassifikatsioonimudeli treenimise ajal peame vahemaade arvutamiseks selle jaoks kandma märgistatud andmeid.

4. samm: koolitusmudel

Selles sammus näeme nüüd modellikoolitust.

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

Märkus. Siin kasutatakse K naabrite klassifikaatorit, mis on imporditud moodulist sklearn.neighbours.

5. samm: ennustuste käivitamine

Prognooside käitamine testi jagatud andmete kohta.

y_pred = classifier.predict(X_test)

6. samm: kontrollige valideerimist

Järgmine samm on algoritmi hindamine ja valideerimisvea kontrollimine, uue K väärtusega uuesti töötamine ja k väärtuse arvestamine, kus saame minimaalse valideerimisvea. Nii saame K Lähimate naabrite klassifikaatorit praktiliselt rakendada, selle algoritmi rakendamiseks on mitu viisi, see on vaid üks neist ja selles artiklis kirjeldasin väga lühidalt samme, kuna meie peamine tegevuskava on mõista, kuidas algoritm töötab.

Järeldus

Nagu varem öeldud, on K Lähimad naabrid algoritm üks lihtsamaid ja lihtsamaid klassifitseerimisel kasutatavaid algoritme. Selle tööpõhimõtte põhjal kuulub see ka “Lazy Learning Algorithm” alla. Üldiselt on K-väärtus, mille kõik mudeli treenimisel läbivad, paaritu arv, kuid see ei ole sund. Kuid ka KNN-i kasutamisel on vähe miinuseid, mõni neist on

  • See ei lähe kategooriliste andmetega hästi kokku, kuna me ei leia kahe kategoorilise tunnuse vahelist kaugust.
  • Samuti ei tööta see hästi kõrgmõõtmeliste andmetega, kuna algoritmil on keeruline arvutada iga mõõtme kaugust.

Kui näeme, et praegu on masinaõppes enamus kasutusjuhtumeid põhitasemel klassifitseerimise algoritmiga ümbritsetud, siis mängib KNN masinaõppe maailmas suurt rolli.

Soovitatavad artiklid

See on KNN-i algoritmi juhend. Siin käsitleme K Lähimate Naabrite algoritmi juurutamist ja töötamist koos sammudega kNN algoritmi pütoni rakendamiseks. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Kuidas SVM algoritm töötab?
  2. MD5 algoritm (eelised ja puudused)
  3. K- tähendab klasterdamisalgoritmi
  4. Tugevdusõppe tüübid
  5. C ++ algoritmi täielik juhend

Kategooria: