Miten päästä alkuun ennakoivassa analytiikassa?

/ Jarkko Hänninen

Ennen kesälomia kirjoitin R ja Python -mallien yhdistämisestä osaksi Qlikkiä. Seuraavaksi aukaisen hieman tarkemmalla tasolla miten tämä on ylipäätään mahdollista ja millä tavoin (liiketoiminnallisen) ongelman asettelusta päästään lopputulokseen.

 

1) CRISP-DM (Cross Industry Standard Process for Data Mining) -prosessimallista tukea tekemiseen

Ylätasolla tekeminen kannattaa palastella eri vaiheisiin. CRISP-DM -prosessimalli antaa hyvän pohjan tälle. Tässä vaiheet pilkotaan kuuteen osaan: 

  1. liiketoimintaymmärryksen luominen 
  2. dataymmärryksen luominen 
  3. datan valmistelu 
  4. ennusteen mallinnus
  5. ennustemallin arviointi 
  6. ennustemallin käyttöönotto 

CRISP-DM on maailman yleisimmin käytetty prosessimalli datatieteen tekemisessä, ja me eCraftilla toimimme pitkälti tämän mukaisesti. Tärkeää on pitää prosessivaiheistus tukevana elementtinä taustalla eikä antaa sen rajoittaa liikaa - esimerkiksi vaiheiden välillä voidaan ja on ihan suotavaa mennä takaisin edelliseen, jos tarve ja tekeminen niin edellyttää. Oman kokemukseni perusteella vaiheet 1 ja 2 kannattaa sitoa tiiviisti toisiinsa. Tärkeää on saada versio 1. mahdollisimman nopeasti valmiiksi, minkä jälkeen voidaan arvioida tarkemmin onnistumista myös suuremmalla työmäärällä. Kierros kierrokselta mallia voidaan hioa lopulta paremmaksi. 

2) Mikä onkaan ratkaistava ongelma ja miten puemme sen ennakoivan analytiikan avulla ratkaistavaan muotoon?

Uskaltaisin väittää, että lopputuloksen onnistumisen kannalta tärkein yksittäinen vaikuttava tekijä on liiketoimintaongelman riittävän järkevä ja yksityiskohtainen rajaus. Liiketoimintaprosessit ovat usein monimutkaisia ja matemaattinen kuvaus loistaa poissaolollaan. Analytiikan suhteen tekeminen kannattaa aloittaa liiketoimintaprosessin kuvaamisella kevyeen matemaattisloogiseen muotoon. Edellisessä blogikirjoituksessani halusin esimerkinomaisesti ostaa auton, jolla ennustetusti tullaan ajamaan yli 15 000 km vuodessa. Tämä ongelma on niin yksinkertaisessa muodossa, että sitä voidaan helposti ratkaista käytettävissä olevalla datalla. En tarkoituksellakaan lähde ensimmäisessä vaiheessa mallintamaan liian monimutkaista ongelmaa.

Tehokkain tapa päästä liikkeelle on siten, että asetetaan ratkaistava kysymys muotoon, jossa vastaus on yksinkertainen. Microsoftin mainiossa blogikirjoituksessa "What Types of Questions Can Data Science Answer?" tuodaan esille minkä tyyppisiin kysymyksiin koneoppimisella voidaan vastata. Esimerkiksi "tuleeko kyseinen asiakas ostamaan tämän tuotteen, jos lähetämme hänelle 10% alennuskupongin? vastaus: kyllä", tai "millä hinnalla tämä tuote kannattaa myydä tähän kellonaikaan näillä taustatiedoilla? vastaus: 515€". Omassa esimerkissäni ratkaistava ongelma on (kahden luokan) luokittelu -tyyppinen. Tämä siksi, että kysymykseen "ajetaanko autolla yli 15 000 km vuodessa?" riittää yksinkertainen "kyllä/ei" -vastaus.

3) Miten valitsemme mallinnusmenetelmän?

Liiketoimintakysymyksen asettelu vaikuttaa valittavaan mallinnusmenetelmään. Tähän vaikuttaa myöskin datan laatu, määrä ja luonne. Myöskin käytettävänä olevalla ajalla ja työkaluilla on merkitystä. Jotkin menetelmät puolestaan ovat helpompia tulkita ja toiset taas antavat yleensä tarkempia ennustetuloksia. Testaamalla se siis selviää. Esimerkkini luokitteluongelmaan voidaan luoda R:llä päätöspuumalli, joka on yksi helpoimmin ymmärrettävistä malleista. Sen perusperiaate on jakaa olemassa oleva data-aineisto päätösavaruuteen muuttujien avulla vastaamalla oksien haaroissa oleviin kysymyksiin (kts. kuva 1). Lopulta oksat päättyvät lehtiin, joissa löytyy vastaus alkuperäiseen kysymykseen.

4) Miten luomme mallin ja arvioimme sen luotettavuutta?

Mallin luominen edellyttää datan valmistelua haluttuun formaattiin. Tässä tapauksessa puhdistin Suomen ajoneuvokannan avointa dataa Qlikillä ja R:llä. Näitä toimenpiteitä olivat mm. vastauksen luominen (onko autolla ajettu yli 15 000 km matkamittarilukeman perusteella?), ajoneuvojen rajaaminen haluttuihin henkilöautoihin ja ajoneuvojen iän laskeminen käyttöönottopäivään pohjautuen. Datan valmistelun jälkeen opetin päätöspuumallin R:llä jakaen datan 80/20 suhteessa opetus- ja testiaineistoon sekä testasin mallin toimivuutta yksinkertaisilla arviointimenetelmillä (ennustetarkkuus, ROC/AUC). Nopealla testillä sain positiiviseksi ennustearvoksi noin 75%, joka on sattumanvaraista valintaa reilusti parempi (55%). Käytettävän ajan puitteissa tätä tulosta voitaisiin lähteä vielä parantamaan eri menetelmin.

Alla olevassa kuvassa 1. näkyy miten malli ennustaa jatkossa vastauksia. Kuvan alla muutama havainnollistava esimerkki.

Kuva 1. Luotu päätöspuumalli visualisoituna

Kuva 1. Luotu päätöspuumalli visualisoituna


Ennustettava auto 1:

  • moottorin iskutilavuus: 2000 cm3  
  • ikä: 10 vuotta
  • paino: 1500 kg
  • -> Ennuste: Kyllä

 

Ennustettava auto 2:

  • moottorin iskutilavuus: 1500 cm3
  • ikä: 5 vuotta
  • paino: 1100 kg
  • -> Ennuste: Ei

5) Miten yhdistämme R-mallin Qlikkiin ja käytämme sitä päätöksenteon tukemiseksi?

R-mallin luomisen jälkeen otin sen käyttöön Qlikissä. Kesäkuussa QlikTech julkaisi Qlik Sense June 2017 version yhteydessä avoimeen lähdekoodiin perustuvan integraatiopalikan (connectorin) Qlikin ja R:n välille. Sitä hyödyntämällä Qlikkiin voidaan upottaa R-koodia, joka sitten voidaan edelleen ajaa connectoria hyödyntäen erillisellä R-serverillä.Voimme siis nyt uutta dataa käyttäen kysyä luomaltani ennustemallilta ajetaanko kyseisellä autolla yli 15 000 km vai ei, minkä jälkeen malli palauttaa vastauksia suoraan päätöksenteon tueksi.


Ota yhteyttä, niin mietitään yhdessä miten teidän yrityksenne pääsee alkuun ennakoivan analytiikan hyödyntämisessä osana päätöksentekoa. Teknologisesta näkökulmasta vaihtoehtoja on monia - kysymys on vain mistä lähdetään liikkeelle.

Terveisin,
Jarkko Hänninen
Business Insight Consultant
@ eCraft Referre