K-NN Useilla Ominaisuuksilla
Pyyhkäise näyttääksesi valikon
Nyt ymmärrät, miten k-NN toimii yhdellä ominaisuudella. Siirrytään hieman monimutkaisempaan esimerkkiin, jossa käytetään kahta ominaisuutta: weight ja width.
Tässä tapauksessa naapureiden etsiminen perustuu sekä width että weight -ominaisuuksiin. Tässä on kuitenkin pieni ongelma. Piirretään makeiset ja katsotaan, mikä menee pieleen:
Voit nähdä, että weight vaihtelee välillä 12–64, kun taas width on vain välillä 5–12. Koska widthin vaihteluväli on paljon pienempi, makeiset näyttävät lähes pystysuoraan linjassa. Jos laskemme etäisyydet nyt, ne heijastavat pääasiassa weightin eroja, aivan kuin widthiä ei olisi huomioitu ollenkaan.
Tähän on kuitenkin ratkaisu – datan skaalaus.
Nyt sekä paino että leveys ovat samalla asteikolla ja keskitetty nollan ympärille. Tämän voi saavuttaa StandardScaler-luokalla kirjastosta sklearn. StandardScaler vain vähentää otoksen keskiarvon ja jakaa tuloksen otoksen keskihajonnalla:
StandardScaler keskittää datan nollan ympärille. Vaikka keskittäminen ei ole pakollista k-NN:lle ja voi aiheuttaa hämmennystä, kuten "miten paino voi olla negatiivinen", se on vain tapa esittää data tietokoneelle. Jotkut mallit vaativat keskittämistä, joten StandardScaler-luokan käyttö skaalaamiseen oletuksena on suositeltavaa.
Itse asiassa data tulisi aina skaalata ennen k-lähimmän naapurin algoritmin käyttöä. Kun data on skaalattu, voimme nyt etsiä naapurit:
Kahden ominaisuuden tapauksessa k-NN määrittelee ympyrämäisen naapuruuden, joka sisältää halutun määrän naapureita. Kolmen ominaisuuden tapauksessa tästä muodostuu pallo. Korkeammissa ulottuvuuksissa naapuruuden muoto muuttuu monimutkaisemmaksi eikä sitä voi visualisoida, mutta laskentaperiaatteet pysyvät samoina.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme