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

bookK-Naapuriluokitin

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 hyväksyttävää, jos jokin asia tuntuu epäselvältä. Sitä käsitellään tarkemmin muissa kursseissa, 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 .fit()-menettelyssä

Toisin kuin monet muut algoritmit, KNeighborsClassifier tallentaa vain opetusdatan. Silti metodin .fit(X, y) kutsuminen on välttämätöntä, jotta malli tietää, mihin aineistoon viitataan ennustamisen aikana.

KNeighborsClassifier .predict()-menettelyssä

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.

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 pystyy tekemään tarkempia ennusteita.

KNeighborsClassifier-koodausesimerkki

Voit luoda luokittelijan, kouluttaa sen ja tarkistaa sen tarkkuuden käyttämällä .score()-metodia. 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))
copy

Käyttämällä k=1 voidaan saavuttaa täydellinen tarkkuus, mutta tämä on harhaanjohtavaa, koska arviointi tehtiin koulutusdatalla. Todellisen suorituskyvyn mittaamiseksi mallia tulee aina testata näkemättömällä datalla.

question mark

Miten KNeighborsClassifier tekee ennusteita uudelle havainnolle?

Select the correct answer

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

Awesome!

Completion rate improved to 3.13

bookK-Naapuriluokitin

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 hyväksyttävää, jos jokin asia tuntuu epäselvältä. Sitä käsitellään tarkemmin muissa kursseissa, 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 .fit()-menettelyssä

Toisin kuin monet muut algoritmit, KNeighborsClassifier tallentaa vain opetusdatan. Silti metodin .fit(X, y) kutsuminen on välttämätöntä, jotta malli tietää, mihin aineistoon viitataan ennustamisen aikana.

KNeighborsClassifier .predict()-menettelyssä

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.

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 pystyy tekemään tarkempia ennusteita.

KNeighborsClassifier-koodausesimerkki

Voit luoda luokittelijan, kouluttaa sen ja tarkistaa sen tarkkuuden käyttämällä .score()-metodia. 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))
copy

Käyttämällä k=1 voidaan saavuttaa täydellinen tarkkuus, mutta tämä on harhaanjohtavaa, koska arviointi tehtiin koulutusdatalla. Todellisen suorituskyvyn mittaamiseksi mallia tulee aina testata näkemättömällä datalla.

question mark

Miten KNeighborsClassifier tekee ennusteita uudelle havainnolle?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2
some-alt