Koneoppiminen ja scikit-learn -kirjasto

Pythonia käytettäessä useimmat koneoppimisen mallit löytyvät sklearn (scikit-learn) -kirjastosta. Tästä artikkelista opit  sklearn-kirjaston mallien käytön perusperiaatteet.

Mallien käyttö sujuu seuraavien vaiheiden kautta:

  • Valmistele data.
  • Tuo malli.
  • Sovita malli dataan.
  • Arvioi mallin sopivuutta dataan.
  • Ennusta mallin avulla.

Valmistele data

Käytettävään dataan täytyy tutustua huolellisesti etukäteen. Erityisesti kannattaa kiinnittää huomiota seuraaviin:

  • Puuttuvat arvot: Useimmat mallit eivät siedä puuttuvia muuttujien arvoja. Puuttuvia arvoja sisältävät rivit pitää joka poistaa tai korvata puuttuvat arvot tarkoituksenmukaisella tavalla.

Ohjatun (supervised) oppimisen malleissa tarvitset kaksi dataframea:

  • Selittävien muuttujien arvot (feature-matriisi , x-muuttujat). Selittävien muuttujien dataframen nimeksi voit antaa esimerkiksi X.
  • Selitettävän/ennustettavan muuttujan arvot (target, labels, y-muuttuja). Selitettävän muuttujan dataframen nimeksi voit antaa esimerksi y.

Ohjaamattomissa (unsupervised) malleissa tarvitset ainoastaan feature-matriisin.

Tuo malli

Tuo malli sklearn-kirjastosta. Esimerkiksi lineaarisen regressiomallin tuot seuraavasti:

from sklearn.linear_model import LinearRegression

Sovita malli dataan

Sovita malli dataan fit-funktiolla ja tallenna syntyvä olio muuttujan arvoksi. Esimerkiksi seuraavassa sovitetaan lineaarinen regressio dataan X (selittävien muuttujien dataframe) ja y (ennustettavan muuttujan arvot).

malli = LinearRegression().fit(X, y)

Syntynyt olio (malli)  sisältää monenlaista tietoa mallista. Monissa netistä ja kirjallisuudesta löytyvissä esimerkeissä edellinen tehdään kahdessa vaiheessa:

malli = LinearRegression()
malli.fit(X, y)

Tuloksena syntynyt malli-olio on sama muodostettiinpa se kummalla tavalla tahansa.
Mallia voidaan tuunata erilaisilla lisäparametreilla. Mahdolliset lisäparametrit kirjoitetaan sulkujen sisään. Esimerkiksi seuraavassa muodostetaan lineaarinen regressiomalli, johon ei otetan mukaan lainkaan vakiotermiä (intercept).

malli = LinearRegression(fit_intercept = False).fit(X, y)

Mallien tuunaus lisäparametreilla edellyttää mallien hyvää tuntemusta.

Arvioi mallin sopivuutta

Sopivuuden arviointiin on monia menetelmiä. Voit esimerkiksi tulostaa selityskertoimen arvon komennolla malli.score(X, y). Selityskerroin ilmoittaa kuinka monta prosenttia selitettävän muuttujan vaihtelusta malli selittää.

Ennusta mallin avulla

Ennakoivassa analytiikassa keskeisin vaihe on tietenkin ennusteiden laskeminen uudelle datalle. Jos dataframe X_uusi sisältää uusia selittävän muuttujan arvoja, niin saat ennusteet komennolla:

malli.predict(X_uusi)

Lisätietoa

Lisätietoa koneoppimisen koodiesimerkeistä https://tilastoapu.wordpress.com/python/