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 etsiä naapureita sekä leveyden että painon perusteella. Tässä on kuitenkin pieni ongelma. Piirretään makeiset ja katsotaan, mikä menee pieleen:
Voit nähdä, 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 – aineiston skaalaus.
Nyt sekä paino että leveys ovat samalla asteikolla ja keskitetty nollan ympärille. Tämän voi toteuttaa StandardScaler-luokalla kirjastosta sklearn. StandardScaler 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. Jotkin mallit vaativat keskittämistä, joten StandardScaler-skaalaimen käyttäminen oletuksena on suositeltavaa.
Itse asiassa data tulisi aina skaalata ennen k-lähimmän naapurin algoritmin käyttöä. Kun data on skaalattu, voimme etsiä naapurit:
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 naapuruus saa monimutkaisemman muodon, jota ei voi visualisoida, mutta laskennan periaate pysyy samana.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain why scaling is important for k-NN?
What other scaling methods can be used besides StandardScaler?
How does k-NN work with more than two features?
Awesome!
Completion rate improved to 4.17
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 etsiä naapureita sekä leveyden että painon perusteella. Tässä on kuitenkin pieni ongelma. Piirretään makeiset ja katsotaan, mikä menee pieleen:
Voit nähdä, 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 – aineiston skaalaus.
Nyt sekä paino että leveys ovat samalla asteikolla ja keskitetty nollan ympärille. Tämän voi toteuttaa StandardScaler-luokalla kirjastosta sklearn. StandardScaler 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. Jotkin mallit vaativat keskittämistä, joten StandardScaler-skaalaimen käyttäminen oletuksena on suositeltavaa.
Itse asiassa data tulisi aina skaalata ennen k-lähimmän naapurin algoritmin käyttöä. Kun data on skaalattu, voimme etsiä naapurit:
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 naapuruus saa monimutkaisemman muodon, jota ei voi visualisoida, mutta laskennan periaate pysyy samana.
Kiitos palautteestasi!