Restwaarde berekenen met behulp van Tweets
De restwaarde van een leaseauto is voor leasemaatschappijen belangrijke informatie, omdat deze waarde veel zegt over de leasetarieven die de maatschappij hanteert voor haar klanten. Een nauwkeurige berekening van de restwaarde van een nieuwe auto kan de leasemaatschappij helpen bij het kiezen van een gepast leasetarief om zo de winst te maximaliseren. Er is tegenwoordig een grote hoeveelheid aan informatie op het internet te vinden. Denk aan algemene sentimenten, nieuwsartikelen of berichten op internetfora. Deze kunnen een indicatie geven over de populariteit van bepaalde auto’s of automerken. De grote hoeveelheid aan tekstdata kan worden gebruikt in combinatie met de bestaande data over auto’s die de leasemaatschappij al heeft. Denk hierbij aan het merk, de motorinhoud, het aantal deuren etc. om met behulp van machine learning modellen een zo nauwkeurig mogelijke restwaarde te voorspellen.
De data die gebruikt gaat worden dient eerst omgezet te worden naar getallen. Dit is belangrijk omdat ruwe tekst met woorden en letters niet als input voor het machine learning model gebruikt kan worden. Voor NLP-doeleinden werken word embeddings vaak goed als tekstrepresentatie. De meest bekende word embedding modellen zijn word2vec, fastText en GloVe. Voor het kiezen van het type machine learning model zijn neurale netwerken vaak een goede keuze bij NLP-vraagstukken. De Long Short-Term Memory (LSTM) is een bekende methode om te gebruiken, maar ook een Convolutional Neural Network (CNN) is een neuraal netwerk die het goed doet bij voorspellingen op tekst.
Tot slot is het kiezen van een goede tijdlijn van de tekstdata belangrijk. Voor het berekenen van de restwaarde van een auto op 1 september 2021, kunnen we alle social media, autofora, of nieuwsberichten van de afgelopen maand meenemen in ons model. Echter, weten we niet of een maand voldoende is en hebben we wellicht minimaal 2, 3 of 4 maanden nodig.
Canonicalization
Een bekend probleem binnen organisaties is dat de data niet gestandaardiseerd is. Dat houdt in dat iedere unieke waarde binnen een veld niet overal hetzelfde beschreven wordt. Wanneer er in een dataset “Mercedes-Benz C Klasse” en “Mercedes Classe C” voorkomen, dan zien we al gauw dat dit om dezelfde type auto gaat, terwijl dit in de database of door de computer doorgaans als twee verschillende voorwerpen wordt beschouwd. Voor het modelleren van de data en het creëren van inzichten zal dit dus zorgen voor wat inconsistenties. Om robuuste voorspelmodellen te maken en juiste inzichten te creëren willen we dus dat alle data eenduidig is. We willen alle “niet schone” data omzetten naar een gestandaardiseerde naam. Hiervoor moeten we eerst weten hoe we de data idealiter willen beschrijven, en dus een zogenaamde gestandaardiseerde lijst opstellen. Deze gestandaardiseerde lijst is een lijst met alle merk- en modelnamen, geschreven zoals je die idealiter zou willen hebben. Als “Mercedes-Benz C Klasse” een standaardnaam in die lijst is, dan willen we alle datapunten die bijvoorbeeld “Mercedes C-Klasse”, “Mercedes C220”, “Benz Klasse C”, “Mercedes-Benz C220d Automaat” heten omzetten naar de standaardnaam. Handmatige verbeteringen van de data willen we minimaliseren dus zoeken we naar een methode om het standaardisatieproces te automatiseren.
We zouden dit proces op meerdere manieren kunnen aanpakken. Een simpele maar effectieve mogelijke methode is om fuzzy string matching te gebruiken. Hiermee kan je de input data, in ons geval de merk- en modelnamen die je zou willen omzetten, matchen met de namen uit je gestandaardiseerde lijst. Fuzzy string matching is een methode die twee teksten die niet precies, maar ongeveer of gedeeltelijk op elkaar lijken, matcht. Een maatstaf om de gelijkenis tussen twee stukken tekst te bepalen is de Levenshtein afstand. Deze maatstaf geeft in essentie weer hoeveel tekens er aangepast moeten worden om de beide stukken tekst gelijk te maken aan elkaar.
Een voordeel van fuzzy string matching is dat het een relatief eenvoudige manier is om te implementeren. In tegenstelling tot de klassieke machine learning modellen hoef je bij fuzzy matchen de data niet te trainen. Stukken teksten kunnen direct met elkaar gematcht worden. Dit houdt ook gelijk in dat punten die weinig in de data voorkomen ook potentieel met succes gematcht kunnen worden, waar je bij machine learning modellen vaak veel data nodig hebt voordat bepaalde labels geclassificeerd kunnen worden. Een nadeel van fuzzy matching is dat teksten wel enigszins op elkaar moeten lijken voordat ze gematcht kunnen worden. Bij voorbeelden als “C-Klasse”, “C Classe” en “Klasse C” kunnen we vrij zeker zijn dat er een succesvolle match gevonden kan worden. Wanneer we echter voorbeelden als “C220” en “C-Klasse”, dan wordt het al gauw heel moeilijk om een match te vinden, terwijl het wel om dezelfde modelnaam van een automerk gaat.
Het vorige voorbeeld is zeer geschikt voor klassieke machine learning modellen. Dergelijke modellen, zoals een Random Forest, zijn vaak zeer succesvol in het vinden van verbanden die op het eerste gezicht niet zo vanzelfsprekend zijn. Met genoeg trainingsdata zou een Random Forest al snel kunnen leren dat een “C220” een “C-Klasse” is. Naast tree-based modellen zoals de Random Forest, of XGBoost, zijn neurale netwerken zoals LSTMs vaak ook succesvol bij dit soort vraagstukken. Naast het kiezen van het type voorspelmodel, moet er eerst nagedacht worden over de manier waarop we de woorden in een tekst willen representeren. Een manier om dit te doen is het gebruiken van een TF-IDF matrix. In deze matrix komt elk woord in de dataset voor, waarbij ieder woord een numeriek getal is. Dit getal is een weergave van hoe ‘belangrijk’ een woord is in een stuk tekst, in vergelijking met alle teksten in de gehele dataset.
Zoals eerder gezegd is een voordeel van dit voorspelmodel dat ze vaak zeer nauwkeurig zijn, mits er voldoende data is (en deze vereiste dan ook gelijk ook als nadeel beschouwd kan worden). Ze zijn vaak minder goed in het vinden van uitkomsten die weinig in de data voorkomen of helemaal nieuw zijn. Het periodiek her-trainen van het model is dan vaak ook noodzakelijk.
Object Detection: schade herkenning
Een ongeluk zit in een klein hoekje, dat hebben we allemaal vaak genoeg gehoord. Autorijden brengt veel risico tot ongelukken met zich mee en wanneer we kijken naar het voertuig zelf zien we hoge schadekosten. Voor leaseauto’s zit de aansprakelijkheid op schade vaak bij de leaserijder zelf. Het controleren van schade bij afloop van de leasetermijn is een proces wat vaak nog veel handmatige stappen bevat en veel potentie heeft voor automatisering.
Er kan gebruik gemaakt worden van object detection algoritmes zoals R-CNN en YOLO om met behulp van machine learning en camera’s nieuwe schade te ontdekken. Een nieuwe leaseauto kan voordat het afgeleverd wordt aan de leaserijder geïnspecteerd worden met camera’s om de nieuwstaat van de auto vast te stellen. Aan het einde van de leasetermijn kan de auto opnieuw door de camera’s geïnspecteerd worden, ditmaal om de auto te vergelijken met de nieuwstaat ervan. Hierdoor kan er snel en met zo min mogelijk handmatige handelingen ontdekt worden of een leaseauto tijdens het leasecontract schade heeft gereden. Aan de hand hiervan kan direct een indicatie gegeven worden van de potentiële reparatiekosten van de schade.
Tankpasfraude detecteren
Veel werkgevers bieden hun werknemers de mogelijkheid van een tankpas aan, waarmee zakelijke kilometers van de werknemer eenvoudig betaald kunnen worden. Hierdoor hoeft de werknemer niet steeds achteraf de zakelijk gereden kilometers bij te houden en te declareren. Helaas brengt dit wel een risico op fraude met zich mee. Een tankpas kan geskimd worden door criminelen, waardoor tegen hoge kosten van de werkgever brandstof betaald kan worden. Maar ook door de werknemers zelf kan er fraude gepleegd worden, door bijvoorbeeld de tankpas periodiek uit te lenen aan gezinsleden of vrienden die hier gebruik van kunnen maken.
Om dit type fraude tijdig op de sporen en zo hoge kosten te voorkomen, kunnen we gebruik maken van machine learning methoden die voorspellen of een bepaalde transactie een frauduleuze of een legitieme transactie is. Binnen het data science werkgebied is fraudedetectie een veel voorkomend vraagstuk. Vaak richten deze fraudedetectie oplossingen zich op creditcards, maar de onderliggende technieken kunnen natuurlijk voor iedere type transactie gebruikt worden mits er genoeg data beschikbaar is. Met behulp van algoritmes zoals de XGBoost kunnen we mogelijke fraude detecteren wanneer er genoeg gelabelde data beschikbaar is. Ook wanneer er geen labels beschikbaar zijn kunnen we unsupervised methoden gebruiken zoals de Isolation Forest en Random Cut Forest om zo afwijkingen (fraude) in de transactiedata op te sporen.
Nieuwsgierig naar de mogelijkheden?
Worden er binnen jouw organisatie veel repeterende vragen afgehandeld? Wil je aan de slag met een data science project of ben je benieuwd welke data-gedreven oplossingen voor jou geschikt zijn? Neem vrijblijvend contact op om te onderzoeken hoe wij jouw data-gedreven doelstellingen kunnen verwezenlijken. Samen creëren wij de toekomst.