For ikke så længe siden skrev jeg om H2O (link) , der er et nyt open source machine learning platform, som skulle gøre machine learning tilgængelig for folket. Nu har en anden platform netop meldt sig på banen, måske på en lidt større skala, eller ihvertfald med et lidt større navn bag, men ikke særlig open source. Microsoft har netop annonceret Azure ML, som er en cloud service der kan bruges til at lave business analytics og machine learning. Som forestiller sig en verden hvor elevatorer altid venter på dig, hvor fly aldrig kommer for sent. Ved brug af predictive maintenance, som er baseret på predictive analyser som i bund og grund er machine learning, bliver alle problemer løst dagen før de opstår. Igen er jeg altid lidt skeptisk hvad sådan noget angår, men det er da en vision, og hvad jeg har set af Azure ML så ser det virkelig nemt ud, i hvert fald med “hello world” type scenarier, så det bliver sikkert et skridt i den rigtige retning.
Som sagt har jeg stadig ikke prøvet med egne data, men det ser ret fikst ud, og lige til at gå til. Ved hjælp af simple drag and drop interface kan man hurtigt bygge analyser op, et eksempel kan ses i nedenstående screenshot.
Basalt set virker alle business analyser på samme måde. Man har følgendende skridt som skal følges:
- Indlæs data
- Rengør data
- Split data
- Træn algoritme
- Score model.
- (Udfør forudsigelser)
Og det gør Azure ML brug af til inddeling af de forskellige faser. Indlæs data handler selvfølgelig om at vi skal indlæse nogle historiske data, som skal bruges som base for vores læring. Data skal rengøres så algoritmen ikke ender i udefineret tilstande fordi data er duplikeret eller en værdi ikke er defineret osv. Derefter deles data op i to sæt, et trænings sæt og et testsæt. Det første bruges til at træne algoritmen med, og det andet til at verificere om modellen kan forudsige værdier givet i testsættet.
Der er flere ting som jeg synes ser rigtig smarte ud, for det første kommer Azure ML med en masse readers som gør det nemt at indlæse data, samt mulighed for at lave egne readers så man kan hente data fra f.eks. Mongo også. Problemet ved at have analysen kørende i skyen er at alt koster penge, så man vil sikkert lave noget data aggregering inden det bliver indlæst, for at reducere trafikken og dermed omkostningerne.
Når man har lavet et forsøg med en algoritme, præsenteres resultatet på en overskuelig måde, med statistik for hvor god denne algoritme har været. Hvis man ikke er tilfreds så kan man trække en anden algoritme ind, og der er rigeligt at vælge imellem, køre dem parallelt og så sammenligne resultaterne.
Når man er tilfreds trykker man på en knap og vupti så er der en webservice klar til at forudsige nye ting.
Det er da nemt. Som sagt skal man altid være varsom med at rose sådan en platform før man har prøvet den. Men det her ser rigtigt godt ud.
Selvom det hele ser nemt og ligetil ud tror jeg hurtigt man kan komme ud i at skulle specificere en masse forskellige queries, og kodestumper i de forskellige opgaver (tasks), der ville jeg ønske der var noget Visual Studio integration, således man kunne have en solution med det hele i. Jeg kunne også godt have tænkt mig at der var en desktop version med algoritmerne, så man kunne lege med dem uden at skulle bruge penge – Tilbage er de gode gamle terminal dage. Derfor bliver det også spændende at se pris modellerne.