
Data science in actie
Wie ben ik?
Allereerst zal ik mij even voorstellen: ik ben Kaj Ruiter en ik ben sinds september 2018 werkzaam bij Snakeware, waar ik mijn HBO-ICT studie aan het afronden ben. Het onderwerp waar ik mijn passie in heb gevonden is Artificial Intelligence en dan specifiek voor Machine Learning. Ik heb hier bepaalde ideeën over hoe dit ingericht en geoperationaliseerd zou moeten worden binnen het bedrijfsleven en wil dit graag met jullie delen. Over Artificial Intelligence en Machine learning wordt heel veel gepraat, maar ik denk dat er in de praktijk nog niet genoeg mee wordt gedaan. Dit is ook de reden van deze blogreeks, in vier delen, om iedere lezer mee te nemen in het data science proces.
Introductie Machine Learning
Machine learning is een aparte tak binnen Artificial Intelligence (AI). Mijn interesse gaat voornamelijk uit naar supervised learning, dit betekent, dat je als machine learning engineer het algoritme begeleidt in zijn/haar ontwikkeling. Je kan op deze manier het algoritme trainen om voorspellingen te kunnen doen op basis van data uit het verleden. Wat erg belangrijk is bij het toepassen van AI (lees machine learning), is dat de uitkomst van het model is te herleiden en je weet hoe dit tot stand komt. Bij deep learning is dit lastiger te traceren, vind ik. Ik heb een paar verschillende machine learning technieken onderzocht en één daarvan is Anomaly detection, juist daar is mijn oog op gevallen en daar zijn we bij Snakeware werk van aan het maken.
Anomaly detection *
Deze vorm is ontwikkeld om afwijking te signaleren in een reeks. Je zou dit kunnen zien als een data-alarm wanneer er een waarde te ver buiten de norm valt.
Nu we een globaal idee hebben van wat Anomaly detection is, moet er natuurlijk wel een business case voor zijn. Als er geen ‘uitdaging’ is, kan het ook niet worden ingezet om het zakelijk belang te steunen. Bij een zakelijk belang hoort natuurlijk een opdrachtgever.
Wie is de opdrachtgever?
Er zijn een aantal gesprekken geweest waarin ik mijn enthousiasme heb geuit over de schoonheid van machine learning. Dat het mogelijk is om met historische gegevens een algoritme te ontwikkelen dat voor jou een complex probleem op kan lossen. Dat vraagstuk is dusdanig complex dat onze hersenen er niet toe in staat zijn om het te bevatten. Zo kwam ik ook in gesprek met de CEO van Snakeware, Hans Hoomans, die graag uitdagingen aangaat en open staat voor veranderingen, mits gestaafd.
Hans Hoomans is de opdrachtgever in dit project. Hij is CEO van Snakeware. Naast zijn rol als procesinnovator is hij eindverantwoordelijk voor het financiele reilen en zeilen van de gehele organisatie met haar verschillende vestigingen en groeiend aantal medewerkers. Hans en ik delen de interesse in machine learning, zien de potentie hiervan in en we kwamen al snel tot de conclusie dat we hier verder mee wilden. We hebben een aantal sessies gedaan, om te kijken welke knelpunten er zijn die we kunnen oplossen door middel van inzetten van data en een algoritme.
Aanleiding
In de periode rondom de afsluiting van het boekjaar is er altijd wat spanning rond het zetten van de puntjes op de i ivm met het maken van de jaarcijfers. Je wilt graag dat alles correct en netjes in de boeken staat. Dat wanneer het accountantteam langskomt, je een duidelijk verhaal hebt voor hem of haar en het aantal correcties minimaal blijft. Als alle boekingen goed zijn geadministreerd, dan is er niet zoveel aan de hand. Boekhoudingen zijn nu eenmaal systemen op zich en kunnen ook uitgroeien tot “live size monsters” die moeilijk te temmen zijn.
Dat alles precies gaat zoals het hoort is utopie. Een aantal scenario’s kunnen zich voordoen. Bijvoorbeeld een boeking kan gedaan worden met net niet het juiste grootboeknummer, of de juiste periode (lees typo’s). Of zelfs dat er boekingen niet gedaan worden omdat nota’s blijven liggen. Hoe vervelend het ook is, dit moet uiteindelijk gecorrigeerd worden. Vroeger werd er een uitgekiend en heel praktisch excel-sheet bijgehouden waardoor men per dag kon bekijken hoe het bedrijf er voor stond, dit werd als zeer prettig ervaren. Hans heeft in de loop der tijd zelf een proces ontwikkeld om hiaten te kunnen ontdekken, door middel van het inladen van alle data in power BI. Zo kun je in zijn grafieken zien of er afwijkingen of te wel hiaten zijn. Dit blijft uiteraard wel arbeidsintensief en zoeken naar een speld in een hooiberg. Want dit betreft allemaal handmatig werk, waar ervaring en onderbuikgevoel een belagrijke rol spelen, echter vandaag de dag kan een computer dit op vele punten veel efficiënter doen. Hierdoor blijft tijd over voor andere belangrijke zaken of leuke dingen.
Waarom doen we dit (probleem)?
Het kost tijd en moeite om de jaarcijfers te controleren. Zaken achteraf corigeren is een moeizaam proces, kost tijd, geld en kan leiden tot calamiteiten. Er is tijd nodig om te zorgen voor de inrichting van een gezond financieel proces. Momenteel kosten boekingen die verkeerd gedaan zijn nog te veel tijd en daarmee geld. Eén opgemerkte, verkeerde, boeking kost op dit moment een kwartier aan tijd om te corrigeren. Dit is een deel van Hans en het administratieteam hun beschikbare tijd. Dan is er ook nog het deel wat nu niet wordt ontdekt, helaas niet meetbaar. Daarnaast wordt er per kwartaal een controle uitgevoerd door Hans. Echter ondanks deze effort blijkt dit niet voldoende te zijn om alles te kunnen overzien en alle hiaten er op voorhand uit te halen. Waardoor er dus extra tijd gemoeid gaat bij het rond maken van de boeken.
Daarnaast is de accountant ook langer bezig met zijn controle, tegen het uurtarief van gemiddeld ruim € 100,- per uur. De correcties die de accountant doet, zorgen ook voor tegenboekingen in de administratie, die er daardoor minder netjes uitziet.
Wat willen we bereiken (doel)?
Het doel waar we naar toe willen is dat de cijfers op maandniveau 100% in orde zijn. Er kan vervolgens één keer per maand een controle worden uitgevoerd die minder tijd vergt, accurater is en waarmee in een vroeg stadium bij gestuurd kan worden indien nodig. Deze controle zal vele malen makkelijker zijn en veel minder tijd kosten omdat alle afwijkende boekingen al bekend zijn en in de lopende maand gecorrigeerd kunnen worden.
Op welke manier gaan we ons doel bereiken (middel)?
Eerder noemde ik dat er meer tijd overblijft voor belangrijke zaken, maar zeker ook de leuke dingen. In mijn optiek is dit fantastisch. Je hebt de mogelijkheid om een probleem op te lossen met je passie met als resultaat dat je meer vrij beschikbare tijd overhoud. Die uitdaging ga ik graag aan. Daarom hebben wij dit project gestart en zal ik jullie up to date houden over de ontwikkelingen. Wil je meer weten? Hou deze pagina dan in de gaten voor de volgende update. Klein tipje van de sluier, de volgende keer zal ik ingaan op de verzameling van de dataset en de aanvoer hiervan.
To be continued........
Anomaly detection *
“Anomaly“ kan op verschillende manieren worden uitgelegd. Ik heb er 3 benoemd als richtlijn voor deze blog.
- Point anomaly: hier wordt een observatie of een record wat te ver afwijkt van de rest beschouwd als “outlier” oftewel uitschieter. Dit is 1 datapunt in de gehele dataset. De term point anomaly is daarom op zijn plaats, vind ik.
- Contextual anomaly: Dit heeft te maken met (je raadt het al) de context. Deze vorm komt voor binnen tijdsgebonden datasets. Bijvoorbeeld uitgave van € 50,- per dag aan boodschappen, gedurende vakantieperiode en daarbuiten niet. 2 verschillende periodes die niet met elkaar kunnen worden vergeleken.
- Collective anomaly: Een set aan observaties of records in een dataset vormen hier samen het collectief en leggen de afwijking daardoor bloot. Voorbeeld is dat er data wordt gekopieerd van een extern apparaat naar een lokaal apparaat. Vervolgens kan dit als een potentiele cyber aanval gemarkeerd worden en kan er een actie aan gekoppeld worden.
“Detection” Engels woord voor opsporing, vinden van of detectie.