K-lähimpien naapureiden (KNN) koneoppimisen algoritmi

Madison Schott

Seuraa

22. huhtikuuta 2019 · 5 min luettu

Johdanto-koneoppimisen algoritmeja koskevan sarjan 1. osa

Jos olet perehtynyt koneoppimiseen ja perusalgoritmeihin, käytetään kentällä, olet todennäköisesti kuullut k-lähimpien naapureiden algoritmista tai KNN: stä. Tämä algoritmi on yksi yksinkertaisimmista tekniikoista, joita käytetään koneoppimisessa. Se on menetelmä, jota monet alan ammattilaiset suosivat sen helppokäyttöisyyden ja alhaisen laskenta-ajan takia. KNN on malli, joka luokittelee datapisteet pisteiden perusteella, jotka ovat sen kaltaisia. Se käyttää testitietoja ”koulutettuun arvaukseen” siitä, mihin luokittelematon kohta tulisi luokitella.

Plussat:

  • Helppo käyttää.
  • Nopea laskuaika.
  • Ei tee oletuksia tiedoista.

Miinukset:

  • Tarkkuus riippuu tietojen laadusta data.
  • On löydettävä optimaalinen k-arvo (lähimpien naapureiden lukumäärä).
  • Huono luokitellessaan datapisteitä rajalle, johon ne voidaan luokitella tavalla tai toisella.

KNN on algoritmi, jota pidetään sekä ei-parametrisena että esimerkkinä laiskasta Mitä nämä kaksi termiä tarkalleen tarkoittavat?

  • Ei-parametri tarkoittaa, että se ei tee oletuksia. Malli koostuu kokonaan sille annetuista tiedoista sen sijaan, että oletettaisiin, että sen rakenne on normaali.
  • Laiska oppiminen tarkoittaa, että algoritmi ei tee ge neralisoinnit. Tämä tarkoittaa, että tämän menetelmän käytössä on vähän koulutusta. Tämän vuoksi kaikkia harjoitustietoja käytetään myös testauksessa KNN: ää käytettäessä.

Mihin KNN: ää käytetään

KNN: ää käytetään usein yksinkertaisissa suositusjärjestelmissä, image tunnustamistekniikka ja päätöksentekomallit. Netflixin tai Amazonin kaltaiset algoritmit suosittelevat katsottavia elokuvia tai ostettavia kirjoja. Netflix käynnisti jopa Netflix Prize -kilpailun jakoi miljoonan dollarin tiimille, joka loi tarkimman suositusalgoritmin!

Saatat miettiä, ”Mutta miten nämä yritykset tekevät tämän?” Nämä yritykset soveltavat KNN: ää tietokokonaisuuteen, joka on kerätty katsomistasi elokuvista tai verkkosivustollasi ostetuista kirjoista. Nämä yritykset syöttävät käytettävissä olevat asiakastiedot ja vertaa niitä muihin asiakkaisiin, jotka ovat katsoneet vastaavia elokuvia. tai ostanut vastaavia kirjoja. Tämä datapiste luokitellaan sitten tietyksi profiiliksi menneisyytensä perusteella KNN: n avulla. Suositellut elokuvat ja kirjat riippuvat sitten siitä, kuinka algoritmi luokittelee kyseisen datapisteen.

Yllä oleva kuva havainnollistaa KNN: n toimintaa, kun yritetään luokitella tietopistettä tietyn tietojoukon perusteella. Sitä verrataan lähimpiin pisteisiin ja luokitellaan sen mukaan, mihin pisteisiin se on lähinnä ja samanlainen. Täällä näet, että piste Xj luokitellaan joko W1 (punainen) tai W3 (vihreä) sen etäisyyden perusteella jokaisesta pisteryhmästä.

Ma tematiikka KNN: n takana

Aivan kuten melkein kaikki muutkin, KNN toimii sen syvälle juurtuneiden matemaattisten teorioiden takia. KNN: n käyttöönoton yhteydessä ensimmäinen vaihe on muuntaa datapisteet ominaisuusvektoreiksi tai niiden matemaattiseksi arvoksi. Sitten algoritmi toimii etsimällä etäisyys näiden pisteiden matemaattisten arvojen välillä. Yleisin tapa löytää tämä etäisyys on euklidinen etäisyys, kuten alla on esitetty.

KNN suorittaa tämän kaavan laskeakseen etäisyyden kunkin datapisteen ja testidatan välillä. Sitten se havaitsee todennäköisyyden, että nämä pisteet ovat samanlaisia kuin testitiedot, ja luokittelee sen sen perusteella, mitkä pisteet jakavat suurimmat todennäköisyydet.

Tämän kaavan visualisointi näyttää tältä:

Johtopäätös

Nyt tiedät yhden perustavanlaatuisimmista koneoppimisalgoritmeista .Se on hyvä paikka aloittaa oppimalla ensin rakentamaan malleja, jotka perustuvat erilaisiin tietojoukoihin. Jos sinulla on tietojoukko, jossa on paljon erilaisia pisteitä ja tarkkoja tietoja, tämä on hyvä paikka aloittaa koneoppimisen tutkiminen KNN: n avulla.

Pidä nämä kolme asiaa mielessä, kun haluat aloittaa tämän algoritmin käytön:

  • Etsi ensin tietojoukko, jonka kanssa on helppo työskennellä, mieluiten sellainen, jossa on paljon erilaisia pisteitä ja merkittyjä tietoja.
  • Toiseksi selvitä, mikä kieli tulee olemaan helpoin käyttää ongelman ratkaisemiseen. Tunnen KNN: n käytön R: ssä eniten, mutta Python on myös suosittu kieli koneoppimisen ammattilaisten keskuudessa.
  • Kolmanneksi tee tutkimuksesi. On tärkeää oppia oikeat käytännöt tämän algoritmin käytöstä, jotta löydät tarkimmat tulokset tietojoukostasi.

Tämän algoritmin parantamiseen on tehty useita tutkimuksia. Näiden tutkimusten tarkoituksena on tehdä siitä niin, että voit punnita luokkia eri tavalla tarkemman luokituksen tekemiseksi. Näiden luokkien painotus vaihtelee etäisyyden laskemisen mukaan.

Lopuksi, tämä on perustavanlaatuinen koneoppimisalgoritmi, joka on luotettava monista syistä, kuten helppokäyttöisyydestä ja nopeasta laskenta-ajasta. Sitä on hyvä käyttää, kun aloitat koneoppimisen tutkimuksen, mutta sillä on vielä parantamisen varaa.

Write a Comment

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *