GeeksforGeeks (Suomi)
K-lähimmät naapurit on yksi koneoppimisen perustavimmista, mutta välttämättömistä luokitusalgoritmeista. Se kuuluu valvottuun oppimisalueeseen ja sitä käytetään voimakkaasti mallintunnistuksessa, tiedonlouhinnassa ja tunkeutumisen havaitsemisessa.
Se on laajalti käytettävissä tosielämän tilanteissa, koska se ei ole parametrinen, eli se ei tee mahdolliset taustalla olevat oletukset tietojen jakautumisesta (toisin kuin muut algoritmit, kuten GMM, jotka ottavat tietyn datan Gaussin jakauman).
Meille annetaan joitain ennakkotietoja (joita kutsutaan myös koulutustiedoiksi). luokittelee koordinaatit attribuutin tunnistamiin ryhmiin.
Harkitse esimerkkinä seuraava taulukko kahden ominaisuuden sisältävästä datapisteistä:
Nyt annetaan toinen joukko datapisteitä ( kutsutaan myös testaustiedoiksi), jaa nämä pisteet ryhmään analysoimalla koulutusjoukkoa. Huomaa, että luokittelemattomat pisteet on merkitty valkoisiksi.
Intuitio
Jos piirrämme nämä pisteet kaavioon, voimme löytää joitain klustereita tai ryhmiä. Nyt, kun annetaan luokittelematon piste, voimme osoittaa sen ryhmälle tarkkailemalla mihin ryhmään sen lähimmät naapurit kuuluvat. Tämä tarkoittaa, että piste, joka on lähellä Punaiseksi luokiteltuja pisteitä, on suurempi todennäköisyys luokitella punaiseksi.
Intuitiivisesti voimme nähdä, että ensimmäisen pisteen (2.5, 7) tulisi olla luokiteltu vihreäksi ja toinen kohta (5.5, 4.5) tulisi luokitella punaiseksi.
Algoritmi
Olkoon m harjoitteludatanäytteiden lukumäärä. Olkoon p tuntematon piste.
- Säilytä harjoitusnäytteitä taulukon matriisissa. Tämä tarkoittaa, että tämän taulukon kukin elementti edustaa kaksinkertaista elementtiä (x, y).
-
for i=0 to m: Calculate Euclidean distance d(arr, p).
- Tee joukosta S pienin saatu etäisyys K . Jokainen näistä etäisyyksistä vastaa jo luokiteltuja datapisteitä.
- Palauta enemmistötunnus S: n joukosta.
K voidaan pitää parittomana numerona, jotta voimme laskea selkeä enemmistö, jos vain kaksi ryhmää on mahdollista (esim. punainen / sininen). Kun K kasvaa, saamme sileämmät, tarkemmin määritellyt rajat eri luokitusten yli. Myös yllä olevan luokittelijan tarkkuus kasvaa, kun kasvatamme tietojoukkojen määrää koulutusjoukossa.
Esimerkkiohjelma
Oletetaan 0 ja 1 kahdeksi luokittelijaksi (ryhmäksi).
Tulos:
The value classified to unknown point is 0.
Tämän artikkelin on kirjoittanut Anannya Uberoi. Jos pidät GeeksforGeeksistä ja haluat osallistua, voit myös kirjoittaa artikkelin osoitteessa contrib.geeksforgeeks.org tai lähettää artikkelin osoitteeseen [email protected]. Katso artikkeli GeeksforGeeks-pääsivulta ja auta muita Geeks.