Päivitetty 21.9.2022
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.
- Kategoriset muuttujat: Useimmat mallit edellyttävät muuttujien olevan määrällisiä. Kategorisia muuttujia voidaan käyttää, jos ne puretaan dikotomisiksi muuttujiksi eli dummy-muuttujiksi (katso https://www.fsd.tuni.fi/fi/palvelut/menetelmaopetus/kvanti/mittaaminen/ominaisuudet/).
- Skaalaus: Jos selittävät muuttujat poikkeavat suuruusluokaltaan toisistaan, niin yleensä muuttujat kannattaa skaalata samaan suuruusluokkaan. Tämän voi tehdä esimerkiksi muuntamalla muuttujan arvot standardipisteiksi (muuttujan arvosta vähennetään keskiarvo ja erotus jaetaan keskihajonnalla eli lasketaan kuinka monen keskihajonnan päässä keskiarvosta ollaan).
Ohjatun (supervised) oppimisen malleissa tarvitset kaksi dataframea:
- Selittävien muuttujien arvot (feature-matriisi , x-muuttujat). Selittävien muuttujien dataframen nimeksi voit antaa esimerkiksi X.
- Kohdemuuttujan arvot (target, labels, y-muuttuja). Kohdemuuttujan dataframen nimeksi voit antaa esimerksi y.
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 niin kutsutuilla hyperparametreilla. Esimerkiksi seuraavassa muodostetaan lineaarinen regressiomalli, johon ei otetan mukaan lainkaan vakiotermiä (intercept).
malli = LinearRegression(fit_intercept = False).fit(X, y)
Mallien tuunaus hyperparametreilla edellyttää mallien hyvää tuntemusta.
Arvioi mallin sopivuutta
Sopivuuden arviointiin on monia menetelmiä. Regressiomalleille 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/