Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele KNeighborsClassifier | Mallintaminen
Johdatus koneoppimiseen Pythonilla

KNeighborsClassifier

Pyyhkäise näyttääksesi valikon

Kun luotiin lopullinen estimointilaite putkistoon, valittu malli oli KNeighborsClassifier. Tässä luvussa annetaan lyhyt selitys algoritmin toiminnasta.

Note
Huomio

Mallien toiminta ei ole tämän kurssin pääaihe, joten on täysin hyväksyttävää, jos jokin asia jää epäselväksi. Asiaa käsitellään tarkemmin muilla kursseilla, kuten Linear Regression with Python tai Classification with Python.

k-lähimmän naapurin menetelmä

k-NN ennustaa uuden havainnon luokan tarkastelemalla sen k lähintä opetusjoukon havaintoa. KNeighborsClassifier toteuttaa tämän Scikit-learn-kirjastossa.

  1. Uudelle pisteelle etsitään k lähintä naapuria ominaisuuksien samankaltaisuuden perusteella.
  2. Yleisin luokka näiden joukossa tulee ennusteeksi.

k on hyperparametri (oletus = 5). Eri arvot muuttavat mallin toimintaa, joten k:n säätäminen on tärkeää.

KNeighborsClassifier metodissa .fit()

Toisin kuin monet muut algoritmit, KNeighborsClassifier tallentaa koulutusdatan. Silti metodin .fit(X, y) kutsuminen on tarpeen, jotta malli tietää, mihin aineistoon viitataan ennustamisen aikana.

kNNfit

KNeighborsClassifier metodissa .predict()

Ennustamisen aikana luokittelija etsii jokaiselle havainnolle k lähintä naapuria. Visuaalisessa esimerkissä näkyy vain kaksi ominaisuutta; useampien ominaisuuksien lisääminen parantaa yleensä luokkien erottuvuutta ja ennustustarkkuutta.

kNNpredict
Note
Huomio

Yllä olevissa gifeissä käytetään vain kahta ominaisuutta, 'body_mass_g' ja 'culmen_depth_mm', koska korkeamman ulottuvuuden kuvaajien visualisointi on haastavaa. Lisäominaisuuksien sisällyttäminen auttaa todennäköisesti mallia erottamaan vihreät ja punaiset datapisteet paremmin, jolloin KNeighborsClassifier voi tehdä tarkempia ennusteita.

KNeighborsClassifier-koodiesimerkki

Luokittelijan luominen, kouluttaminen ja tarkkuuden tarkistaminen .score()-metodilla. n_neighbors-argumentti määrittää k-arvon—kokeile sekä arvoja 5 että 1.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))

k=1 käyttäminen voi tuottaa täydellisen tarkkuuden, mutta tämä on harhaanjohtavaa, koska arviointi tehtiin opetusdatalla. Todellisen suorituskyvyn mittaamiseksi mallia tulee aina testata näkemättömällä datalla.

question mark

Miten KNeighborsClassifier tekee ennusteen uudelle havainnolle?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 4. Luku 2
some-alt