Úvod do KNN algoritmu

K Najbližší Neighbourov algoritmus, známy ako KNN, je základným algoritmom pre strojové učenie. Pochopenie tohto algoritmu je veľmi dobrým miestom na začatie strojového učenia, pretože logika tohto algoritmu je začlenená do mnohých ďalších modelov strojového učenia. Algoritmus Nearest Neighbour patrí do klasifikačnej časti v učení pod dohľadom.

Čo je učenie pod dohľadom?

Algoritmus pod dohľadom je druh algoritmu, pri ktorom sa pri poskytovaní neoznačených údajov spolieha na označený vstup, ktorý sa má učiť a predpovedá na základe funkcie. Keď sme pochopili, čo je učenie pod dohľadom, pozrime sa, čo je klasifikácia, klasifikačný algoritmus dáva diskrétnu hodnotu ako výstup, nie spojité hodnoty.

Ako funguje KNN algoritmus?

K Najbližší susedia je základný algoritmus, ktorý ukladá všetky dostupné údaje a predpovedá klasifikáciu neoznačených údajov na základe miery podobnosti. V lineárnej geometrii, keď sú na 2D karteziánskom systéme vynesené dva parametre, určíme mieru podobnosti vypočítaním vzdialenosti medzi bodmi. To isté platí aj tu, KNN algoritmus pracuje na predpoklade, že podobné veci existujú v tesnej blízkosti, jednoducho môžeme dať do rovnakých vecí zostať blízko seba.

Príklad: Ak máme dátovú súpravu, keď je vykreslenie vyzerá takto, na klasifikáciu týchto dátových bodov K Algoritmus najbližších susedov najskôr identifikuje vzdialenosť medzi bodmi a uvidí, či sú podobné alebo nie.

V geometrii podľa euklidovskej funkcie možno vypočítať vzdialenosť pomocou nasledujúcej rovnice,

Ak K = 1, potom je prípad jednoducho priradený triede jeho najbližšieho suseda („1“ používame takmer v každej situácii v matematike, môžeme zmeniť hodnotu K, zatiaľ čo trénujeme modely v strojovom učení a my diskutujte o tom ďalej v článku) X a Y sú hodnoty na súradnicových osiach.

Ak si to všimneme, všetky miery vzdialenosti, ktorú dostávame, budú súvislé premenné, ale pri klasifikácii potrebujeme diskrétne hodnoty, na dosiahnutie tohto cieľa musíme použiť Hammingovu vzdialenosť.

Táto rovnica nám tiež prináša štandardizáciu číselných hodnôt od 0 do 1, keď je v súbore údajov zmes číselných a kategorických hodnôt.

X Y vzdialenosť
S rakovinou S rakovinou X = Y → D = 0
Bez rakoviny Bez rakoviny X! = Y → D = 1

Týmto spôsobom algoritmus funguje a teraz sa pozrime na to, ako vyberieme hodnotu K v KNN.

Výber hodnoty K v algoritme KNN

Predtým, ako uvidíme, aké sú faktory, ktoré treba brať do úvahy pri výbere hodnoty K, musíme pochopiť, ako hodnota K ovplyvňuje algoritmus.

Toto sú grafy toho istého súboru údajov s rôznymi hodnotami K, hodnota K je 1 pre graf v ľavom hornom rohu a najvyššia pre graf v pravom dolnom rohu. Ak budeme pozorne skúmať, môžeme pochopiť, že hranica klasifikačného algoritmu sa stáva hladkou, keď sa zvyšuje hodnota K. To znamená, že hodnota K je priamo úmerná hladkosti hranice. Z toho môžeme pochopiť, že ak je hodnota K nastavená na 1, potom tréningový model preplní údaje a ak je hodnota K nastavená na veľké množstvo, potom tieto údaje nevyhovuje. Aby sme mohli zvoliť optimálnu hodnotu K, musíme skontrolovať validačnú chybu s viacerými hodnotami K a zvoliť jednu s minimálnou chybou.

Kroky na implementáciu KNN algoritmu v Pythone

Doteraz sme sa naučili teoretickú časť algoritmu K Nearest Neighbour, teraz sa pozrime prakticky tým, že sa naučíme, ako implementovať v pythone.

Krok 1: Importovanie knižníc

V nasledujúcom texte sa zobrazí Import knižníc, ktoré potrebujeme na spustenie KNN.

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

Krok 2: Import súboru údajov

Tu uvidíme importovaný súbor údajov.

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

Krok 3: Rozdelenie množiny údajov

Ďalším krokom je rozdelenie nášho súboru údajov na testovacie a vlakové rozdelenie.

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)

Poznámka: Súbor údajov, ktorý používam na preukázanie, bol vopred spracovaný s definovaním hodnôt X a Y. Ak sa to neurobí najskôr, musí sa to urobiť, pretože kým sa klasifikačný model pripravuje, na výpočet vzdialeností musíme odovzdať označené údaje.

Krok 4: Tréningový model

Teraz v tomto kroku uvidíme modelový tréning.

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

Poznámka: Tu používame klasifikátor susedov K importovaný z knižnice modulu sklearn.neighbours.

Krok 5: Spustenie predpovedí

Spúšťanie predpovedí na testovacích rozdelených údajoch.

y_pred = classifier.predict(X_test)

Krok 6: Skontrolujte overenie platnosti

Ďalším krokom je vyhodnotenie algoritmu a kontrola chyby validácie, spustenie znova s ​​inou hodnotou K a zváženie hodnoty k, kde dostaneme minimálnu chybu validácie. Takto môžeme prakticky implementovať klasifikátor K Nearest Neighbors, existuje niekoľko spôsobov, ako implementovať tento algoritmus, to je len jeden z nich, av tomto článku som veľmi stručne opísal kroky, keďže našou hlavnou agendou je porozumieť tomu, ako algoritmus funguje.

záver

Ako už bolo povedané, algoritmus K Nearest Neighbors je jedným z najjednoduchších a najjednoduchších algoritmov používaných na klasifikáciu. Na základe toho, ako to funguje, tiež patrí do „algoritmu lazy Learning“ (Lazy Learning Algorithm). Všeobecne platí, že hodnota K, ktorú všetci absolvujú pri tréningu modelu, je nepárne číslo, ale nejde o nutkanie. Pri používaní KNN však existuje len niekoľko nevýhod

  • S kategorickými údajmi to nejde dobre, pretože nemôžeme nájsť vzdialenosť medzi dvoma kategorickými znakmi.
  • Taktiež to nefunguje s vysokorozmernými údajmi, pretože pre algoritmus bude ťažké vypočítať vzdialenosť v každej dimenzii.

Ak v súčasnosti vidíme, že väčšina prípadov použitia v strojovom učení je obklopená klasifikačným algoritmom na základnej úrovni, tak KNN hrá hlavnú úlohu vo svete strojového učenia.

Odporúčané články

Toto je príručka pre algoritmus KNN. Tu diskutujeme zavedenie a fungovanie algoritmu K Nearest Neighbors s krokmi na implementáciu algoritmu kNN v pythone. Viac informácií nájdete aj v nasledujúcich článkoch

  1. Ako funguje algoritmus SVM?
  2. Algoritmus MD5 (výhody a nevýhody)
  3. K- znamená algoritmus zoskupovania
  4. Druhy zosilnenia výučby
  5. Kompletný sprievodca algoritmom C ++

Kategórie: