Inleiding
Dit rapport gaat over Anomaly detection, een systeem dat gebouwd wordt in opdracht van Qooqie om problemen van klanten sneller te detecteren. Dit systeem wordt gemaakt door middel van machine learning en statistics, en in dit rapport wordt gekeken naar de beste manieren om dit probleem op te lossen. Uit onderzoek X heeft gebleken dat een statischetische methode het beste gaat weken om anomalies te detecteren. Dit komt omdat de data van Qooqie een bepaald patroon volgt, en hierop kan gekeken worden of de huidige data dit patroon ook volgt, hoeveel het afwijkt en waarom eventueel, door te kijken naar feestdagen.
In dit rapport wordt er gekeken naar de geprobeerde prototypes, gekeken hoe goed ze werken en wat uiteindelijk de beste oplossing was. Hieruit volgt code die een basis geeft van het systeem. Dit moet vervolgens uitgebreid worden tot een volledig probduct, met feestdagen, seizoenen en ect erin. Dit zal ook besproken worden. Uiteindelijk zal er een conclusie volgen met welke punten allemaal in het eind product zullen zitten, waarom hiervoor gekozen is en hoe er nu verde gewerkt moet worden.
NN / Statistic
Uit onderzoek X is gebleken dat de volgende 2 methoden het beste werken als het gaat om anomalie detectie, Neural Networks en een Statistical aanpak. Het was dus. Nodig om verschillende prototypen te maken voor beide methoden om te kijken welke het beste werkte in de situatie waarin Qooqie zit bevind.
Door dit te doen kan er gekeken worden naar hoe goed bepaalde modellen werken, of ze snel genoeg zijn en schaalbaar voor de hoeveelheid klanten, en of het makkelijk te implementeren en aanpassen is per klant.
2. Data ophalen
2.1. Algemeen data ophalen
Het ophalen van de data bgebeurt via elsstic search. Hiernaar worden bepaalde query gestuurd om ervoor te zorgen dat de juiste data wordt opgehaald. Het gaat hierbij om Leads, Sessies en errors. Sessies en leads worden in eerste instantie opgehaald voor heel Qooqie, van het afgelopen jaar in intervallen van 5 minuten. Hier is voor gekozen door goed naar de data te kijken, en er is gebleken dat dit de meest accurate informatie laat zien in de diagrammen. Een kortere interval zorgt voor onregelmatige data, aangezien het dan snel kan verschillen. Langer dan een half jaar terug kijken zorgt ervoor dat het aantal klanten erg verschilt met nu, waardoor de data niet helemaal meer klopt.
2.2. Soorten errors
Als het gaat om errors zijn er 2 verschillende types errors, errors die niet ernstig zijn en welke wel ernstig zijn. Dit kan gaan om google adds meldingen, of meldingen dat het aantal nummers van een klant op is. Dit wordt niet als ernstig gezien. Errors die hierbuiten vallen worden wel mee genomen in het systeem, en worden er dus niet uit gefilterd. Normaal gezien zijn er per dag bijna geen errors, dus als er een error gevonden wordt is dit bijna altijd gelijk een anomalie.
2.3. Per klant
Ook komt er een zoek mechanisme gebaseerd per klant. Hier moet meer logica bij komen kijken, namelijk of er een actief abonnement gevonden is, of als er geen sessie stopper aan staat. Een sessie stopper zorgt ervoor dat een klant niet over x aantal sessies kan gaan, en deze wordt aan gezet als de klant dit bereikt heeft. Dit heeft invloed op de gemiddelde data en de huidige data, dus op momenten dat dit ingeschakeld is, moet het niet als anomalie tellen.