Machine learning binnen Vitens

SparklyR training MapR
Data science wordt vaak geassocieerd met hippe termen zoals “Machine Learning” en “Artificial Intelligence”, maar wat betekent dit en passen wij dit ook toe binnen Vitens? Om te beginnen is er in 2017 een platform geplaatst waardoor het voor Vitens mogelijk is om geavanceerde algoritmen en berekeningen uit te voeren op grote hoeveelheden, (on-) gestructureerde data. Denk hierbij aan bijvoorbeeld het voorspellen van het waterverbruik op basis van een uitgebreid klantprofiel of het voorspellen van graafschades.

Om optimaal gebruik te maken van het platform, genaamd mapR, moet je iets anders programmeren dan wanneer je code schrijft op je eigen laptop. Hiervoor is kennis nodig van technieken die specifiek gemaakt zijn voor componenten binnen het MapR platform. Om deze technieken hands-on te gebruiken, heeft Anchormen een tweedaagse training voorbereid voor de programmeertaal R.

Tijdens deze training werd er uitgelegd hoe data kan worden geladen en hoe bijvoorbeeld een Machine Learning algoritme efficiënt op het MapR platform kan worden ingezet. Hierdoor is nu de kennis aanwezig om dergelijke use cases op het platform in te zetten.

Het voorspellen van graafschade

Wat is graafschade?
Graafschade ontstaat wanneer er werkzaamheden worden gedaan rondom waterleidingen. Deze werkzaamheden worden gedaan door aannemers. De aannemers stellen voor elke opdracht een document op waarin hun naam, bedrijfsnaam en omschrijving van de opdracht in staat.

De Business en Data Science
De Business heeft het Data Science team gevraagd of wij iets kunnen doen met de graafschade data. Martine Wester, Data Scientist heeft de data bekeken en kwam tot de conclusie dat we mogelijk vooraf kunnen voorspellen of er graafschade gaat optreden. Om haar hypothese te testen heeft ze data gebruikt dat bestond uit tekst. De tekst heeft ze omgezet naar data die een computer kan begrijpen. De nieuwe data heeft ze gebruikt met Machine Learning algoritmen zoals Kmeans en Random Forest[1].

Haar hypothese bleek te kloppen: met enige zekerheid kan vooraf worden voorspeld of graafschade gaat optreden. Een neveneffect is dat de data nu ook inzicht geeft in hoe vaak een aannemer graafschade veroorzaakt, hetgeen voorheen nog niet bekend was.

Het resultaat
De Business kan nu vooraf, met enige zekerheid, inzicht verkrijgen of een opdracht van een aannemer graafschade gaat veroorzaken. De Business kan dit doen via het Vitens Data Science Dashboard zoals hieronder te zien is in figuur 1.

[1] Een Random Forest kan gebruikt worden voor classificatie. Het bestaat uit een aantal Decision Trees. Een Decision Tree kan bij elk stuk data een beslissing maken die uiteindelijk leidt tot de juist classificatie. Een ensemble van decision trees heet een Random Forest.

Een enkele opdracht of een bestand met meerdere opdrachten kan ingezonden worden. Het resultaat voor een enkele opdracht is te zien in figuur 2.

Figuur 1: Het Vitens Data Science Dashboard waar het graafschade project in te vinden is. Het Dashboard bevindt zich nog in de ontwikkelingsfase.

Figuur 2: Het resultaat voor een medewerker van een aannemers bedrijf voor een specifieke bestaande opdracht.
De naam van het persoon en bedrijf zijn verwijderd vanwege privacy.

Contact opnemen?

Thema-ambassadeur Eelco Trietsch is bereikbaar via Eelco.Trietsch@vitens.nl

Kagglethon

De Datascientists van Vitens en die van andere drinkwaterbedrijven spreken zo nu en dan af om van elkaar te leren en elkaar te inspireren. Een nieuw hoogtepunt hierin is dat ze bij elkaar zijn gekomen voor een Hackathon getiteld Kagglethon, waarbij de naam is geïnspireerd door de Machine Learning-competitiewebsite https://www.kaggle.com. Hierbij was het de opdracht om het watergebruik per vijf minuten zo goed mogelijk te voorspellen.

Wat maakt deze activiteit zo interessant en innovatief?
Het onderwerp van de Hackathon was niet het belangrijkste, de techniek wel. Voorspellen zelf is leuk, maar een rechte lijn door gegeven datapunten trekken kan bijna iedereen: het wordt pas interessant als we op een gestructureerde manier testen en controleren hoe goed onze voorspellingen zijn, op een testset die we niet hebben gebruikt bij het trainen van het model. Zo kunnen we niet alleen vaststellen of ons algoritme goed is, maar ook algoritmes met elkaar vergelijken. Of zelfs automatisch honderden net verschillende algoritmes maken en op basis van de testscores de beste uitkiezen. Dat is ook de kant die we opgaan. Als we Vitens (meer) data-gestuurd willen maken, moeten we zorgen dat algoritmes betrouwbaar en bewezen zijn en bij voorkeur ook een waarde hebben die het betrouwbaarheidsinterval aangeeft. Zo raken we samen in de stroomversnelling.
Meer weten? Stuur gerust een email naar Sjoerd Boersma (Sjoerd.Boersma@vitens.nl)

Update Datascience Vitens juli 2019

Op 27 juni heeft de datascience groep weer een presentatie gegeven van de resultaten van het afgelopen kwartaal. Als eerste presenteerde Martine Wester de resultaten van het Graafschade project. Dit onderzoek is relevant omdat in ongeveer 2,5% van alle gemelde graafactiviteiten door derden schade wordt veroorzaakt aan ons leidingnet. De grootte van de financiële schade groeit jaarlijks en bedroeg vorig jaar meer dan € 800.000. Bij dit onderzoek wordt nagegaan of het mogelijk is te voorspellen hoe groot de grote kans is dat er bij een bepaalde aannemer/activiteiten combinatie er graafschade zal optreden. Met behulp van deze kennis is het dan mogelijk om preventief acties te ondernemen om de kans op graafschades te verkleinen. De basis van dit onderzoek zijn de (verplichte) klickmeldingen die iedereen moet doen als hij/zij gaat graven in de ondergrond. Bij deze registratie is het verplicht om de locatie, de gegevens van de aannemer en de aard van de uit te voeren werkzaamheden te registreren.

Op basis van deze gegevens is een model getraind. Dit model bleek uiteindelijk twee-derde van de opgetreden graafschades correct te voorspellen.  Dit lijkt niet zoveel, maar aantal graafschades ten opzichte van de totale klickmeldingen is relatief laag. Vergelijk is dus met het zoeken van een naald in een hooiberg waarbij twee-derde van de naalden worden teruggevonden. Een aantal graafschades zullen nooit te voorspellen zijn, want ongelukjes kunnen altijd plaatsvinden, hoe goed de aannemer ook is. We hebben dus nu een getraind model en kunnen daarmee de kans op graafschade per combinatie aannemer/graafactiviteit in een groot aantal gevallen voorspellen. Tijdens de inhoudelijk discussie na de presentatie is geopperd om meerdere variabelen zoals grondslag en andere omgevingsvariabelen mee te nemen. Indien deze gegevens beschikbaar zijn, zullen deze in een tweede versie worden meegenomen.

MapR Cluster
Als tweede presentatie heeft Jordy Nieland een update gegeven van de ingebruikname van het MapR cluster. Het MapR cluster is een cluster van servers waar onder Spark het mogelijk wordt om een veel snellere rekentechniek toe te passen. Het is mogelijk om hier grote databases afkomstig uit verschillende hoeken van Vitens met elkaar te combineren. Rekenkracht en data worden hier gecombineerd. In deze Sparkomgeving zijn verschillende data exploratie tools aanwezig zoals PowerBI, Tableau, Zeppelin, SQL of programmeertalen zoals R of Python. Als voorbeeld laat Jordy de verwerking van een database zien waarin alle meterstanden staan die bij Vitens gearchiveerd zijn. Het betreft een databestand met 78 miljoen regels ter grootte van meer dan 10 GB. Alleen al het extraheren van deze dataset vanuit SAP heeft meer dan 24 uur in beslag genomen! Eenmaal in onze MapR omgeving kan met behulp van Spark deze dataset in enkele tientallen seconden worden verwerkt. Zo is het nu mogelijk om een plaatje te maken waarin we zien op welke wijze de meterstanden van onze klanten binnenkomen. Zo is duidelijk te zien dat er een mooie verschuiving plaatsvindt van meterkaarten die via de post worden verstuurd naar meterstanden die via internet binnenkomen.

Als laatste geeft Sjoerd Boersma de resultaten van een analyse van de vraag hoe groot een balansgebied nu moet zijn om lekken te detecteren. Vitens is bezig de grootte van de (deel)balansgebieden te optimaliseren. Als we allemaal hele kleine balansgebieden creëren kunnen we kleine lekken goed detecteren, maar zijn de kosten torenhoog. Laten we de balansgebieden heel groot is dat wel goedkoop, maak kunnen we bijna geen lekken meer detecteren.

Om niet vast te lopen in eindeloze theoretische exercities heeft Sjoerd gekozen voor een hele praktische aanpak. Vitens heeft per slot een goede tool om lekken in de bestaande (deel)balansgebieden op te sporen, namelijk de DBM. Door in de gemeten data kunstmatig heel veel lekken te introduceren van verschillende grootte en verschillende tijdstippen en die te laten detecteren met de DBM kon worden nagegaan hoe snel welke percentage van de lekken kon werden teruggevonden. Dit werd uitgevoerd op balansgebieden van verschillende grootte en met verschillende lekgrootte. Door de DBM te gebruiken als analysetool wordt ook een realistische weergave verkregen van de lekken die we in de praktijk ook kunnen opsporen.

Als eerste resultaat kan ruwweg worden gezegd dat een lek ter grootte van de helft van het gemiddelde verbruik van dat balansgebied bijna altijd (93% van de gevallen) binnen een half uur kan worden gedetecteerd. Tijdens de discussie wordt aangegeven dat dit een eerste poging betreft om een grootte van een balansgebied te bepalen. Deze methode is bijvoorbeeld gevoelig voor grootverbruikers die erg onregelmatig veel water innemen. Bij een vervolganalyse zou hiervoor en voor andere verstorende factoren gecorrigeerd moeten worden.

Ontwikkeling verdeling opnamesoorten van meterstanden vanaf 2000

Evolutionaire veranderingen in gedistribueerde analyses

Datascience biedt Vitens vernieuwende inzichten door grote, complexe analyses. Hierdoor kan Vitens zich verbeteren. Eén stap verder is continue verbetering. Vitens voert dan verworven inzichten Agile door, waarbij de kwaliteit van de wijzigingen is geborgd. Dit komt direct ten goede aan zowel het datascience- als het operationele proces. Business Development en ICT doen samen met externe partners onderzoek naar deze evolutionaire verandering.

Gedistribueerde analyse
Datascientisten maken al gebruik van gedistribueerde analyse. Hierbij rekenen meerdere processoren tegelijk aan verschillende rekenstapjes van de totale analyse. Dit is hard nodig. De hoeveelheid data die Vitens via sensoren en andere databronnen verzamelt, neemt sterk toe. De analyse is per databron erg complex. Datascience combineert deze databronnen ook nog eens. Een conventionele methode is dan door de lange rekenduur onbruikbaar. De scientisten gebruiken voor gedistribueerde analyse het MapR-cluster. Deze maakt grote en complexe analyses binnen enkele minuten mogelijk.

Het ECiDA project
Vitens voert met de Universiteit van Groningen, het Centrum voor Wiskunde & Informatica (CWI), TNO-Delft en Anchormen het project “Evolutionairy Changes in Distributed Analysis (ECiDA)” uit. Doel van het project is het vinden van een doeltreffende manier om bij gedistribueerde analyses wijzigingen aan te kunnen brengen in de databron of het rekenhart terwijl alle applicaties en analyses ongestoord doorwerken. De rol van Vitens is het leveren van datasets en ervaring in de praktijk van zowel datascience, data-engineering als enterprise architectuur. Het onderzoek is gericht op een grootschalige, betere analyse van de onze data. Dit gebeurt zowel met historische als realtime data uit sensoren. Dit project is relevant omdat het gebruik van continue IoT-sensordata van de waterleidingen een groot potentieel biedt voor verbetering van de waterkwaliteit. Het biedt ook veelbelovende kansen voor data-gedreven analyseoplossingen die zich kunnen aanpassen aan de externe veranderingen, zoals wensen vanuit de organisatie, veranderingen in de PA en/ of aan de slimme meters.

Architectuur en oplossing
Vitens houdt met haar doelarchitectuur al rekening met deze toekomstige Agile benadering. In haar toekomstige architectuur brengt zij data virtueel samen en integreert deze met business rules, algoritmen en data-opwerking. Deze zijn gecentraliseerd en beheerd en zijn Agile aan te passen. Zo kan in de toekomst heel Vitens baat hebben bij deze evolutionaire benadering van (gedistribueerde) analyses.

Dit past bij de oplossing van ECiDA. Centraal staat het opdelen van algoritmen in zo klein mogelijke eenheden. Terwijl een eenheid van een oude algoritme nog actief is in bijvoorbeeld het operationele proces, werken datascientisten op de achtergrond aan vernieuwing van deze eenheid. De proceseigenaar vergelijkt achter de schermen resultaten van de oude en de nieuwe eenheid. Met één druk op de knop vervangt de proceseigenaar het oude onderdeel voor het nieuwe. Deze oplossing is nog nergens vertoond. Als dit evolutionair onderzoek slaagt, dan kunnen datascientisten in de toekomst flexibeler werken en kennis snel en eenvoudig voor Vitens beschikbaar maken.

Door: Mario Maessen & Hester van het Loo