K-NN Useilla Ominaisuuksilla
Nyt ymmärrät, miten k-NN toimii yhdellä ominaisuudella. Siirrytään hieman monimutkaisempaan esimerkkiin, jossa käytetään kahta ominaisuutta: paino ja leveys.
Tässä tapauksessa meidän täytyy löytää naapurit perustuen sekä leveyteen että painoon. Tässä on kuitenkin pieni ongelma. Piirretään makeiset ja katsotaan, mikä menee pieleen:
Voit huomata, että paino vaihtelee välillä 12–64, kun taas leveys on vain välillä 5–12. Koska leveyden vaihteluväli on paljon pienempi, makeiset näyttävät lähes pystysuoraan linjassa. Jos laskemme etäisyydet nyt, ne heijastavat pääasiassa painon eroja, aivan kuin emme olisi huomioineet leveyttä 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 saattaa aiheuttaa hämmennystä, kuten "miten paino voi olla negatiivinen", kyseessä on vain tapa esittää data tietokoneelle. Jotkut mallit vaativat keskittämistä, joten StandardScaler-skaalaimen käyttö oletuksena on suositeltavaa.
Itse asiassa data tulisi aina skaalata ennen k-lähimmän naapurin algoritmin käyttöä. Kun data on skaalattu, voimme etsiä naapureita:
Kun käytössä on kaksi ominaisuutta, k-NN määrittelee ympyränmuotoisen naapuruuden, joka sisältää halutun määrän naapureita. Kolmella ominaisuudella tästä muodostuu pallo. Korkeammissa ulottuvuuksissa naapuruuden muoto muuttuu monimutkaisemmaksi eikä ole enää visualisoitavissa, mutta laskennan periaate pysyy samana.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 3.33
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: paino ja leveys.
Tässä tapauksessa meidän täytyy löytää naapurit perustuen sekä leveyteen että painoon. Tässä on kuitenkin pieni ongelma. Piirretään makeiset ja katsotaan, mikä menee pieleen:
Voit huomata, että paino vaihtelee välillä 12–64, kun taas leveys on vain välillä 5–12. Koska leveyden vaihteluväli on paljon pienempi, makeiset näyttävät lähes pystysuoraan linjassa. Jos laskemme etäisyydet nyt, ne heijastavat pääasiassa painon eroja, aivan kuin emme olisi huomioineet leveyttä 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 saattaa aiheuttaa hämmennystä, kuten "miten paino voi olla negatiivinen", kyseessä on vain tapa esittää data tietokoneelle. Jotkut mallit vaativat keskittämistä, joten StandardScaler-skaalaimen käyttö oletuksena on suositeltavaa.
Itse asiassa data tulisi aina skaalata ennen k-lähimmän naapurin algoritmin käyttöä. Kun data on skaalattu, voimme etsiä naapureita:
Kun käytössä on kaksi ominaisuutta, k-NN määrittelee ympyränmuotoisen naapuruuden, joka sisältää halutun määrän naapureita. Kolmella ominaisuudella tästä muodostuu pallo. Korkeammissa ulottuvuuksissa naapuruuden muoto muuttuu monimutkaisemmaksi eikä ole enää visualisoitavissa, mutta laskennan periaate pysyy samana.
Kiitos palautteestasi!