škrbina Kaj je KNN (K-najbližji sosedje)? - Združi se.AI
Povežite se z nami

AI 101

Kaj je KNN (K-najbližji sosedje)?

mm
Posodobljeno on

Kaj so K-najbližji sosedje (KNN)?

K-Nearest Neighbors je tehnika strojnega učenja in algoritem, ki se lahko uporablja za naloge regresije in klasifikacije. K-Najbližji sosedje preučiti oznake izbranega števila podatkovnih točk ki obkrožajo ciljno podatkovno točko, da bi naredili napoved o razredu, v katerega sodi podatkovna točka. K-Nearest Neighbors (KNN) je konceptualno preprost, a zelo zmogljiv algoritem in je zaradi teh razlogov eden najbolj priljubljenih algoritmov strojnega učenja. Poglobimo se v algoritem KNN in natančno poglejmo, kako deluje. Če boste dobro razumeli, kako deluje KNN, boste lahko cenili najboljše in najslabše primere uporabe KNN.

Pregled K-najbližjih sosedov (KNN)

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

Vizualizirajmo nabor podatkov na 2D ravnini. Predstavljajte si množico podatkovnih točk na grafu, razporejenih po grafu v majhnih skupinah. KNN preuči porazdelitev podatkovnih točk in glede na argumente, podane modelu, loči podatkovne točke v skupine. Tem skupinam se nato dodeli oznaka. Primarna predpostavka modela KNN je, da so si podatkovne točke/primeri, ki obstajajo v neposredni bližini druga druge, zelo podobni, medtem ko je podatkovna točka daleč od druge skupine drugačna od teh podatkovnih točk.

Model KNN izračuna podobnost z uporabo razdalje med dvema točkama na grafu. Večja kot je razdalja med točkama, manj sta si podobni. Obstaja več načinov za izračun razdalje med točkami, vendar je najpogostejša metrika razdalje le evklidska razdalja (razdalja med dvema točkama v ravni črti).

KNN je algoritem za nadzorovano učenje, kar pomeni, da morajo imeti primeri v naboru podatkov dodeljene oznake/njihovi razredi morajo biti znani. O KNN je treba vedeti še dve pomembni stvari. Prvič, KNN je neparametrični algoritem. To pomeni, da pri uporabi modela ni nobenih predpostavk o naboru podatkov. Namesto tega je model v celoti sestavljen iz posredovanih podatkov. Drugič, pri uporabi KNN nabor podatkov ni razdeljen na nabore za usposabljanje in teste. KNN ne posplošuje med naborom za usposabljanje in testiranjem, zato se vsi podatki o usposabljanju uporabijo tudi, ko se od modela zahteva napovedi.

Kako deluje algoritem KNN

Algoritem KNN gre med izvajanjem skozi tri glavne faze:

  1. Nastavitev K na izbrano število sosedov.
  2. Izračun razdalje med podanim/testnim primerom in primeri nabora podatkov.
  3. Razvrščanje izračunanih razdalj.
  4. Pridobivanje oznak najboljših K vnosov.
  5. Vrnitev napovedi o testnem primeru.

V prvem koraku K izbere uporabnik in algoritmu pove, koliko sosedov (koliko okoliških podatkovnih točk) je treba upoštevati pri podajanju presoje o skupini, ki ji ciljni primer pripada. V drugem koraku upoštevajte, da model preveri razdaljo med ciljnim primerom in vsakim primerom v naboru podatkov. Razdalje se nato dodajo na seznam in razvrstijo. Nato se pregleda razvrščeni seznam in vrnejo se oznake za zgornje elemente K. Z drugimi besedami, če je K nastavljen na 5, model preveri oznake prvih 5 podatkovnih točk, ki so najbližje ciljni podatkovni točki. Pri upodabljanju napovedi o ciljni podatkovni točki je pomembno, ali je naloga a regresija or Razvrstitev naloga. Za regresijsko nalogo se uporabi povprečje zgornjih K oznak, medtem ko se v primeru klasifikacije uporabi način zgornjih K oznak.

Natančne matematične operacije, ki se uporabljajo za izvedbo KNN, se razlikujejo glede na izbrano metriko razdalje. Če želite izvedeti več o tem, kako se meritve izračunajo, si lahko preberete o nekaterih najpogostejših meritvah razdalje, kot je npr. evklidsko, Manhattanin Minkowski.

Zakaj je vrednost K pomembna

Glavna omejitev pri uporabi KNN je, da se lahko izbere neustrezna vrednost K (upošteva se napačno število sosedov). Če se to zgodi, so lahko vrnjene napovedi bistveno drugačne. Zelo pomembno je, da je pri uporabi algoritma KNN izbrana pravilna vrednost za K. Izbrati želite vrednost za K, ki maksimira sposobnost modela za napovedovanje nevidnih podatkov, hkrati pa zmanjša število napak, ki jih naredi.

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

Nižje vrednosti K pomenijo, da so napovedi, ki jih prikaže KNN, manj stabilne in zanesljive. Da bi dobili intuicijo, zakaj je tako, razmislite o primeru, ko imamo 7 sosedov okoli ciljne podatkovne točke. Predpostavimo, da model KNN deluje z vrednostjo K 2 (prosimo ga, da pogleda dva najbližja soseda, da naredi napoved). Če velika večina sosedov (pet od sedmih) pripada modremu razredu, vendar sta dva najbližja soseda po naključju rdeča, bo model predvidel, da je primer poizvedbe rdeč. Kljub ugibanju modela bi bila v takem scenariju modra boljša ugibanje.

Če je temu tako, zakaj ne bi preprosto izbrali najvišje vrednosti K, ki jo lahko? Če naročite modelu, naj upošteva preveč sosedov, se bo namreč zmanjšala tudi natančnost. Ko se polmer, ki ga upošteva model KNN, poveča, bo sčasoma začel upoštevati podatkovne točke, ki so bližje drugim skupinam, kot so ciljne podatkovne točke, in začelo se bo pojavljati napačno razvrščanje. Na primer, tudi če je bila točka, ki je bila prvotno izbrana, v enem od zgornjih rdečih območij, če bi bil K nastavljen previsoko, bi model segel v druga območja in upošteval točke. Pri uporabi modela KNN se poskusijo različne vrednosti K, da se ugotovi, katera vrednost daje modelu najboljšo zmogljivost.

Prednosti in slabosti KNN

Oglejmo si nekaj prednosti in slabosti modela KNN.

Prednosti:

KNN se lahko uporablja tako za naloge regresije kot klasifikacije, za razliko od nekaterih drugih algoritmov za nadzorovano učenje.

KNN je zelo natančen in enostaven za uporabo. Enostaven za interpretacijo, razumevanje in izvajanje.

KNN ne daje nobenih predpostavk o podatkih, kar pomeni, da jih je mogoče uporabiti za najrazličnejše težave.

Slabosti:

KNN shrani večino ali vse podatke, kar pomeni, da model zahteva veliko pomnilnika in je računsko drag. Veliki nabori podatkov lahko tudi povzročijo, da napovedi trajajo dolgo.

Izkazalo se je, da je KNN zelo občutljiv na obseg nabora podatkov in ga lahko v primerjavi z drugimi modeli dokaj enostavno izločijo nepomembne funkcije.

Povzetek K-najbližjih sosedov (KNN)

K-Nearest Neighbors je eden najpreprostejših algoritmov strojnega učenja. Kljub temu, kako preprost je KNN, je v konceptu tudi zmogljiv algoritem, ki zagotavlja dokaj visoko natančnost pri večini problemov. Ko uporabljate KNN, ne pozabite eksperimentirati z različnimi vrednostmi K, da bi našli število, ki zagotavlja največjo natančnost.

Bloger in programer s posebnostmi v strojno učenje in Globoko učenje teme. Daniel upa, da bo drugim pomagal uporabiti moč umetne inteligence za družbeno dobro.