Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele K-NN Useilla Ominaisuuksilla | K-NN-luokitin
Luokittelu Pythonilla

bookK-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ä 1264, kun taas leveys on vain välillä 512. 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:

Xscaled=XxˉsX_{scaled} = \frac{X - \bar x}{s}

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.

question mark

Valitse oikea väittämä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

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

bookK-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ä 1264, kun taas leveys on vain välillä 512. 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:

Xscaled=XxˉsX_{scaled} = \frac{X - \bar x}{s}

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.

question mark

Valitse oikea väittämä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3
some-alt