Projektipäivät

Kokeilemalla uutta kohti: näin pilotoimme ennakoivaa matkustajalaskentaa

Säätiedot, otteluaikataulut ja kalenteridata rikastivat historiatietoa Ambientian toteuttamassa pilottikokeilussa.

Reaaliaikainen paikkatieto on joukkoliikenteessä jo arkipäivää. Liikenne ja datan hyödyntäminen on tuttu yhdistelmä myös ambientialaisille: olemme mukana SmartRail Ecosystem -verkostossa ja toteuttaneet käytännössä esimerkiksi digitaalisen tilannekuvajärjestelmän Tampereen Raitiotie Oy:lle.

Liikennealan foorumeilla on ollut jo tovin puhetta datan hyödyntämisen seuraavasta vaiheesta: ennakoivasta analytiikasta. Millaisia käyttötapaukset olisivat, miten analytiikkaa ja  koneoppimismalleja kannattaisi rakentaa ja miten tarkoiksi ennusteet koneoppimisen avulla voivat muodostua?

Päätimme etsiä vastauksia pilottiprojektissa, jossa rakensimme koneoppimismallin ennakoivaa matkustajalaskentaa varten. Saimme käyttöömme HSL:n dataa. Tavoitteena oli koota yhteen suositukset ja opit, joita voisi hyödyntää tulevissa hankkeissa – samaa mallia voidaan käyttää lukuisissa muissa konteksteissa, kuten ennustamaan kivijalkakaupan asiakasmääriä tai hellejaksoina myytäviä jäätelötötteröitä.

Koneoppimisprojektin askeleet

Huolella toteutettu koneoppimisprojekti noudattaa usein tiettyjä askeleita. Ne eivät välttämättä ole riippuvaisia siitä, millaista algoritmia hyödynnetään tai millainen käyttötapaus on kyseessä. Tällä kertaa kyse oli matkustajamäärien arvioista, joten kuljetaan seuraavaksi case-esimerkin matkassa vaihe vaiheelta!

  1. Valitsimme ensin, mitä lähdetään mallintamaan.

    Tunnistimme ensin liikenneoperaattorin liiketoiminnallisen tarpeen, eli miksiteemme projektia: pysäkkikohtainen, ennakoiva matkustajalaskenta antaisi arvokasta tietoa päätöksenteon tueksi. Esimerkiksi jos HSL pystyy arvioimaan, miten paljon kuhunkin liikennevälineeseen on tulossa väkeä, se voi optimoida kapasiteetin käyttöä, yhdistellä eri liikennemuotoja, suunnitella reittejä paremmin tai käyttää dataa jopa hinnoittelupäätösten tukena.Ratikkamatkustamisen pysäkkikohtainen tarkastelu oli yksi tapa lähestyä aihetta. Päätimme tarkastella kahta Helsingin Töölössä sijaitsevaa pysäkkiä. Sijainti kantakaupungissa urheilustadionin lähellä oli mielenkiintoinen, ja historiadatan hankkimisen kannalta mahdollisimman hyvä: esimerkiksi ratatyöt ja reittimuutokset eivät olleet aiheuttaneet pitkiä katkoksia näiden pysäkkien linjoihin.Liiketoiminnallisen ongelman ja tavoitteen ymmärtäminen ohjaa tiimiä läpi minkä tahansa koneoppimisprojektin. Myöhemmin saatavia tuloksia peilataan aina niihin. Onko meillä käsissämme nyt sitä, mitä haluamme ja tarvitsemme? Vastaako tämä löydös alkuperäiseen haasteeseen?
  2. Seuraavaksi tunnistimme, millaisia ilmiöitä liittyy mallintamisen kohteeseen – matkustajien määrään ratikkapysäkeillä. 

    Tutkimuksen ja analytiikan kohteena olevaan ilmiöön – tai tarkemmin vastemuuttujaan – voi liittyä satoja eri tekijöitä. Mikä kaikki vaikuttaa siihen, että tänään ratikkaa odottaa kello kahdentoista aikaan kaksikymmentä ihmistä, huomenna vain kaksi? Liikenteen reititykset, tietyöt, ruuhkat, kaupungin tapahtumat…Koneoppimismallinnus tuottaa todennäköisyyksiä, joita pyritään optimoimaan ja usein tämä onkin iteratiivista tekemistä. Näin ollen on kannattavaa valita muutama ilmiö, joiden kanssa lähteä liikkeelle.Tässä pilottiprojektissa tutkimme HSL:n pysäkkikohtaista historiadataa 1,5 vuoden ajalta. Sen lisäksi halusimme rikastaa mallinnusdatasettiä säätilan, viikonpäivien ja juhlapyhien vaikutuksella sekä läheisen stadionin urheilutapahtumien aikatauluilla ja kävijämäärillä.

  3. Sitten valmistelimme datan varsinaista mallinnusta varten.

    Tähän vaiheeseen kuului datan keräämistä eri lähteistä, sen putsaamista, muokkaamista ja yhdistelyä. Tämä osuus vie yleensä eniten aikaa dataprojekteissa!Ennakoivan matkustajalaskennan pilotissa pohjana oli siis HSL:n tarjoama historiadata. Säädataa saimme Ilmatieteen laitokselta, ja lisäksi hyödynsimme Veikkausliigan kautta saatavaa jalkapallo-otteludataa aikataulujen ja kävijämäärien osalta.Juhlapyhä- ja kalenteritietoja ei tarvinnut erikseen lisätä datasettiin, sillä algoritmi osasi tämän huomioida automaattisesti.

  4. Kun mallinnusdatasetti oli luotu, käärimme hihat ja aloitimme mallintamisen.

    Sopivan algoritmin valitsemiseksi vertailimme muutamaa aikasarjadataan (time series) sopivaa vaihtoehtoa, ja lopulta algoritmiksi valikoitui NeuralProphetin algoritmi. Se on alunperin Facebookin lanseeraama, avoimen lähdekoodin neuroverkkomalli, joka perustuu PyTorchiin. NeuralProphetin algoritmi soveltui juuri tarpeitamme vastaavaan mallinnukseen ja siitä löytyy paljon referenssejä ja kokemuksia, joten sen kanssa oli helppo jatkaa.
  5. Mallinnuksen jälkeen saimme ensimmäiset tulokset.

    Arvioimme ja tutkimme niitä kriittisesti: onko eri tyyppistä dataa riittävästi, mitä meidän pitää vielä muokata, olisiko viisaampaa käyttää kokonaan toisen tyyppistä dataa, mitä tulokset ylipäänsä kertovat? Varsinkin tällaisessa analytiikkaprojektissa jatkuva iterointi on työn suola.
  6. Lopulta malli voidaan ottaa käyttöön, mutta kyseessä ei ole päätepysäkki.

    Pienehkön pilottiprojektin kohdalla toteutusvaihe oli melko kevyt ja se olikin pilotin tavoite: nähdä tuloksia nopeasti niin liiketoiminnallisesta kuin teknisestä näkökulmasta. Todellissa projektissa tässä vaiheessa tulisi ajankohtaiseksi mallin tuotannollistaminen ja monitoroiminen esimerkiksi julkipilveen toteutettuna, mutta se ei kuulunut nyt pilottimme kokonaisuuteen.

Koneoppimisprojektin sykli on kuin ikiliikkuja: yhden kierroksen päätyttyä syntyy todennäköisesti kokonaan uudenlaisia tarpeita ja ideoita, joiden kanssa voidaan aloittaa taas alusta.

Datan rikastaminen lisäsi ennusteen tarkkuutta

Lähdimme testaamaan algoritmin toimivuutta. Syötimme algoritmille tietoa matkustajamääristä 1,5 vuoden ajalta aina kesään 2021 asti. Näin pystyimme simuloimaan ennusteen seuraavalle puolelle vuodelle, eli loppuvuoteen 2021, ja lopulta vertaamaan ennusten tarkkuutta todellisiin matkustajamääriin.

Teimme mallinnuksen kahdessa osassa. Ensimmäisessä ennusteessa hyödynnettiin ainoastaan edellä mainittua historiadataa, eli HSL:n keräämää tuntikohtaista tietoa siitä, kuinka monta matkustajaa pysäkillä on milläkin ajan hetkellä ollut. Toteumaan verrattuna ennuste oli oikean suuntainen, mutta huomasimme, että pitkällä aikavälillä sen epävarmuus alkoi hieman kasvaa. Mallin luotettavuudesta kertova Mean Absolute Error – eli MAE-luku ilmaisee minkä tahansa datapisteen keskimääräisen etäisyyden ennusteen ja toteuman välillä, ja tuo lukema oli pelkän historiadatan kanssa 8,74.

Toinen kierros tehtiin sen jälkeen, kun olimme rikastaneet datasettiä Ilmatieteen laitoksen sääennusteilla, jalkapallo- ja jääkiekko-otteluaikatauluilla sekä kalenteridatalla. Huomasimme, että MAE-luku putosi 6,75:een, eli malli oli jo selvästi luotettavampi! Opetimme koneoppimismallia korona-ajan matkustajadatalla, jolloin matkustajamäärät poikkesivat merkittävästi “normaaliaikojen” matkustajamääristä, mutta siitä huolimatta onnistuimme pääsemään kohtuullisen hyvään ennustustasoon.

Ennustamiseen toivat epätarkkuutta erityisesti korkeat piikit toteutuneissa matkustajamäärissä. Yritimme selittää niitä läheisiin jalkapallo-otteluihin liittyvän datan avulla, mutta selviä vastauksia ei löytynyt. Sen sijaan huomasimme, miksiemme todennäköisesti löytäneet selityksiä.

Otteludataa ei tässä tapauksessa ollut riittävän paljon vertailun pohjaksi, ja lisäksi se oli kerätty koronarajoitusten aikana, jolloin ottelutapahtumissa oli merkittäviä katsojarajoituksia. Tuottamamme mallinnus osasi siis huomioida otteludatan, mutta pienistä katsojamääristä johtuen, niillä ei nähty olevan kytköstä toteutuneisiin matkustajamääriin. Iterointi siis jatkuu.

Tee organisaatiostasi datavetoisempi

Mitä opimme pilotista?

Harjoitus oli kaiken kaikkiaan kohtalaisen pieni, mutta antoi silti kiinnostavaa tietoa. Lähdimme rohkeasti kokeilemaan, hankkimaan dataa, mallintamaan ja vertailemaan tuloksia. Ja kuten toivoimme, tämä kaikki herätti ajatuksia:

  • Pystyimme tekemään ennusteeseen melkoisen parannuksen, kun lisäsimme mallinnusdatasettiin vain muutaman parametrin historiatiedon rinnalle.
  • Jos haluamme, että malli on kattava ja antaa mahdollisimman luotettavan tuloksen, sille on annettava oikeasti merkityksellistä dataa, riittävä määrä ja oikeanlaisessa muodossa. Kriittinen arviointi saa huomaamaan esimerkiksi sen, jos opetusdatan määrä ei vielä ole riittävä.
  • Kannattaa hyödyntää avoimien kirjastojen valmiita algoritmeja, sillä ne ovat hyviä, laajasti hyödynnettyjä ja dokumentoituja.
  • Pelkän päämäärän lisäksi anna arvoa matkalle. Kävimme koko ajan keskustelua siitä, mitä tulokset tarkoittavat ja miten voisimme parantaa saatua ennustetta ja analysoida tuloksia eri näkökulmista.

Tavoitteemme oli tarjota uudenlaista rikastettua tietoa, jota liikenneoperaattori voi käyttää päätöksenteon tukena. Oppiva ennustemalli ei palvele ainoastaan tiettyjen ratikkalinjojen tulevaisuutta, vaan sitä voi käyttää, kun halutaan ymmärtää paremmin koko julkisen liikenteen kokonaisuutta, raitiovaunuista busseihin ja kaupunkipyöriin. Operaattorin lisäksi samasta datasta voivat olla kiinnostuneita myös muun muassa taksifirmat ja mainostajat.

Suosittelen kokeilevaa asennetta jokaiselle, joka haluaa hyödyntää dataa nykyistä paremmin. Liikkeelle ei välttämättä tarvitse lähteä isosti, vaan pienelläkin panostuksella voit päästä vauhtiin. Samalla muutat tekemisen kulttuuria ja avaat reittiä uusille, isommille ennakoivan analytiikan projekteille.

Niina Nykänen

Ambientia on Projektipäivien kumppani. Tule mukaan Projektipäiville 25.-26.10.2022 Helsingin Messukeskukseen!

Julkaistu Ambientian blogissa 29.8.2022.

Comments are Closed