Artificial intelligenceToren van pisa als voorbeeld van scheve datasets

Scheve datasets: what to do?

Welkom! Wat leuk dat je er weer bent om deze nieuwe blog te lezen. Waarschijnlijk weet je inmiddels wat kunstmatige intelligentie inhoudt. In deze blogs geven we onder meer voorbeelden van zaken die fout kunnen gaan bij het toepassen van machine Learning. Eerder zagen we al dat het belangrijk is om de trainset en testset goed gescheiden te houden, maar om deze wel uit dezelfde wereld te laten komen. Wil je hier een voorbeeld van zien, bekijk dan eens de volgende blog die daarover gaat. In deze blog gaan we praten over datasets die ‘scheef’ zijn en hoe het resultaat van machine learning algoritmes kan beïnvloeden.

Scheef als de toren van Pisa?

Stel, je hebt een dataset vol met plaatjes van fietsen en auto’s en de taak is om deze goed te onderscheiden van elkaar. Een scheve dataset ontstaat als van de ene categorie veel minder datapunten aanwezig zijn in de trainset dan van de andere categorie. Met andere woorden: als er veel meer plaatjes van fietsen dan van auto’s zijn. Het resultaat daarvan is dat het algoritme veel meer ervaring op kan doen over de fietsen dan over de auto’s. En we wisten al dat hoe meer voorbeelden in de trainset, hoe beter de resultaten op de testset. In dit geval zal het algoritme waarschijnlijk betere resultaten behalen op de fietsenplaatjes dan op de autoplaatjes uit de testset. En dat is natuurlijk zonde.

Oversampling

De simpelste oplossing is om op zoek te gaan naar meer data van de auto’s. Misschien is er ergens een externe databron die je er bij kunt betrekken. Natuurlijk levert dit ook uitdagingen op, maar daarover volgt later meer in een aparte blog. Maar stel nu eens voor dat je helaas niet in staat bent om een externe databron erbij te halen en je toch de prestatie van het algoritme wilt verbeteren. Dan kun je ervoor kiezen om ‘oversampling’ toe te passen. Dit houdt in dat je bepaalde schaarse datapunten vaker terug laat komen in je dataset om zo het algoritme meer ervaring te geven. Je kunt dit vergelijken met hoe mensen leren. Als je de eerdergenoemde taak aan een kind wilt leren en je het kind inderdaad minder plaatjes geeft van auto’s dan van fietsen, kun je ook oversamplen. Dan laat je het kind de foto’s van de auto’s gewoon iets vaker zien. Ook al is dat dan een foto die hij al gezien heeft, dan nog zal dit waarschijnlijk bijdragen aan een betere prestatie op de testset. Immers: herhaling werkt bij het leerproces.

Undersampling

Wat data scientists vaak ook proberen, is om de grootste categorie bloot te stellen aan ‘undersampling’, wat het tegenovergestelde inhoudt van oversampling. Je neemt dan bewust niet alle datapunten mee van een bepaalde categorie in de trainset. Het resultaat is dat de prestatie op beide categorieën waarschijnlijk dichterbij elkaar ligt. Maar door minder ervaring mee te geven aan de grote categorie, zal deze waarschijnlijk minder goed presteren dan wanneer alle datapunten zijn meegegeven. Afhankelijk van de gekozen prestatiemetriek is deze techniek een goede oplossing.

Praktijk: jonge mensen zijn niet oud

In de praktijk hadden wij ooit een klant die een dataset had met gegevens van heel veel mensen erin. Als taak probeerde deze klant een bedrag te voorspellen voor elk van deze mensen. Bij de analyse bleek dat niet alle datapunten in de testset even goede resultaten behaalden. Sterker nog: er was een groot verschil tussen jonge mensen en oude mensen. Het algoritme bleek niet goed te presteren op de jonge mensen en het bedrag niet goed te kunnen voorspellen voor deze groep mensen. Toen hebben we gekeken naar de oorzaak hiervoor en wat bleek? De groep jonge mensen was veel kleiner in de trainset dan de groep oude mensen en dus had het algoritme veel minder ervaring kunnen opdoen voor deze groep. Het bleek ook dat in de testset juist een grote groep jonge mensen zat, waardoor dit nog meer opviel. Onze oplossing was in dit geval om een externe dataset erbij te halen met veel jonge mensen erin en om de testset te veranderen in een eerlijkere verhouding tussen jonge en oude mensen.

Misschien heb jij ook wel te maken met een scheve dataset en kun je daar wel wat hulp bij gebruiken. Neem dan contact met ons op. Wij denken graag mee hoe we ook jou optimaal kunnen laten profiteren van machine learning.

Man die nadenkt over visie op data gedreven werken
Button data gedreven werken voorbeeld in praktijk