AI:n perusteet
MikÃĪ on KNN (K-Nearest Neighbors)?
MikÃĪ on K-Nearest Neighbors (KNN)?
K-Nearest Neighbors on koneoppimisen tekniikka ja algoritmi, jota voidaan kÃĪyttÃĪÃĪ sekÃĪ regressio- ettÃĪ luokittelu-tehtÃĪvissÃĪ . K-Nearest Neighbors tarkastelee valitun mÃĪÃĪrÃĪn tietopisteiden etikettejÃĪ kohdetietopisteen ympÃĪrillÃĪ, jotta voidaan tehdÃĪ ennuste siitÃĪ luokasta, johon tietopiste kuuluu. K-Nearest Neighbors (KNN) on kÃĪsitteellisesti yksinkertainen, mutta hyvin voimakas algoritmi, ja nÃĪistÃĪ syistÃĪ se on yksi suosituimmista koneoppimisen algoritmeista. Otetaan syvÃĪ sukellus KNN-algoritmiin ja katsotaan, miten se toimii. HyvÃĪ ymmÃĪrrys siitÃĪ, miten KNN toimii, antaa arvostaa parhaat ja huonoin kÃĪyttÃķtapaukset KNN:lle.
K-Nearest Neighbors (KNN) yleiskatsaus

Kuva: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
Visualisoidaan tietojoukkoa 2D-tasolla. Kuvitellaan joukko tietopisteitÃĪ graafisessa esityksessÃĪ, jotka ovat jakautuneet graafisessa esityksessÃĪ pieniin ryhmiin. KNN tarkastelee tietopisteiden jakautumista ja, riippuen algoritmille annetuista argumenteista, se erottaa tietopisteet ryhmiin. NÃĪmÃĪ ryhmÃĪt saavat sitten etiketin. KNN-mallin ensisijainen oletus on, ettÃĪ tietopisteet/instanssit, jotka ovat lÃĪhellÃĪ toisiaan, ovat hyvin samankaltaisia, kun taas jos tietopiste on kaukana toisesta ryhmÃĪstÃĪ, se on erilainen kuin ne tietopisteet.
KNN-malli laskee samankaltaisuuden kahden pisteen vÃĪlisen etÃĪisyyden perusteella graafisessa esityksessÃĪ. MitÃĪ suurempi etÃĪisyys pisteiden vÃĪlillÃĪ on, sitÃĪ vÃĪhemmÃĪn ne ovat samankaltaisia. On useita tapoja laskea etÃĪisyyttÃĪ pisteiden vÃĪlillÃĪ, mutta yleisin etÃĪisyysmitta on pelkÃĪstÃĪÃĪn euklidinen etÃĪisyys (etÃĪisyys kahden pisteen vÃĪlillÃĪ suoralla linjalla).
KNN on valvottu oppimisen algoritmi, mikÃĪ tarkoittaa, ettÃĪ esimerkit tietojoukossa on oltava merkitty luokillaan/luokituksillaan. On kaksi muuta tÃĪrkeÃĪÃĪ asiaa, jotka on tiedettÃĪvÃĪ KNN:stÃĪ. EnsinnÃĪkin, KNN on epÃĪparametrinen algoritmi. TÃĪmÃĪ tarkoittaa, ettÃĪ algoritmiin ei tehdÃĪ oletuksia tietojoukosta, kun sitÃĪ kÃĪytetÃĪÃĪn. Sen sijaan malli rakennetaan kokonaan annetuista tiedoista. Toiseksi, tietojoukkoa ei jaeta koulutus- ja testijoukoiksi KNN:n kÃĪytÃķn aikana. KNN ei tee yleistyksiÃĪ koulutus- ja testijoukon vÃĪlillÃĪ, joten kaikki koulutustiedot kÃĪytetÃĪÃĪn myÃķs, kun mallia pyydetÃĪÃĪn tekemÃĪÃĪn ennusteita.
KNN-algoritmin toimintatapa
KNN-algoritmi kulkee kolmen pÃĪÃĪvaiheen lÃĪpi, kun sitÃĪ suoritetaan:
- Aseta K valittuun naapureiden mÃĪÃĪrÃĪÃĪn.
- Laske etÃĪisyys annetun/testitietopisteen ja tietojoukon esimerkkien vÃĪlillÃĪ.
- JÃĪrjestÃĪ lasketut etÃĪisyydet.
- Hae ylemmÃĪn K-tason etiketit.
- Palauta ennuste testitietopisteestÃĪ.
EnsimmÃĪisessÃĪ vaiheessa K valitaan kÃĪyttÃĪjÃĪn toimesta, ja se kertoo algoritmille, kuinka monta naapuria (kuinka monta ympÃĪrÃķivÃĪÃĪ tietopistettÃĪ) tulee ottaa huomioon, kun tehdÃĪÃĪn pÃĪÃĪtÃķs siitÃĪ ryhmÃĪstÃĪ, johon kohdetietopiste kuuluu. Toisessa vaiheessa huomata, ettÃĪ malli tarkastelee etÃĪisyyttÃĪ kohdetietopisteen ja jokaisen tietojoukon esimerkin vÃĪlillÃĪ. EtÃĪisyydet lisÃĪtÃĪÃĪn listaan ja jÃĪrjestetÃĪÃĪn. Sen jÃĪlkeen jÃĪrjestetty lista tarkistetaan, ja ylemmÃĪn K-tason etiketit palautetaan. Toisin sanoen, jos K on asetettu 5:een, malli tarkastelee ylemmÃĪn 5 lÃĪhimmÃĪn tietopisteen etikettejÃĪ kohdetietopisteeseen. Kun tehdÃĪÃĪn ennuste kohdetietopisteestÃĪ, on tÃĪrkeÃĪÃĪ, onko tehtÃĪvÃĪ regressio vai luokittelutehtÃĪvÃĪ. Regressio-tehtÃĪvÃĪn tapauksessa kÃĪytetÃĪÃĪn ylemmÃĪn K-tason etikettien keskiarvoa, kun taas luokittelu-tehtÃĪvÃĪn tapauksessa kÃĪytetÃĪÃĪn ylemmÃĪn K-tason etikettien moodia.
TÃĪsmÃĪlliset matemaattiset operaatiot, joita kÃĪytetÃĪÃĪn KNN:n suorittamiseen, vaihtelevat valitun etÃĪisyysmitan mukaan. Jos haluat tietÃĪÃĪ enemmÃĪn siitÃĪ, miten mittaukset lasketaan, voit lukea jotain yleisimmistÃĪ etÃĪisyysmitoista, kuten euklidinen, manhattan ja minkowski.
Miksi K:n arvo on tÃĪrkeÃĪ
KNN:n pÃĪÃĪrajoitus on, ettÃĪ virheellinen K:n arvo (vÃĪÃĪrÃĪ naapureiden mÃĪÃĪrÃĪ) voidaan valita. Jos tÃĪmÃĪ tapahtuu, palautettavat ennusteet voivat olla merkittÃĪvÃĪsti virheellisiÃĪ. On erittÃĪin tÃĪrkeÃĪÃĪ, ettÃĪ KNN-algoritmin kÃĪytÃķn aikana valitaan oikea arvo K:lle. Haluat valita K:n arvon, joka maksimoi mallin kykyÃĪ tehdÃĪ ennusteita nÃĪkymÃĪttÃķmistÃĪ tiedoista ja vÃĪhentÃĪÃĪ virheitÃĪ, joita se tekee.

Kuva: Agor153 via Wikimedia Commons, 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 vakaampia ja luotettavampia. Saadaksesi kÃĪsityksen siitÃĪ, miksi nÃĪin on, tarkastellaan tapausta, jossa meillÃĪ on 7 naapuria kohdetietopisteen ympÃĪrillÃĪ. Oletetaan, ettÃĪ KNN-malli toimii K:n 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 sattumalta ovat Red, malli ennustaa, ettÃĪ kohdetietopiste on Red. Vaikka malli arvioi, ettÃĪ Blue olisi parempi arvio tÃĪllaisessa tilanteessa.
Jos nÃĪin on, miksi ei valittaisi vain suurinta K:n arvoa, jonka voidaan valita? TÃĪmÃĪ johtuu siitÃĪ, ettÃĪ kun kerrotaan mallille, ettÃĪ se tulee tarkastella liian monta naapuria, se alkaa tarkastella tietopisteitÃĪ, jotka ovat lÃĪhempÃĪnÃĪ muiden ryhmiÃĪ kuin kohdetietopistettÃĪ, ja luokitteluvirheitÃĪ alkaa tapahtua. Esimerkiksi, vaikka aluksi valittu piste oli yhdessÃĪ punaisista alueista yllÃĪ, jos K asetetaan liian suureksi, malli ulottuu muihin alueisiin tarkastellakseen pisteitÃĪ. KNN-mallin kÃĪytÃķn aikana kokeillaan eri K:n arvoja, jotta voidaan nÃĪhdÃĪ, mikÃĪ arvo antaa mallille parhaimman suorituskyvyn.
KNN:n edut ja haitat
Tarkastellaan KNN-mallin etuja ja haittoja.
Edut:
KNN voidaan kÃĪyttÃĪÃĪ sekÃĪ regressio- ettÃĪ luokittelu-tehtÃĪvissÃĪ, toisin kuin jotkut muut valvotut oppimisen algoritmit.
KNN on hyvin tarkin ja helppo kÃĪyttÃĪÃĪ. Se on helppo ymmÃĪrtÃĪÃĪ, tulkita ja toteuttaa.
KNN ei tee oletuksia tiedoista, mikÃĪ tarkoittaa, ettÃĪ sitÃĪ voidaan kÃĪyttÃĪÃĪ laajasti erilaisiin ongelmiin.
Haitat:
KNN tallentaa suurimman osan tai kaikki tiedot, mikÃĪ tarkoittaa, ettÃĪ malli vaatii paljon muistia ja on laskennallisesti kallista. Suuret tietojoukot voivat myÃķs aiheuttaa, ettÃĪ ennusteiden tekeminen kestÃĪÃĪ kauan.
KNN osoittautuu erittÃĪin herkkÃĪksi tietojoukon mittasuhteelle ja se voidaan helposti hÃĪikÃĪistÃĪ merkityksettÃķmillÃĪ ominaisuuksilla verrattuna muihin malleihin.
K-Nearest Neighbors (KNN) yhteenveto
K-Nearest Neighbors on yksi yksinkertaisimmista koneoppimisen algoritmeista. Vaikka KNN on kÃĪsitteellisesti yksinkertainen, se on myÃķs voimakas algoritmi, joka antaa melko korkean tarkin luokittelun useimmissa ongelmissa. Kun kÃĪytetÃĪÃĪn KNN:ÃĪ, on varmistettava, ettÃĪ kokeillaan eri K:n arvoja, jotta voidaan lÃķytÃĪÃĪ se arvo, joka antaa korkeimman tarkin luokittelun.












