tynkä Mikä on KNN (K-Nearest Neighbors)? - Unite.AI
Liity verkostomme!

AI 101

Mikä on KNN (K-Nearest Neighbors)?

mm
Päivitetty on

Mikä on K-Lähimmät naapurit (KNN)?

K-Nearest Neighbors on koneoppimistekniikka ja -algoritmi, joka voidaan käyttää sekä regressio- että luokittelutehtäviin. K-Lähimmät naapurit tutkitaan valitun datapistemäärän nimikkeet kohdedatapisteen ympärillä voidakseen tehdä ennusteen luokasta, johon datapiste kuuluu. K-Nearest Neighbors (KNN) on käsitteellisesti yksinkertainen mutta erittäin tehokas algoritmi, ja näistä syistä se on yksi suosituimmista koneoppimisalgoritmeista. Sukellaanpa syvästi KNN-algoritmiin ja katsotaan kuinka se toimii. Hyvä käsitys KNN:n toiminnasta antaa sinulle mahdollisuuden arvostaa KNN:n parhaita ja huonoimpia käyttötapauksia.

Yleiskatsaus K-lähimmistä naapureista (KNN)

Kuva: Antti Ajanki AnAj Wikimedia Commonsin kautta, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Visualisoidaan tietojoukko 2D-tasolla. Kuvaa kaavioon joukko datapisteitä, jotka ovat hajallaan kaaviota pitkin pieniksi ryhmiksi. KNN tutkii datapisteiden jakautumisen ja jakaa datapisteet ryhmiin mallille annetuista argumenteista riippuen. Näille ryhmille määritetään sitten tunniste. KNN-mallin ensisijainen oletus on, että datapisteet/esiintymät, jotka ovat lähellä toisiaan, ovat hyvin samankaltaisia, kun taas jos datapiste on kaukana toisesta ryhmästä, se on erilainen kuin kyseiset datapisteet.

KNN-malli laskee samankaltaisuuden käyttämällä kaavion kahden pisteen välistä etäisyyttä. Mitä suurempi pisteiden välinen etäisyys on, sitä vähemmän samankaltaisia ​​ne ovat. Pisteiden välisen etäisyyden laskemiseen on useita tapoja, mutta yleisin etäisyysmittari on vain euklidinen etäisyys (kahden pisteen välinen etäisyys suoralla viivalla).

KNN on valvottu oppimisalgoritmi, mikä tarkoittaa, että aineiston esimerkeillä on oltava niille osoitetut tunnisteet/luokkien tulee olla tiedossa. KNN:stä on tiedettävä kaksi muuta tärkeää asiaa. Ensinnäkin KNN on ei-parametrinen algoritmi. Tämä tarkoittaa, että mallia käytettäessä ei tehdä oletuksia tietojoukosta. Pikemminkin malli on rakennettu kokonaan toimitetuista tiedoista. Toiseksi, tietojoukkoa ei jaeta harjoitus- ja testijoukkoon KNN:ää käytettäessä. KNN ei tee yleistyksiä harjoitus- ja testausjoukon välillä, joten kaikki harjoitustiedot käytetään myös, kun mallia pyydetään tekemään ennusteita.

Kuinka KNN-algoritmi toimii

KNN-algoritmi käy läpi kolme päävaihetta suoritettaessa:

  1. Asetetaan K valitulle naapureiden lukumäärälle.
  2. Toimitetun/testiesimerkin ja tietojoukkoesimerkkien välisen etäisyyden laskeminen.
  3. Laskettujen etäisyyksien lajittelu.
  4. Parhaiden K-merkintöjen tarrojen hakeminen.
  5. Palauttaa ennusteen testiesimerkistä.

Ensimmäisessä vaiheessa käyttäjä valitsee K:n ja se kertoo algoritmille, kuinka monta naapuria (kuinka monta ympäröivää datapistettä) tulee ottaa huomioon, kun tehdään arviota ryhmästä, johon kohdeesimerkki kuuluu. Huomaa toisessa vaiheessa, että malli tarkistaa kohdeesimerkin ja tietojoukon jokaisen esimerkin välisen etäisyyden. Etäisyydet lisätään sitten luetteloon ja lajitellaan. Jälkeenpäin lajiteltu luettelo tarkistetaan ja K-elementin otsikot palautetaan. Toisin sanoen, jos K on asetettu arvoon 5, malli tarkistaa kohdedatapistettä lähimmän viiden parhaan datapisteen otsikot. Kun teet ennustetta kohdedatapisteestä, sillä on merkitystä, onko tehtävä a regressio or luokittelu tehtävä. Regressiotehtävässä käytetään ylimmän K-leiman keskiarvoa, kun taas luokittelussa käytetään ylimpien K-leimien moodia.

KNN:n suorittamiseen käytetyt tarkat matemaattiset operaatiot vaihtelevat valitun etäisyysmittarin mukaan. Jos haluat tietää lisää mittareiden laskemisesta, voit lukea joistakin yleisimmistä etäisyysmittareista, kuten esim. Euklidinen, Manhattanja Minkowski.

Miksi K:n arvolla on väliä

Päärajoitus käytettäessä KNN:tä on se, että väärässä K-arvossa voidaan valita väärä määrä naapureita. Jos näin tapahtuu, palautetut ennusteet voivat poiketa huomattavasti. On erittäin tärkeää, että KNN-algoritmia käytettäessä valitaan oikea arvo K:lle. Haluat valita K:lle arvon, joka maksimoi mallin kyvyn ennustaa näkymättömiä tietoja ja vähentää samalla tekemien virheiden määrää.

Kuva: Agor153 Wikimedia Commonsin kautta, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Pienemmät K:n arvot tarkoittavat, että KNN:n antamat ennusteet ovat vähemmän vakaita ja luotettavia. Saadaksesi intuition siitä, miksi näin on, harkitse tapausta, jossa meillä on 7 naapuria kohdedatapisteen ympärillä. Oletetaan, että KNN-malli toimii K-arvolla 2 (pyydämme sitä tarkastelemaan kahta lähintä naapuria ennusteen tekemiseksi). Jos suurin osa naapureista (viisi seitsemästä) kuuluu Blue-luokkaan, mutta kaksi lähintä naapuria vain sattuu olemaan punainen, malli ennustaa, että kyselyesimerkki on punainen. Mallin arvauksesta huolimatta sininen olisi tällaisessa skenaariossa parempi arvaus.

Jos näin on, miksi ei vain valita korkein mahdollinen K-arvo? Tämä johtuu siitä, että mallin käskeminen ottaa huomioon liian monta naapuria heikentää myös tarkkuutta. Kun KNN-mallin näkemä säde kasvaa, se alkaa lopulta ottaa huomioon datapisteitä, jotka ovat lähempänä muita ryhmiä kuin ne ovat kohdedatapisteitä, ja virheluokittelu alkaa tapahtua. Esimerkiksi vaikka alun perin valittu piste olisi jollakin yllä olevista punaisista alueista, jos K olisi asetettu liian korkeaksi, malli ulottuisi muille alueille huomioimaan pisteitä. KNN-mallia käytettäessä eri K:n arvoja yritetään nähdä, mikä arvo antaa mallille parhaan suorituskyvyn.

KNN plussat ja miinukset

Tarkastellaan joitain KNN-mallin etuja ja haittoja.

Plussat:

KNN:ää voidaan käyttää sekä regressio- että luokittelutehtäviin, toisin kuin eräät muut valvotut oppimisalgoritmit.

KNN on erittäin tarkka ja helppokäyttöinen. Se on helppo tulkita, ymmärtää ja toteuttaa.

KNN ei tee mitään oletuksia tiedoista, joten sitä voidaan käyttää monenlaisiin ongelmiin.

Miinukset:

KNN tallentaa suurimman osan tai kaikki tiedoista, mikä tarkoittaa, että malli vaatii paljon muistia ja se on laskennallisesti kallista. Suuret tietojoukot voivat myös johtaa ennusteiden tekemiseen pitkään.

KNN on osoittautunut erittäin herkäksi tietojoukon mittakaavalle ja se voidaan heittää pois epäolennaisista ominaisuuksista melko helposti muihin malleihin verrattuna.

Yhteenveto K-lähimmistä naapureista (KNN)

K-Nearest Neighbors on yksi yksinkertaisimmista koneoppimisalgoritmeista. Huolimatta siitä, kuinka yksinkertainen KNN on, se on myös tehokas algoritmi, joka antaa melko suuren tarkkuuden useimpiin ongelmiin. Kun käytät KNN:ää, muista kokeilla erilaisia ​​K:n arvoja löytääksesi suurimman tarkkuuden tarjoavan luvun.

Bloggaaja ja ohjelmoija erikoisaloilla Koneen oppiminen ja Deep Learning aiheita. Daniel toivoo voivansa auttaa muita käyttämään tekoälyn voimaa yhteiskunnalliseen hyvään.