peň Čo je to KNN (K-Nearest Neighbors)? - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Čo je to KNN (K-Nearest Neighbors)?

mm
Aktualizované on

Čo je to K-Nearest Neighbors (KNN)?

K-Nearest Neighbors je technika a algoritmus strojového učenia možno použiť pre regresné aj klasifikačné úlohy. K-Najbližší susedia skúmal označenia zvoleného počtu údajových bodov obklopujúce cieľový údajový bod, aby bolo možné predpovedať triedu, do ktorej údajový bod spadá. K-Nearest Neighbors (KNN) je koncepčne jednoduchý, ale veľmi výkonný algoritmus az týchto dôvodov je to jeden z najpopulárnejších algoritmov strojového učenia. Poďme sa hlboko ponoriť do algoritmu KNN a uvidíme, ako presne funguje. Dobré pochopenie toho, ako funguje KNN, vám umožní oceniť najlepšie a najhoršie prípady použitia pre KNN.

Prehľad K-Nearest Neighbors (KNN)

Foto: Antti Ajanki AnAj prostredníctvom Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Poďme si predstaviť množinu údajov v 2D rovine. Predstavte si na grafe množstvo údajových bodov, ktoré sú rozložené pozdĺž grafu v malých zhlukoch. KNN skúma distribúciu dátových bodov a v závislosti od argumentov daných modelu rozdeľuje dátové body do skupín. Týmto skupinám sa potom priradí označenie. Primárnym predpokladom modelu KNN je, že dátové body/inštancie, ktoré existujú vo vzájomnej tesnej blízkosti, sú veľmi podobné, zatiaľ čo ak je dátový bod ďaleko od inej skupiny, nie je podobný týmto dátovým bodom.

Model KNN vypočítava podobnosť pomocou vzdialenosti medzi dvoma bodmi v grafe. Čím väčšia je vzdialenosť medzi bodmi, tým sú si menej podobné. Existuje viacero spôsobov, ako vypočítať vzdialenosť medzi bodmi, ale najbežnejšou metrikou vzdialenosti je práve euklidovská vzdialenosť (vzdialenosť medzi dvoma bodmi v priamke).

KNN je algoritmus učenia pod dohľadom, čo znamená, že príklady v súbore údajov musia mať priradené označenia/ich triedy musia byť známe. O KNN treba vedieť ešte dve dôležité veci. Po prvé, KNN je neparametrický algoritmus. To znamená, že pri použití modelu sa nerobia žiadne predpoklady o súbore údajov. Model je skôr vytvorený výlučne z poskytnutých údajov. Po druhé, pri používaní KNN nedochádza k rozdeleniu súboru údajov na tréningové a testovacie súbory. KNN nerobí žiadne zovšeobecňovanie medzi tréningovou a testovacou sadou, takže všetky tréningové dáta sa použijú aj vtedy, keď je model požiadaný o predpovede.

Ako funguje algoritmus KNN

Algoritmus KNN prechádza pri vykonávaní tromi hlavnými fázami:

  1. Nastavenie K na zvolený počet susedov.
  2. Výpočet vzdialenosti medzi poskytnutým/testovacím príkladom a príkladmi množiny údajov.
  3. Triedenie vypočítaných vzdialeností.
  4. Získanie štítkov prvých K záznamov.
  5. Vrátenie predpovede o príklade testu.

V prvom kroku si užívateľ vyberie K a povie algoritmu, koľko susedov (koľko okolitých dátových bodov) by sa malo brať do úvahy pri posudzovaní skupiny, do ktorej patrí cieľový príklad. V druhom kroku si všimnite, že model kontroluje vzdialenosť medzi cieľovým príkladom a každým príkladom v množine údajov. Vzdialenosti sa potom pridajú do zoznamu a zoradia sa. Potom sa skontroluje triedený zoznam a vrátia sa označenia pre prvých K prvkov. Inými slovami, ak je K nastavené na 5, model skontroluje označenia prvých 5 údajových bodov najbližších k cieľovému údajovému bodu. Pri vykresľovaní predpovede o cieľovom údajovom bode je dôležité, či je úlohou a regresia or klasifikácia úloha. Pre regresnú úlohu sa používa priemer vrchných K označení, zatiaľ čo v prípade klasifikácie sa používa mód vrchných K označení.

Presné matematické operácie použité na vykonanie KNN sa líšia v závislosti od zvolenej metriky vzdialenosti. Ak by ste sa chceli dozvedieť viac o tom, ako sa metriky počítajú, môžete si prečítať o niektorých najbežnejších metrikách vzdialenosti, ako napr. euklidovský, Manhattana Minkowski.

Prečo na hodnote K záleží

Hlavným obmedzením pri použití KNN je, že môže byť zvolená nesprávna hodnota K (nesprávny počet susedov, ktorí sa majú zvážiť). Ak k tomu dôjde, predpovede, ktoré sa vrátia, môžu byť výrazne mimo. Je veľmi dôležité, aby sa pri použití algoritmu KNN vybrala správna hodnota pre K. Chcete vybrať hodnotu pre K, ktorá maximalizuje schopnosť modelu predpovedať neviditeľné údaje a zároveň znižuje počet chýb, ktoré robí.

Foto: Agor153 cez Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Nižšie hodnoty K znamenajú, že predpovede poskytované KNN sú menej stabilné a spoľahlivé. Ak chcete získať intuíciu, prečo je to tak, zvážte prípad, keď máme okolo cieľového dátového bodu 7 susedov. Predpokladajme, že model KNN pracuje s hodnotou K 2 (žiadame ho, aby sa pozrel na dvoch najbližších susedov, aby urobil predpoveď). Ak veľká väčšina susedov (päť zo siedmich) patrí do modrej triedy, ale dvaja najbližší susedia sú náhodou Červení, model predpovedá, že príklad dotazu je Červený. Napriek modelkinmu odhadu by v takomto scenári bola Modrá lepší odhad.

Ak je to tak, prečo jednoducho nezvoliť najvyššiu hodnotu K, akú môžeme? Je to preto, že ak poviete modelu, aby zvážil príliš veľa susedov, zníži to aj presnosť. Keď sa polomer, ktorý model KNN zvažuje, zvyšuje, nakoniec začne zvažovať dátové body, ktoré sú bližšie k iným skupinám, než sú cieľové dátové body, a začne sa vyskytovať nesprávna klasifikácia. Napríklad, aj keď bol pôvodne vybraný bod v jednej z červených oblastí vyššie, ak by bolo K nastavené príliš vysoko, model by zasiahol do iných oblastí, aby zvážil body. Pri použití modelu KNN sa skúšajú rôzne hodnoty K, aby sa zistilo, ktorá hodnota dáva modelu najlepší výkon.

Výhody a nevýhody KNN

Pozrime sa na niektoré výhody a nevýhody modelu KNN.

Pros:

KNN možno použiť na regresné aj klasifikačné úlohy, na rozdiel od niektorých iných algoritmov učenia pod dohľadom.

KNN je vysoko presný a jednoduchý na používanie. Je ľahké ho interpretovať, pochopiť a implementovať.

KNN nevytvára žiadne predpoklady o údajoch, čo znamená, že ich možno použiť na širokú škálu problémov.

Nevýhody:

KNN ukladá väčšinu alebo všetky údaje, čo znamená, že model vyžaduje veľa pamäte a je výpočtovo nákladný. Veľké množiny údajov môžu tiež spôsobiť, že predpovede budú trvať dlho.

Ukázalo sa, že KNN je veľmi citlivý na rozsah súboru údajov a v porovnaní s inými modelmi ho môžu pomerne ľahko zhodiť irelevantné funkcie.

Súhrn K-Nearest Neighbors (KNN)

K-Nearest Neighbors je jedným z najjednoduchších algoritmov strojového učenia. Napriek tomu, aká jednoduchá je koncepcia KNN, je to tiež výkonný algoritmus, ktorý poskytuje pomerne vysokú presnosť pri väčšine problémov. Keď používate KNN, nezabudnite experimentovať s rôznymi hodnotami K, aby ste našli číslo, ktoré poskytuje najvyššiu presnosť.

Bloger a programátor so špecializáciou v Strojové učenie a Deep Learning témy. Daniel dúfa, že pomôže ostatným využívať silu AI pre sociálne dobro.