Datan laatu on yleisin kompastuskivi tietovarasto- ja analytiikkaprojekteissa. Se on kuin Känkkäränkkä, joka tulee ja sotkee huolella laaditut gantt-kaaviot ja kustannusarviot. Ja mitä tulee ns. big dataan, niin siinä ei datan laatu ainakaan parane.
Vanha sanonta toteaakin, että ..”roskaa sisään, roskaa ulos”. Eli jos lähtödata on kuralla, niin on myös sen hyödyntäminen raporteilla ja analytiikassa.
Kuten monet vanhan kansan viisaudet, tämäkin on osittain totta. Ei kuitenkaan kokonaan, koska edistyneellä analytiikalla on mahdollista korjata huonoakin dataa selvästi paremmaksi.
Seuraavaksi esitän reaalimaailman tilanteen, jossa analytiikalla korjattiin puuttuvaa tietoa.
Lähtötiedot ja ongelma
- Tuotteita n. 40 000 kpl
- Tuotteilla n. 10 erilaista ominaisuutta
- Tuotteilla ylätason luokituksia (esim. tuoteryhmät)
- Kaikki luokitukset ja ominaisuudet eivät ole pakollisia tietoja
Kun kaikkien tietojen antaminen ei ole pakollista, niin niitä jää helposti kirjaamatta – kaikesta ohjeistuksesta huolimatta.
Tässä tapauksessa erityinen ongelma on yksi luokitus, jonka mukaan mm. raportointi toimii johtotasolle. Tässä kohtaa puuttuvia tietoja on 1 215 kpl, jotka voivat saada 12 erilaista luokkaa/arvoa. Tavoitteena on, että puuttuvia tietoja ei olisi lainkaan.
Seuraava kuva tiivistää tilanteen.
Korjausvaihtoehdot
Ensimmäinen vaihtoehto olisi käydä manuaalisesti lävitse kaikki tapaukset ja tehdä korjaukset. Siihen kuitenkin tarvittaisiin useamman tuotepäällikön työpanosta. Eivätkä hekään ilman lisäselvityksiä osaa suoraan nimetä oikeita luokkia kaikille puuttuville kohteille. Tämä on periaatteessa mahdollinen vaihtoehto, mutta krooninen ajanpuute tekee siitä mahdottoman.
Toinen vaihtoehto on käyttää edistynyttä analytiikkaa korjaamaan puuttuvat tiedot. Mistä tiedetään onko se edes mahdollista?
Lähtökohtaisesti tiedetään, että puuttuvan luokan voi päätellä mm.
- tuotteen ominaisuuksista ja niiden kombinaatioista
- tuotteen nimestä tai sen osasta
- tai kahden edellisen kohdan kombinaatiosta
Nyt kukaan ei tiedä kaikkia em. päättelysääntöjä, saati että olisi niitä kirjannut johonkin. Joka tapauksessa päättelysääntöjä syntyisi vähintään kymmeniä ellei satoja. Melko työlästä siis toteuttaa manuaalisesti.
Ratkaisu
Puuttuvan tiedon korjaamiseksi päätettiin testata “Naive Bayes” pohjaista data mining- menetelmää (jatkossa algoritmi). Ohjelmistona käytettiin RapidMineria.
Aloitettiin seuraavalla tavalla:
- muodostettiin datasetti ehjästä datasta, jossa ei ollut puuttuvia luokkia
- datasettiin valittiin tuotteen ominaisuudet ja osia tuotteen nimestä
- annettiin algoritmin päätellä millä tuotteen ominaisuuksilla ja nimenosilla voi parhaiten ennakoida kohteena olevan luokan arvoja (Ilves, Puuma, jne.)
Luokittelutarkkuus oli n. 95%:ia eli ehjällä datalla algoritmi onnistui hienosti päättelemään oikean luokan tuotteelle. Mainittakoon että tässä tapauksessa kohdeluokkia oli 12 kpl, joiden välillä luokittelutarkkuus vaihteli 50-99,8%:n välillä. Tämä tarkoittaa, että osa tapauksista oli helppo luokitella (>99%) ja osa vaikeampia (50%).
Edellisessä vaiheessa syntynyttä mallia sovellettiin seuraavaksi datasettiin, johon oli valittu tuotteet, joilta luokitus puuttui (ks. aiempi kuva). Ideana siis selvittää miten hyvin malli osaa korjata puuttuvia tietoja. Ohessa tulostaulukko.
Taulukko kertoo, että mallin päättelysääntöjen mukaan 891 kpl puuttuvista tiedoista kuuluu luokkaan “Ilves”. Keskimääräinen todennäköisyys kuulua ko. luokkaan on 99,8%:ia – eli taustalta löytyi hyvin voimakkaasti selittävä päättelysääntö.
Kokonaisuutena mallin mukaan oikein luokiteltuja (= korjattuja puuttuvia arvoja) pitäisi olla 95,7%:ia kaikista tapauksista. Onko sitten näin?
Asia tarkistettiin silmämääräisesti asiantuntijoiden toimesta. Tällä tavalla ei tarkkaa tulosta saatu, mutta varmalta vaikutti että ainakin 90%:ia meni oikeastikin oikein. Ei huonosti.
Lopputuloksena 1215 puuttuvasta tiedosta voitiin korjata oikeaksi noin 1 100 kappaletta. Aikaa siihen meni vähemmän kuin tämän blogin kirjoittamiseen – eli miljoonaprojektista ei ollut kyse.
Mitä hyötyä?
Tietojen korjaamista analytiikan avulla tulee miettiä tapauskohtaisesti. Mikäli tiedon korjaaminen johtaa parempaan liiketoimintaan, niin silloin se kannattaa.
Esimerkkinä mainittakoon asiakastietojen (CRM) korjaaminen, kun puuttuvaa tietoa on paljon. Käydään lopuksi läpi kuvitteellinen keissi.
- CRM sisältää 500 000 asiakkaan tiedot
- 20% asiakkaista on antanut kattavat tiedot
- 80%:illa asiakkaista on paljon puuttuvaa tietoa
- Kaikkien asiakkaiden kohdalta on ostotapahtumat tallessa
Nyt valitaan asiakkaat, joilta on kattavat CRM ja ostotapahtumat tallessa. Heidän datallaan muodostetaan malli, joka ennustaa puuttuvat CRM-tiedot muille (80%) asiakkaille. Kun kaikille asiakkaille on olemassa kattavat tiedot, niin kohdennettu myynti ja markkinointi on paljon helpompaa ja tehokkaampaa.
Tällaista lähestymistapaa käyttävät mm. Google ja Amazon, kun he profiloivat käyttäjiä ja kohdentavat heille tarjontaansa. Ne tietävät joitakin varmoja asioita asiakkaistaan, mutta osaavat ennustaa loput riittävällä tarkkuudella.