Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Toteutus Esimerkkiaineistolla | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Ohjaamattoman Oppimisen Perusteet

bookToteutus Esimerkkiaineistolla

Tässä osiossa käydään läpi käytännön esimerkki K-means-klusteroinnin soveltamisesta. Tätä varten käytetään keinotekoista (dummy) datasarjaa. Keinotekoiset datasarjat ovat tarkoituksella luotuja aineistoja, joita käytetään usein havainnollistamiseen ja oppimiseen. Niiden avulla voidaan hallita datan ominaisuuksia ja selkeästi havainnoida, miten algoritmit, kuten K-means, toimivat.

Keinotekoinen datasarja

Tässä esimerkissä luodaan keinotekoinen datasarja käyttämällä make_blobs()-funktiota. Tämä funktio soveltuu erinomaisesti klustereiden muodostamiseen visuaalisesti selkeällä ja hallittavalla tavalla. Data luodaan seuraavilla ominaisuuksilla:

  • Näytteiden määrä: luodaan datasarja, jossa on 300 havaintoa;

  • Keskusten määrä: asetetaan todellisten klustereiden määrä arvoon 4. Tämä tarkoittaa, että keinotekoinen data sisältää neljä erillistä ryhmää;

  • Klusterin keskihajonta: säädetään havaintojen hajontaa kunkin klusterin sisällä, asettamalla se arvoon 0.60 melko tiiviiden klustereiden saavuttamiseksi;

  • Satunnaissiementäminen: käytetään kiinteää random_state-arvoa toistettavuuden varmistamiseksi, jolloin datan generointi on aina samanlaista.

X, y_true = make_blobs(n_samples=300,
                       centers=4,
                       cluster_std=0.60,
                       random_state=0)

K-means-toteutus

Kun keinotekoinen data on luotu, sovelletaan siihen K-means-algoritmia. Tarkastellaan, miten K-means pyrkii jakamaan datan klustereihin aiemmissa luvuissa opittujen periaatteiden mukaisesti.

K-means voidaan alustaa ja kouluttaa Pythonissa seuraavasti:

kmeans = KMeans(n_clusters=k, random_state=42) 
kmeans.fit(X)

Optimaalisen klustereiden määrän määrittämiseksi käytetään aiemmissa luvuissa esiteltyjä menetelmiä:

  • WSS-menetelmä: lasketaan Within-Sum-of-Squares eri K-arvoille ja analysoidaan elbow-kuvaajaa mahdollisen optimaalisen K:n löytämiseksi;

  • Silhouette-pistemäärämenetelmä: lasketaan Silhouette Score eri K-arvoille ja tarkastellaan Silhouette-kuvaajaa sekä keskimääräisiä Silhouette-pisteitä sen K:n löytämiseksi, joka maksimoi klusteroinnin laadun.

Lopuksi visualisoinnit ovat keskeisessä roolissa toteutuksessa. Visualisoidaan:

  • Itse keinotekoinen data, jotta nähdään aineiston klusterirakenne;

  • WSS-kuvaaja, jolla tunnistetaan elbow-kohta;

  • Silhouette-kuvaaja, jolla arvioidaan klusteroinnin laatua eri K-arvoilla;

  • Lopulliset K-means-klusterit keinotekoisen datan päällä, jotta voidaan visuaalisesti varmistaa klusteroinnin tulokset ja valittu optimaalinen K.

question mark

Mikä parametri make_blobs()-funktiossa säätelee datapisteiden hajontaa kunkin klusterin sisällä

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 11

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

bookToteutus Esimerkkiaineistolla

Pyyhkäise näyttääksesi valikon

Tässä osiossa käydään läpi käytännön esimerkki K-means-klusteroinnin soveltamisesta. Tätä varten käytetään keinotekoista (dummy) datasarjaa. Keinotekoiset datasarjat ovat tarkoituksella luotuja aineistoja, joita käytetään usein havainnollistamiseen ja oppimiseen. Niiden avulla voidaan hallita datan ominaisuuksia ja selkeästi havainnoida, miten algoritmit, kuten K-means, toimivat.

Keinotekoinen datasarja

Tässä esimerkissä luodaan keinotekoinen datasarja käyttämällä make_blobs()-funktiota. Tämä funktio soveltuu erinomaisesti klustereiden muodostamiseen visuaalisesti selkeällä ja hallittavalla tavalla. Data luodaan seuraavilla ominaisuuksilla:

  • Näytteiden määrä: luodaan datasarja, jossa on 300 havaintoa;

  • Keskusten määrä: asetetaan todellisten klustereiden määrä arvoon 4. Tämä tarkoittaa, että keinotekoinen data sisältää neljä erillistä ryhmää;

  • Klusterin keskihajonta: säädetään havaintojen hajontaa kunkin klusterin sisällä, asettamalla se arvoon 0.60 melko tiiviiden klustereiden saavuttamiseksi;

  • Satunnaissiementäminen: käytetään kiinteää random_state-arvoa toistettavuuden varmistamiseksi, jolloin datan generointi on aina samanlaista.

X, y_true = make_blobs(n_samples=300,
                       centers=4,
                       cluster_std=0.60,
                       random_state=0)

K-means-toteutus

Kun keinotekoinen data on luotu, sovelletaan siihen K-means-algoritmia. Tarkastellaan, miten K-means pyrkii jakamaan datan klustereihin aiemmissa luvuissa opittujen periaatteiden mukaisesti.

K-means voidaan alustaa ja kouluttaa Pythonissa seuraavasti:

kmeans = KMeans(n_clusters=k, random_state=42) 
kmeans.fit(X)

Optimaalisen klustereiden määrän määrittämiseksi käytetään aiemmissa luvuissa esiteltyjä menetelmiä:

  • WSS-menetelmä: lasketaan Within-Sum-of-Squares eri K-arvoille ja analysoidaan elbow-kuvaajaa mahdollisen optimaalisen K:n löytämiseksi;

  • Silhouette-pistemäärämenetelmä: lasketaan Silhouette Score eri K-arvoille ja tarkastellaan Silhouette-kuvaajaa sekä keskimääräisiä Silhouette-pisteitä sen K:n löytämiseksi, joka maksimoi klusteroinnin laadun.

Lopuksi visualisoinnit ovat keskeisessä roolissa toteutuksessa. Visualisoidaan:

  • Itse keinotekoinen data, jotta nähdään aineiston klusterirakenne;

  • WSS-kuvaaja, jolla tunnistetaan elbow-kohta;

  • Silhouette-kuvaaja, jolla arvioidaan klusteroinnin laatua eri K-arvoilla;

  • Lopulliset K-means-klusterit keinotekoisen datan päällä, jotta voidaan visuaalisesti varmistaa klusteroinnin tulokset ja valittu optimaalinen K.

question mark

Mikä parametri make_blobs()-funktiossa säätelee datapisteiden hajontaa kunkin klusterin sisällä

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 11
some-alt