Älyä fillarointiin osa 2: Visuaalisella analyysillä kiinni dataan

18.10.2018

Älyä fillarointiin osa 2: Visuaalisella analyysillä kiinni dataan

Kaikki alkaa valmistelusta

Blogisarjan edellisessä osassa esittelin tämän sarjan aiheen pintapuolisesti: Älyn tuominen kaupunkipyöräilyyn kolmessa osassa. Nehän ovat:

  1. Historioitujen asemakohtaisten tilastojen lataus ja preppaus
  2. Käyttötilastojen analysointi ja mallinnus
  3. Mallin tulosten visualisointi ja hyödyntäminen

Aineistot tähän projektiin löytyvät HSL:n avoimen datan portaalista. Kyseisestä portaalista löytyy myös kaikkea muuta jännää, kuten esimerkiksi rajapintoja reittisuunnitteluun!

Tässä tapauksessa meitä kuitenkin kiinnostaa käyttötilastot kaupunkipyöristä. Tilastoja voi tutkia REST API:n ja GraphQL-konsolin kautta, ja dataa löytyy myös historioituna JSON-muodossa. Nopean tarkastelun perusteella historioitua dataa oli hyvin tarjolla, joten latasin elokuun alkupuolella kaikki tilastot huhtikuun alusta heinäkuun loppuun, kaikkiaan neljän kuukauden ajalta.

Data on strukturoitu niin, että kaikkien asemien tilanteesta otetaan snapshot minuutin välein, ja jokainen erillinen tiedosto kuvaa juuri sen hetken tilannetta jokaisella asemalla. Ajanhetken voi päätellä tiedoston nimestä, esimerkiksi tiedostonimi stations_20180701T095801Z kertoo, että tiedosto sisältää ajankohdan 01.07.2018 klo 09:58:01 tilanteen kaikkien asemien pyöristä. Koska tiedostot on nimetty tietyn logiikan mukaan, voi lyhyellä koodinpätkällä koko setistä parsia yhden csv-tiedoston, joka sisältää käyttötilastot aikasarjana asemittain. Itse käytin tähän R:ää. Tämän jälkeen onkin luontevaa alkaa tutkiskella, miltä data oikeastaan näyttää.

Tableau Prep & Desktop – voimakas yhdistelmä

Tähän tutkiskeluun käytän mielelläni yhtä lempityökaluistani, Tableauta. Mutta vaikka tiedot on nyt parsittu CSV-muotoon, eksploraation jouhevoittamiseksi voi datasetistä ensin koostaa uudella Tableau Prepillä valmiin datalähteen, joka auttaa itse Tableauta lukemaan dataa paljon nopeammin. Lisäksi tässä vaiheessa on kätevää myös parsia pari apukenttää, eli itse aikadimensio ja asemien koordinaatit:

Tableaun käyttämän .hyper-mallin parsimiseen menee pari minuuttia, ja tämän jälkeen tiedoston voi avata Tableau Desktopilla ja alkaa selailla dataa. Mainitsin aiemmin, että hyper-pohjaisena Tableau toimii paljon nopeammin. Mutta kuinka paljon? Otin aikaa, ja alla olevaan kuvaan Tableaun piti csv-pohjaisena ensin ladata dataa n. 6 minuuttia, jonka jälkeen laskutoimitukset pystyi tekemään parin sekunnin laskennalla. Hyper-pohjaisena kaiken datan sai ruudulle ilman näkyvää viivettä.

Heti ensimmäiseksi pistää silmään, että asemien välillä on aika mielenkiintoisen näköistä vaihtelua. Alla oleva kuva näyttää asemien keskimääräisen pyörämäärän tunneittan ja asemittain jaettuna viikonpäivien mukaan:

Tästä voidaan vetää nopea johtopäätös, että asemia selkeästi käytetään eri tavoilla riippuen aseman sijainnista – eli asemien välisissä käyttötavoissa on mitattavia eroja. Myös etenkin viikonloppu vs. arki -jaottelu näyttäisi olevan merkittävä. Aikasarjaa tutkiskelemalla taas näkee hienosti kaupungin ”sykkeen”, esimerkkinä satunnainen viikko toukokuulta:

Eksploraatiosta ideaan

Tässä vaiheessa datasta alkaa jo olla aika hyvä kuva – kyseessähän ei ole mikään kovin monimutkainen datasetti, sillä se kuvaa vain pyörien tilannetta asemien ja ajanhetken kannalta. Seuraava askel on keksiä, mitä mielenkiintoista tästä voisi rakentaa. Hmm.

Idea analytiikalle kumpusi nopeasti omista kokemuksista – olen jo pitkään itse hyödyntänyt cityfillarien reaaliaikaisen rajapinnan päälle tehtyjä sovelluksia, jotka kertovat pyörien tämänhetkisen tilanteen; harmittavan usein olen kuitenkin joutunut huomaamaan, että saapuessani asemalle joko pyörä on ehtinyt kadota, tieto on ollut virheellistä, tai asemalla oleva pyörä ei ole käyttökunnossa. Mielenkiintoista olisikin tietää, kannattaako asemalle jäädä odottelemaan, jos vaikka parin minuutin sisällä asemalle tulisikin toinen fillari?

Toisin sanottuna minulle hyödyllinen sovellus kertoisi todennäköisyyden, jolla asemalle saapuu uusi pyörä lyhyen aikavälin sisällä, ja voisin sen perusteella jäädä joko kokeilemaan onneani tai valita toisen tavan liikkua. Mitenkäs sellaista voi sitten laskea? Lue lisää seuraavasta postauksesta!

 

Blogisarjan muut osat:

Share
Contact Person

Bloggaaja

Lauri Nurmela

Consultant