Johdanto KNN-algoritmiin

K Lähin naapuri -algoritmi, joka tunnetaan näkyvästi nimellä KNN, on koneenoppimisen perusalgoritmi. Tämän algoritmin ymmärtäminen on erittäin hyvä paikka aloittaa koneoppimisen oppiminen, koska tämän algoritmin takana oleva logiikka on sisällytetty moniin muihin koneoppimismalleihin. K Lähin naapuri -algoritmi kuuluu luokittelun osaan ohjatussa oppimisessa.

Mikä on ohjattu oppiminen?

Ohjattu oppimisalgoritmi on eräänlainen algoritmi, jossa se luottaa merkittyyn syötteeseen oppiakseen ja ennustaa toiminnon perusteella, kun tarjottavaa tietoa ei tarjota. Kuten olemme ymmärtäneet, mikä on ohjattu oppiminen, katsotaanpa mikä on luokittelu, luokittelualgoritmi antaa erillisen arvon tulosteena, ei jatkuvina arvoina.

Kuinka KNN-algoritmi toimii?

K Lähimmät naapurit on perusalgoritmi, joka tallentaa kaiken käytettävissä olevan ja ennustaa merkitsemättömän datan luokituksen samankaltaisuusmittauksen perusteella. Lineaarisessa geometriassa, kun kaksi parametria on piirretty 2D-Cartesian-järjestelmään, tunnistetaan samankaltaisuusmitta laskemalla pisteiden välinen etäisyys. Sama pätee täällä, KNN-algoritmi toimii olettaen, että samanlaisia ​​asioita on olemassa läheisyydessä, yksinkertaisesti voimme laittaa samoihin asioihin pysyä lähellä toisiaan.

Esimerkki: Jos meillä on tietojoukko piirrettyä näyttää siltä, ​​näiden datapisteiden luokittelemiseksi K Lähin naapurit -algoritmi tunnistaa ensin pisteiden välisen etäisyyden ja tarkistaa ovatko ne samanlaisia.

Euklidisen geometrian mukaan etäisyysfunktio voidaan laskea seuraavalla yhtälöllä:

Jos K = 1, tapaus osoitetaan yksinkertaisesti lähimmän naapurin luokalle (Käytämme ”1” melkein missä tahansa matematiikan tilanteessa, voimme muuttaa K: n arvoa kouluttaessamme malleja koneoppimisessa ja me keskustele tästä tarkemmin artikkelissa) X ja Y ovat koordinaattiakselien arvot.

Jos huomaamme täällä, kaikki saamme etäisyyden mitat ovat jatkuvia muuttujia, mutta tarvitsemme erillisiä arvoja luokitusta tehtäessä, joten meidän on käytettävä vasaraetäisyyttä tämän saavuttamiseen.

Tämä yhtälö tuo meille myös numeeristen arvojen standardoinnin välillä 0 - 1, kun tietojoukossa on sekoitus numeerisia ja kategorisia arvoja.

X Y Etäisyys
Syövän kanssa Syövän kanssa X = Y → D = 0
Ilman syöpää Ilman syöpää X! = Y → D = 1

Tällä tavalla algoritmi toimii ja nyt harkitaan, kuinka valitaan K: n arvo KNN: ssä.

K-arvon valitseminen KNN-algoritmissa

Ennen kuin näemme mitkä tekijät on otettava huomioon valittaessa K-arvoa, meidän on ymmärrettävä, kuinka K: n arvo vaikuttaa algoritmiin.

Nämä ovat saman tietojoukon kuvaajat vaihtelevilla K-arvoilla. K-arvo on 1 vasemman yläkulman kuvaajalle ja korkein oikean alakulman kuvaajalle. Jos tarkastelemme tarkoin, voimme ymmärtää, että luokittelualgoritmin raja muuttuu sileäksi K: n arvon kasvaessa. Se on K: n arvo, joka on suoraan verrannollinen rajan sileyteen. Joten tästä voimme ymmärtää, että jos K-arvoksi on asetettu 1, niin harjoitusmalli ylittää datan ja jos K-arvoksi asetetaan suuri luku, se alittaa datan. K: n optimaalisen arvon valitsemiseksi meidän on tarkistettava validointivirhe useilla K-arvoilla ja valittava arvo, jolla on pienin virhe.

Vaiheet KNN-algoritmin toteuttamiseksi Pythonissa

Tähän mennessä olemme oppineet K Lähimmän Naapurin algoritmin teoreettisen osan, jonka nyt näemme käytännössä oppimalla kuinka toteuttaa python.

Vaihe 1: Kirjastot tuodaan

Seuraavassa nähdään KNN: n suorittamiseen tarvittavien kirjastojen tuonti.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Vaihe 2: Tietojoukon tuominen

Täällä näemme tietojoukon tuonnin.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Vaihe 3: Jaa tietojoukko

Seuraava askel on jakaa tietojoukko testi- ja junajakoon.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Huomautus: Tietojoukko, jota käytän osoittamaan, on esikäsitelty määrittelemällä X- ja Y-arvot. Jos tätä ei tehdä ensin, se on tehtävä, koska luokittelumallin koulutuksen aikana meidän on välitettävä siitä merkitty tieto etäisyyksien laskemiseksi.

Vaihe 4: Harjoitusmalli

Nyt tässä vaiheessa näemme mallikoulutuksen.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Huomaa: Tässä käytetään K-naapureiden luokittelijaa, joka on tuotu moduulista sklearn.neighbours -kirjasto.

Vaihe 5: Ennusteiden suorittaminen

Ennusteiden suorittaminen testijakautumisessa.

y_pred = classifier.predict(X_test)

Vaihe 6: Tarkista validointi

Seuraava askel on arvioida algoritmi ja tarkistaa validointivirhe, ajaa uudelleen eri K-arvolla ja harkita k-arvoa, josta saamme pienimman validointivirheen. Näin voimme käytännössä toteuttaa K Lähimmät naapurit -luokittajan, tämän algoritmin toteuttamiseen on useita tapoja, tämä on vain yksi niistä ja tässä artikkelissa olen kuvaillut hyvin lyhyesti vaiheet, koska pääasiallisena tavoitteemmeamme on ymmärtää algoritmin toiminta.

johtopäätös

Kuten aikaisemmin sanottiin, K Lähin naapurit -algoritmi on yksi yksinkertaisimmista ja helpoimmista luokitteluun käytetyistä algoritmeista. Toiminnan perusteella se kuuluu myös ”Lazy Learning Algorithm” -alueeseen. Yleensä K-arvo, jonka kaikki ylittävät mallia harjoitettaessa, on pariton luku, mutta se ei ole pakko. Kuitenkin myös harvoista haitoista on KNN: n käytön aikana

  • Se ei sovi kategorisen tiedon kanssa, koska emme löydä etäisyyttä kahden kategorisen ominaisuuden välillä.
  • Se ei myöskään toimi hyvin korkean ulottuvuuden datan kanssa, koska algoritmin on vaikea laskea etäisyys kussakin ulottuvuudessa.

Jos näemme tällä hetkellä suurimman osan koneoppimisen käyttötapauksista, niitä ympäröi luokitustalgoritmi perustasolla, siten KNN: llä on tärkeä rooli koneoppimisessa.

Suositellut artikkelit

Tämä on opas KNN-algoritmiin. Tässä keskustellaan K Lähimmät naapurit -algoritmin käyttöönotosta ja toiminnasta vaiheilla kNN-algoritmin toteuttamiseksi pythonissa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. Kuinka SVM-algoritmi toimii?
  2. MD5-algoritmi (edut ja haitat)
  3. K- tarkoittaa ryhmittelyalgoritmia
  4. Vahvistusoppimisen tyypit
  5. Täydellinen opas C ++ -algoritmiin

Luokka: