17.05.2016

Azure ML – Prediktiivisen analytiikan pilvipalveluiden aatelinen? (vertailu IBM Watson analyticsiin)

Viime kirjoituksessa käytiin läpi IBM Watson analytics-palvelun käyttökokemuksia ja oleellisia toiminnallisuuksia. Kuten kirjoituksessa tuli luvattua, on seuraavaksi luvassa kurkistus ”kilpailevaan” Microsoftin Azure ML-palveluun. Heti kättelyssä voisi kuitenkin mainita, että oikeastaan palvelut painivat eri sarjassa: Watson analytics painottuu tutkivaan aineiston analysointiin ja Azure ML puolestaan prediktiiviseen. Kirjoituksen kannalta oleellisinta onkin saada käsitys siitä miten nämä käsitteiden erot näkyvät konkreettisesti data-analyysin tekemisessä, löydöksissä ja tuloksissa.

Käydään seuraavaksi läpi Azure ML:n käyttöliittymää ja ominaisuuksia esimerkkiprosessin rakentamisen avulla, samaan tapaan kuin Watsonia tarkasteltaessa. Viime kirjoituksessa Katsaus IBM Watson Analyticsiin ”uhkailtiin” Niemijärveä tulevasti taskista, hän kuitenkin joutui kieltäytymään piinapenkistä vedoten työkiireisiin, joten toteutin itse esimerkkiaineiston analysoinnin ja mallintamisen (yksinkertaisella tavalla, ikäänkuin en tuntisi aineistoa entuudestaan).

 

1) a. Miten pääsen käsiksi Azure ML-palveluun:

Käytännössä Azure ML-palvelun käyttäminen vaatii Microsoft-tilin, Azure tilauksen (subscription) ja Azure ML workspace:n luontia. Microsoft on kuitenkin luonut mahdollisuuden tutustua palveluun ilman edellä mainittujen toimenpiteiden suorittamista, Guest-tunnuksilla pystyt testaamaan palvelua 8 tunnin ajan. Jo tässä 8:ssa tunnissa pääsee melko hyvin perille palvelun monipuolisuudesta. Azure ML:ssä on myös runsaasti valmiita esimerkkejä, joista voi olla hyötyä ensimmäisillä kokeilukerroilla. Huomioi kuitenkin, että Guest-tunnuksilla joudut käyttökokemuksen osalta turvautumaan esimerkkiaineistoihin. Esimerkkiaineistot ovat suurilta osin selkeitä, joten aikaa ei liiemmin tuhriudu aineistoa ihmetellessä.

23_Azure

1) b. Azure ML-ympäristön luonti:

  • Microsoft-tilin luominen: https://signup.live.com/
  • Lyhyt opastus Azure ML-pavelun käyttöönotosta: https://azure.microsoft.com/en-us/trial/get-started-machine-learning/

Seuraavassa palvelun hinnoittelu, joka koostuu mahdollisesta workspace:n maksusta ja Azure ML:n käytöstä. Yrityskäytössä hinnat eivät todellakaan päätä huimaa…

2_Azure

 

Azure ML-palvelun käyttöönotto ei ole ydinfysiikkaa vaikka aluksi voi kuullostaa monivaiheiselta. Luomasi tilit ja tunnukset ovat likipitäen heti käytössäsi, joten pääset nopeasti käsiksi itse palveluun antiin.

 

2) Palveluun kirjautuminen ja palvelun komponentit

Sitten itse asiaan. Azure ML-palveluun voit kirjautua osoitteessa https://studio.azureml.net/. Kun olet kirjautunut palveluun sinulle pitäisi avautua seuraavan kaltainen näkymä:

24_Azure

 

Welcome-näkymässä on Watson analyticsin tapaan selkeästi ilmaistu palvelun oleellisimmat kokonaisuudet:

Experiment – Tallentamasi prosessiketjut (mallinnus, datan muokkaus, jne…)

Web services – Tallentamasi web service-prosessit (mahdollisuus kutsua esimerkiksi mallinnusprosessiketjua rajapinnan kautta)

Datasets – Tallentamasi aineistot (tai valmiina olevat esimerkkidatat)

Trained models – Tallentamasi ennustemallit

Settings – Workspacen tiedot ja tila

(Projects – Mahdollista kasata projektikohtaiset komponentit yhdeksi kokonaisuudeksi.)

 

3) Luodaan ensimmäinen prosessiketju (experiment), jossa esimerkkiaineistoa aluksi analysoidaan ja lopuksi muodostetaan ennustemalli

+ New kohdasta voit luoda tyhjän prosessiketjun: New -> Experiment -> Blank Experiment

25_Azure

26_Azure

 

Toisin kuin Watsonissa, Azure ML:ssä täytyy käyttäjän itse rakentaa ETL-prosessia muistuttava prosessiketju, jossa eri operaatioita (operaattoreita) linkitetään toisiinsa loogisessa järjestyksessä. Prosessiketjun luonti tyhjästä on kohtalaisen helppoa, jopa ensimmäisellä käyttökerralla. Drag & Drop- käyttöliittymä tekee prosessiketjun luonnista nopeaa ja mielekästä.

Muodostetaan seuraavaksi mallinnuksen prosessiketju palapalalta ja samalla tarkastellaan eri operaattoreiden käyttöä ja ominaisuuksia. Lopullisena tavoitteena on siis luoda malli esimerkkiaineistomme pohjalta, jonka ”ennustetarkkuus” päihittää Watson analyticsin luoman mallin. Lisäksi pyrimme saamaan selville mitkä tekijät (sarakkeet) vaikuttavat poistumaan (kiinnostuksen kohde aineistossa) vahvimmin. Ennustetarkkuus on laitettu lainausmerkkeihin siitä syystä, että Watsonissa ei niinkään laskettu ennustetarkkuutta vaan mallin sopivuutta aineistoon (näin ainakin voisi olettaa tuloksista päätellen).

 

a) Lähdeaineiston lukeminen:

Import Data – operaattorilla pystyt lukemaan aineistosi suoraan Azure:n data storage-lähteistä, esim. Azuren tietokannasta tai blobista (bulkkilevytilaa pilvessä). Kun Import Data-operaattori on hiirellä aktivoitu ilmestyy käyttöliittymän oikeaan reunaan valintalistoja ja muita säädettäviä parametreja. Tässä Properties-osanäkymässä määritellään tarkemmin operaattorin hienosäätöä koskevat parametrit. Säädettävien parametrien määrä vaihtelee operaattorikohtaisesti. Quick-help kohdan linkistä saat tarkempaa tietoa operaattorin käytöstä ja parametrien merkityksestä.

Import Data-operaattorin osalta valitaan esimerkissä lähteeksi Azure DB, jonka jälkeen täytetään tarvittavat tiedot: osoite, käyttäjä, salasana, SQL-kysely…

Jos kuitenkin haluat ladata palveluun lähdeaineistosi lokaalista lähteestä valitse + New -> Datasets -> from local files. Tämä lienee paras (ja ainoa) vaihtoehto ensimmäisellä käyttökerralla, varsinkin, jos muita Azure-palveluita ei ole käytössäsi.

27_Azure

 

b) Jakaumien tarkastelu, visualisoinnit

Azure ML:n omilla komponenteilla ja visualisoinnilla saa todella pintapuolisen raapaisun sarakkeiden/muuttujien jakaumista ja aineiston laadusta verrattuna Watsoniin. Azure ML:n aineiston analysointiominaisuudet eivät ole parhaat mahdolliset, huomattavasti heikommat kuin Watsonissa. Pelkästään ennustemallinnuksen kannalta lähestyttäessä kaikki oleelliset tiedot löytyvät sarakekohtaisesta metadata-näkymästä ja pienestä graafista.

28_Azure

20_Azure

 

Herää kysymys: Jos minulla on paljon sarakkeita, tarvitseeko minun yksitellen aktivoida ne Visualize-näkymässä saadakseni tarvittavat metatiedot koko aineistosta? Ei onneksi! Operaattori-valikosta löytyy Summarize Data-operaattori, jonka avulla saat hieman kattavammat metatiedot aineistostasi yhdessä näkymässä.

 

c) Sarakkeiden metadatan muokkaaminen

Kuten Watsonissa, täytyy myöskin Azure ML:ssä pitää jonkinlaista huolta sarakkeiden rooleista ja tyypeistä, ettei esimerkiksi identifioiva sarake pääse livahtamaan mukaan ei toivotussa merkityksessä. Edellä mainittuja sarakekohtaisia ominaisuuksia pystyt vaihtamaan Edit Metadata-operaattorilla.

29_Azure

 

d) Turhien sarakkeiden redusointi

Analyysin kannalta turhien sarakkeiden pois siivoaminen onnistuu Project Columns-operaattorilla. Huomioi, että esimerkkiprosessissa on poistettu sarakkeet, jotka korreloivat vahvasti keskenään, tästä syystä kuvassa näkyy myös operaattori Compute Linear Correlation, jonka avulla aineistosta lasketaan (numeerisien) sarakkeiden väliset korrelaatiokertoimet. Metadatan asettaminen vaste-muuttujan kannalta ei välttämättä ole oleellinen heti alussa, sillä mallinnusmenetelmissä tulee valita erikseen se sarake, jota halutaan ennustaa.

30_Azure

 

e) Aineiston jakaminen testi- ja opetusaineistoksi

Split Data-operaattorilla pystyt jakamaan aineiston kahteen osaan haluamallasi tavalla (mahdollisuuksia: koon, osuuksien, ehtojen… mukaan). Split Data-operaattori toimii myös yleisesti rivitason redusointi operaattorina. Monimutkaisempi rivitason redusointi voidaan toteuttaa esimerkiksi Regular Expression-option avulla (https://en.wikipedia.org/wiki/Regular_expression).

31_Azure

 

f) Mallien vertailu ja parametrien optimointi

Mallin muodostaminen ja vertaileminen on tehty todella helpoksi. Myöskään mallin hyperparametrien optimointi ei ole yhtään sen haasteellisempaa. Esimerkin prosessiketjussa käytetään hyperparametrin optimoinnissa random sweep vaihtoehtoa, joka voi olla hyödyllinen varsinkin silloin, kun tietämys mallinnusmenetelmien hyperparametrien merkityksistä on vähäistä. Random sweep ei välttämättä päädy ”optimaaliseen ratkaisuun”, mutta antaa yleensä huomattavasti default-arvoisia hyperparametrisäätöjä paremmat tulokset.

 

g) Merkitsevien sarakkeiden haarukointi (Permutoimalla)

Poistumaan vaikuttavia tekijöitä (sarakkeita) voidaan selvittää mallispesifisesti Permutation Feature importance-operaattorin avulla. Huomioitavaa tässä tapauksessa on se, että merkitsevyysmittarin arvot ovat mallisidonnaisia, eli jos vaihdat mallinnusmenetelmää on odotettavissa, että merkitsevyydet voivat vaihdella (oleellista ei välttämättä ole niinkään itse lukuarvo vaan eri sarakkeiden merkitsevyyslukujen suhteelliset erot).

33_Azure

35_Azure

 

 

h) Tulosten tarkastelu

Esimerkkiaineiston tapauksessa mallinnusmenetelmä 1 antoi selkeästi paremman tarkkuuden kuin menetelmä 2, joten lopullinen mallin ennustetarkkuus laskettiin käyttäen mallinnusmenetelmä 1:stä (Boosted decision tree). Päihitimme Watsonin ”ennustetarkkuudessa”, mutta hävisimme kyllä mallin tulkinnassa selkeästi (valittu mallinnusmenetelmä ei niitä tulkinnallisempia, ensemble-method).

34_Azure

 

36_Azure

Oleellinen ero Watsoniin on siinä, että Azure ML:llä voimme todella ennustaa uutta vasteen suhteen tuntematonta aineistoa, saamme siis ulos asiakaskohtaiset ennusteet. Toki Watson avulla voisimme päätöspuun säännöstön implementoida esimerkiksi Exceliin tai raportointityövälineeseen.

 

Yhteenvetoa (ja vertailua IBM Watson analyticsiin):

1) Azure ML on selkeästi prediktiiviseen analytiikkaan ja aineistojen yhdistämiseen ja muokkaukseen suunnattu palvelu, kuten edellä muodostettu esimerkkiprosessi antanee ymmärtää. Käyttäjän tulee siis tuntea vähintäänkin perusperiaatteet ennustamisesta/aineiston mallintamisesta, sekä mallinnusmenetelmistä ennen palvelun käyttöä ennustamistarkoituksessa.

2) Mikäli yritykselläsi on joku tai joitakin Azuren storage-palveluita on Azure ML järki ratkaisu ennustavan analytiikan työvälineeksi.

3) Azure ML:n omilla operaattoreilla pääsee melko pitkälle mallintamisessa ja tarvittaessa voi turvautua myöskin R:n apuun palvelun sisällä (esimerkiksi aikasarja-analyysi)

4) Azure ML ei ole paras mahdollinen väline aineistojen visualisointiin ja tutkimiseen (jos et ole sinut R-ohjelman ja sen visualisointi-pakettien kanssa)

5) Azure ML oppimiskynnys on hyvin matala ja käyttöliittymä on enemmän tai vähemmän identtinen esimerkiksi Rapidminerin, SSPS Modellerin kanssa, oppimiskynnys on siis hyvin matala

6) Prosessiketjun suorittaminen (ajoaika) kestää välillä turhankin kauan, vaikka tehtäisiin vain yksinkertaisia toimenpiteitä (usein tyypillistä pilvipalveluille). Tämä seikka voi hieman nakertaa alkuvaiheessa, on siis ihan järkevää suunnittella vähintäänkin mielikuvaharjoitteena alustava prosessiketjun kulku ennen toteuttamista.

7) Web servicen rakentamista ei käyty läpi tässä kirjoituksessa, mutta se on pakko nostaa esille tässä yhteenvedossa erittäin positiviisena asiana. Web servicen julkaisu on erittäin helppo toteuttaa Azure ML:ssä, tarvitsee käytännössä asettaa prosessiketjun aineistolähde web servicen inputuksi ja tulostaulu outputiksi. Lisäksi annetaan skriptin pätkät, joilla voidaan web serviceä kutsua esimerkiksi R:llä tai Pythonilla.

 

IBM Watson Analytics                                                Azure ML

37_Azure_Watson

 

Lyhyesti voisi siis tiivistää, että Watson on business-käyttäjän työväline (ei data-analyytikko) ja Azure ML data-analyytikon. Itse käyttäisin molempia, analyysin alkuvaiheessa Watson, lopullisen ratkaisun implementointi ja hienosäätö Azure ML:ssä!

Järjestämme nyt erittäin ajankohtaisin Azure Machine Learning koulutuksen 18.11.2016, lisätiedot ja ilmoittautuminen tästä

 

Saattaisit olla kiinnostunut myös näistä

Tiedonhallinnan alueen suuria nimiä

Lue lisää

Uudistamme laajasti Ari Hovin koulutuksia ja toimintaa

Lue lisää

Vältä hypetystä ja irrallisia valintoja, kun kokoat teknologista työkalupakkia vaihtoehtojen valtamerestä

Lue lisää