škrbina Što je KNN (K-najbliži susjedi)? - Ujedinite se.AI
Povežite se s nama
Majstorski tečaj umjetne inteligencije:

AI 101

Što je KNN (K-najbliži susjedi)?

mm
Ažurirano on

Što je K-najbliži susjed (KNN)?

K-Nearest Neighbors tehnika je strojnog učenja i algoritam koji može se koristiti i za regresijske i za klasifikacijske zadatke. K-najbliži susjedi pregledan oznake odabranog broja podatkovnih točaka okružuje ciljanu podatkovnu točku, kako bi se napravilo predviđanje o klasi u koju podatkovna točka spada. K-Nearest Neighbors (KNN) konceptualno je jednostavan, ali vrlo moćan algoritam i iz tih je razloga jedan od najpopularnijih algoritama strojnog učenja. Zaronimo duboko u KNN algoritam i vidimo kako točno radi. Dobro razumijevanje načina na koji KNN funkcionira omogućit će vam da cijenite najbolje i najgore slučajeve upotrebe KNN-a.

Pregled K-najbližih susjeda (KNN)

Fotografija: Antti Ajanki AnAj putem Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Vizualizirajmo skup podataka na 2D ravnini. Zamislite hrpu podatkovnih točaka na grafikonu, raširenih duž grafikona u malim skupinama. KNN ispituje distribuciju podatkovnih točaka i, ovisno o argumentima danim modelu, razdvaja podatkovne točke u skupine. Tim grupama se zatim dodjeljuje oznaka. Primarna pretpostavka koju donosi KNN model jest da su podatkovne točke/instance koje postoje u neposrednoj blizini jedna drugoj vrlo slične, dok ako je podatkovna točka daleko od druge skupine, ona je različita od tih podatkovnih točaka.

KNN model izračunava sličnost pomoću udaljenosti između dviju točaka na grafikonu. Što je veća udaljenost između točaka, manje su slične. Postoji više načina za izračunavanje udaljenosti između točaka, ali najčešća metrika udaljenosti je samo Euklidska udaljenost (udaljenost između dviju točaka u ravnoj liniji).

KNN je nadzirani algoritam učenja, što znači da primjeri u skupu podataka moraju imati dodijeljene oznake/njihove klase moraju biti poznate. Postoje još dvije važne stvari koje treba znati o KNN-u. Prvo, KNN je neparametarski algoritam. To znači da se ne donose nikakve pretpostavke o skupu podataka kada se koristi model. Naprotiv, model je u potpunosti konstruiran na temelju dostavljenih podataka. Drugo, nema dijeljenja skupa podataka na skupove za obuku i testove kada se koristi KNN. KNN ne generalizira između skupa za obuku i skupa za testiranje, tako da se svi podaci o obuci također koriste kada se od modela traži da napravi predviđanja.

Kako radi KNN algoritam

KNN algoritam prolazi kroz tri glavne faze dok se provodi:

  1. Postavljanje K na odabrani broj susjeda.
  2. Izračunavanje udaljenosti između dostavljenog/testnog primjera i primjera skupa podataka.
  3. Razvrstavanje izračunatih udaljenosti.
  4. Dohvaćanje oznaka za najviše K unosa.
  5. Vraćanje predviđanja o testnom primjeru.

U prvom koraku K odabire korisnik i on govori algoritmu koliko susjeda (koliko okolnih podatkovnih točaka) treba uzeti u obzir pri donošenju suda o skupini kojoj ciljni primjer pripada. U drugom koraku imajte na umu da model provjerava udaljenost između ciljanog primjera i svakog primjera u skupu podataka. Udaljenosti se zatim dodaju na popis i sortiraju. Nakon toga, sortirani popis se provjerava i vraćaju se oznake za gornji K elemenata. Drugim riječima, ako je K postavljen na 5, model provjerava oznake prvih 5 najbližih podatkovnih točaka ciljnoj podatkovnoj točki. Prilikom generiranja predviđanja o ciljnoj podatkovnoj točki, važno je je li zadatak a regresija or klasifikacija zadatak. Za regresijski zadatak koristi se srednja vrijednost gornjih K oznaka, dok se način gornjih K oznaka koristi u slučaju klasifikacije.

Točne matematičke operacije koje se koriste za izvođenje KNN razlikuju se ovisno o odabranoj metrici udaljenosti. Ako želite saznati više o tome kako se metrika izračunava, možete pročitati o nekim od najčešćih metrika udaljenosti, kao što su euklidska, Manhattani Minkowski.

Zašto je vrijednost K važna

Glavno ograničenje pri korištenju KNN je da se može odabrati neodgovarajuća vrijednost K (pogrešan broj susjeda koji treba uzeti u obzir). Ako se to dogodi, vraćena predviđanja mogu biti značajno netočna. Vrlo je važno da se, kada se koristi KNN algoritam, odabere odgovarajuća vrijednost za K. Želite odabrati vrijednost za K koja maksimalno povećava sposobnost modela da daje predviđanja na nevidljivim podacima, a istovremeno smanjuje broj pogrešaka koje čini.

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

Niže vrijednosti K znače da su predviđanja koja donosi KNN manje stabilna i pouzdana. Da biste dobili intuiciju zašto je to tako, razmotrite slučaj u kojem imamo 7 susjeda oko ciljne podatkovne točke. Pretpostavimo da KNN model radi s K vrijednošću 2 (tražimo od njega da pogleda dva najbliža susjeda kako bi napravio predviđanje). Ako velika većina susjeda (pet od sedam) pripada Blue klasi, ali su dva najbliža susjeda slučajno Red, model će predvidjeti da je primjer upita Red. Unatoč pretpostavkama modela, u takvom scenariju Plava bi bila bolja pretpostavka.

Ako je to slučaj, zašto jednostavno ne bismo odabrali najveću moguću vrijednost K? To je zato što će modelu reći da uzme u obzir previše susjeda također smanjiti točnost. Kako se radijus koji KNN model uzima u obzir povećava, on će na kraju početi razmatrati podatkovne točke koje su bliže drugim grupama nego što su ciljne podatkovne točke i počet će dolaziti do pogrešne klasifikacije. Na primjer, čak i ako je točka koja je inicijalno odabrana bila u jednom od gornjih crvenih područja, ako je K postavljen previsoko, model bi posegnuo u druga područja kako bi razmotrio točke. Kada se koristi KNN model, različite vrijednosti K se pokušavaju vidjeti koja vrijednost daje najbolju izvedbu modela.

KNN za i protiv

Ispitajmo neke prednosti i nedostatke KNN modela.

Pros:

KNN se može koristiti i za zadatke regresije i klasifikacije, za razliku od nekih drugih algoritama za nadzirano učenje.

KNN je vrlo precizan i jednostavan za korištenje. Lako ga je interpretirati, razumjeti i implementirati.

KNN ne donosi nikakve pretpostavke o podacima, što znači da se mogu koristiti za širok raspon problema.

Cons:

KNN pohranjuje većinu ili sve podatke, što znači da model zahtijeva puno memorije i računalno je skup. Veliki skupovi podataka također mogu uzrokovati dugotrajno predviđanje.

KNN se pokazao vrlo osjetljivim na veličinu skupa podataka i može ga se prilično lako odbaciti irelevantnim značajkama u usporedbi s drugim modelima.

Sažetak K-najbližih susjeda (KNN)

K-Nearest Neighbors jedan je od najjednostavnijih algoritama strojnog učenja. Unatoč tome koliko je KNN jednostavan, u konceptu je također moćan algoritam koji daje prilično visoku točnost kod većine problema. Kada koristite KNN, svakako eksperimentirajte s različitim vrijednostima K kako biste pronašli broj koji pruža najveću točnost.

Bloger i programer sa specijalnošću u Strojno učenje i Duboko učenje temama. Daniel se nada pomoći drugima da iskoriste snagu umjetne inteligencije za društveno dobro.