Outlierdetectie in sensordata

Het verkrijgen van grote hoeveelheden sensordata is tegenwoordig niet meer weg te denken. Denk hierbij aan fabrieksprocessen, maar ook aan bijvoorbeeld waterdata van waterschappen. Helaas is deze data niet altijd foutvrij. Als we specifiek naar waterdata kijken, kan er van alles gebeuren waardoor metingen niet aangeven wat verwacht wordt: bladeren, takken en slib kunnen aanwezig zijn waardoor een stuw niet meer goed werkt, de aanwezigheid van beverdammen kan een watergang blokkeren, etc. etc. Daarnaast kunnen technische mankementen aan deze onjuiste metingen ten grondslag liggen. In een MSc-thesis project bij Waterschap Aa en Maas hebben we gewerkt aan een data science oplossing waardoor allerlei fouten automatisch ontdekt kunnen worden. Dit kan een hoop handmatig valideerwerk met bijbehorende kosten besparen.

Multivariate tijdreeksen van sensordata 

In dit project voor Aa en Maas hebben we gekeken naar de sensordata van stuwen. Hiervan keken we naar tijdreeksen van waterhoogtes. In deze tijdreeksen kunnen verschillende problemen zichtbaar worden. Deze problemen worden outliers genoemd, aangezien ze niet met het verwachte gedrag van de sensoren corresponderen. De data bevat geen labels die aanduiden of ergens een outlier heeft opgetreden. Onze modellen kunnen dus ook niet op basis van labels leren. Hierdoor maken we gebruik van unsupervised learning waarbij labels niet nodig zijn om de patronen in de data te herkennen.

In ons onderzoek hebben we voornamelijk gekeken naar multivariate data. Dit betekent dat er naar meerdere variabelen gekeken wordt om een voorspelling te maken. Wij hebben sensordata van gecorreleerde (dichtbijgelegen) sensoren gebruikt om zo goed mogelijk te kunnen voorspellen wat een sensor voor gedrag vertoont. Deze voorspelling kan vergeleken worden met de daadwerkelijk geobserveerde waarde zodat bij een groot verschil outliers aangekaart kan worden.

Verzameling gecorreleerde tijdreeksen. Duidelijke outlier (aanwezig in originele data) te zien bij de pijl.

Vergelijking van modellen d.m.v. gesimuleerde outliers

We hebben meerdere machine learning modellen met elkaar vergeleken om te kijken welke het beste werkten bij deze data. Om deze vergelijking te doen, hebben we zelf outliers toegevoegd aan de data. Met behulp van deze gesimuleerde outliers konden we goed zien hoe goed de verschillende modellen werken. We hebben drie soorten outliers gesimuleerd: extreme waarden (één losse meting verhoogd/verlaagd met een vaste waarde), jumps (een lange reeks metingen verhoogd/verlaagd met een vaste waarde) en lineaire drift (een steeds hogere/lagere waarde die wordt toegevoegd aan de bestaande reeks). We hebben gekeken hoe goed de outlierdetectie op al deze verschillende categorieën werkte, en dat weer in 4 verschillende sensoren.

Tijdreeks van een specifieke sensor zonder outlier.
Tijdreeks van een specifieke sensor met een jump erin, aangegeven met blauwe rechthoek.

Schematische weergave outlierdetectie

De eerdergenoemde elementen van ons onderzoek kunnen schematisch worden weergegeven op de volgende manier:

Ons onderzoek in een notendop. Het doel was om algoritmes voor deze vorm van outlierdetectie te vergelijken en een praktische oplossing te vinden voor dit probleem.

Quantile regression

Om het verwachte gedrag van een sensor te modelleren hebben we gebruik gemaakt van quantile regression door middel van neurale netwerken. Bij regressie wordt een model gebruikt om een waarde te voorspellen. Bij quantile regression worden er naast deze waarde ook onzekerheidsgrenzen voorspeld. Dit is in allerlei situaties erg nuttig, waaronder in outlierdetectie. Als een geobserveerde waarde namelijk als erg onwaarschijnlijk wordt geacht, zou het wel eens een outlier kunnen zijn. We hebben meerdere modellen om dit te doen met elkaar vergeleken. Typische voorbeelden hiervan zijn hieronder te zien:

Synthetische jump toegevoegd aan een tijdreeks. Wordt goed herkend.
Synthetische drift toegevoegd. Wordt (grotendeels) goed herkend.
De al aanwezige outlier die eerder getoond werd, wordt goed gedetecteerd.

Conclusie

Onze multivariate unsupervised aanpak kan van grote waarde zijn in datavalidatie. Onze simulaties kunnen aantonen hoe groot outliers moeten zijn voordat ze gedetecteerd kunnen worden. Verder is onze oplossing schaalbaar: het is eenvoudig om dit toe te passen op een breed scala aan sensoren. Mede daarom denken wij dat dit een goede oplossing kan zijn voor Aa en Maas en andere waterschappen. Daarnaast kan deze aanpak uitbreidbaar zijn naar andere domeinen: denk bijvoorbeeld aan fabrieken met veel (gecorreleerde) sensoren.

Meer weten over de toegepaste techniek of heb je een vraag of deze techniek jouw probleem kan verhelpen? Neem contact met ons op!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *