![Hoe ontwikkel je zelf een machine learning-algoritme? Dit zijn de 5 stappen](https://www.werf-en.nl/wp-content/images/2019/06/algorithm-3859537_1280-1024x682.jpg)
Voorspellende waarde wordt steeds belangrijker in recruitment. Maar hoe maak je daar een algoritme voor? Martijn Roos schetst het proces in 5 stappen. ‘Jawel, ook bij algoritmes komt nog ouderwets menselijk denkwerk kijken!’
Afgelopen week schreef ik hoe data-analyse en kunstmatige intelligentie de rol van arbeidsbemiddelaars de komende jaren veranderen. In dit artikel vertel ik in 5 stappen hoe je zelf zo’n effectief machine learning-algoritme kunt (laten) ontwikkelen. Mits je in elk geval over goede data beschikt.
Stap 1: Bepaal en controleer wat je wil voorspellen
Voor de ontwikkeling van een algoritme voor kunstmatige intelligentie onderscheiden we onafhankelijke en afhankelijke variabelen. De afhankelijke variabele is datgene wat je wilt voorspellen. De onafhankelijke variabele is de input die je een model geeft om die voorspelling mogelijk te maken.
Als je hebt bepaald wát je wilt voorspellen, is het belangrijk de waarde hiervan te controleren
Als je hebt bepaald wát je wilt voorspellen, dan is het belangrijk de voorspellende waarde te controleren. Om bijvoorbeeld te kunnen voorspellen of een kandidaat geplaatst wordt bij een specifieke opdrachtgever, moet je controleren of er daadwerkelijk sprake geweest is van een plaatsing en niet van een afwijzing. En stel: je wilt voorspellen of een kandidaat een goede match is met een specifieke opdrachtgever. Dan moet je controleren in hoeverre beide partijen na verloop van tijd tevreden zijn over de plaatsing.
Stap 2: Gebruik alleen historische data als input
Een fout die je in de praktijk vaak ziet is dat een variabele wordt gekozen als input, terwijl de data ervan nog helemaal niet beschikbaar zijn. Om bijvoorbeeld een plaatsing te voorspellen, kun je kijken naar door eerdere kandidaten gemaakte assessments. Maar als je deze variabele (de uitkomst van de assessment) vervolgens toepast op nieuwe kandidaten, werkt het model niet meer. De uitslagen zijn immers nog niet bekend, of de assessments zijn zelfs nog niet gemaakt. Gebruik dus altijd historische data als inputvariabele. Alleen dan kun je betrouwbare voorspellingen doen.
Stap 3: Voorkom schijnverbanden
Als je model een verband legt tussen twee variabelen, ga dan na of er inderdaad sprake is van een directe oorzaak-gevolgrelatie. Het kan namelijk ook zo zijn dat er toeval in het spel is, of mogelijk een derde variabele, of dat de relatie de andere kant op gaat.
‘Jawel, ook bij algoritmes komt nog ouderwets menselijk denkwerk kijken!’
Een bekend voorbeeld in HR-studies is de relatie tussen de medewerkertevredenheid en financiële prestaties van bedrijven. Je kunt concluderen dat tevreden medewerkers beter presteren en daardoor de bedrijfsresultaten positief zijn. Maar het kan ook andersom werken, als een bedrijf met betere resultaten zich meer kan veroorloven om medewerkers tevreden te stellen. Dus zorg dat je inzichtelijk heeft of B een gevolg is van A, andersom of dat het juist C is die de relatie bepaalt. Jawel, ook bij algoritmes komt nog ouderwets menselijk denkwerk kijken!
Stap 4: Train en test het algoritme
Deze vierde stap bestaat uit twee onderdelen: het trainen en het testen van het model.
ad 1: Het trainen van het model
Om het model te trainen kun je een bestand gebruiken met historische gegevens van kandidaten, hun kenmerken en de resultaten (dus of ze uiteindelijk geplaatst of afgewezen zijn). Aan de hand van dit bestand kan het model zichzelf trainen om de juiste verbanden te vinden tussen de kenmerken (de variabelen) en de uitkomsten (afwijzing of plaatsing). Het machine learning-algoritme zoekt dus welke verbanden relevant zijn voor het succes van de plaatsing van de kandidaat. Zorg ervoor dat je een willekeurig deel van je bestand apart houdt, zodat deze gegevens nog niet gebruikt worden om het model te trainen.
ad 2: Het testen van het model
Nadat je je model hebt getraind kun je het toepassen op het deel van het bestand dat je eerder apart hebt gehouden. Door de voorspelling van het getrainde model te vergelijken met het werkelijke plaatsingsresultaat kun je testen hoe goed je model presteert.
‘Als je een model niet generaliseren kunt naar een volgend bestand, wordt het nagenoeg onbruikbaar’
Waarom dan een apart training- en testbestand? Kun je niet gewoon trainen en testen op álle data, zodat het model al die data heeft gezien en daarmee het best getraind is? Nou, het gevaar hiervan is dat het model te specifiek wordt en daarmee een one-trick-pony: het model heeft een trucje voor deze dataset geleerd, maar kan dit niet generaliseren naar een volgend bestand. Daarmee wordt het nagenoeg onbruikbaar. Pas als de uitkomsten van het model vergelijkbaar zijn met de gegevens in de testbestanden kun je er vanuit gaan dat een model iets heeft geleerd wat breder toepasbaar is.
Stap 5: Houd rekening met de context van de trainingsdata
De onafhankelijke inputvariabele die je een model geeft, kan cultuur- en marktafhankelijk zijn. Denk aan een arbeidsbemiddelaar die het selectieproces van kandidaten automatiseert. Als de informatie in het trainingsbestand is gebaseerd op historische menselijke besluitvorming waarin mannen de voorkeur kregen boven vrouwen, neemt het model deze context mee in de bepaling van de doelvariabele (de meest succesvolle kandidaat). Dat betekent dat vrouwen minder snel geselecteerd worden dan mannen. Houd dus rekening met de context en mogelijke vertekening in de trainingsdata, als je een eerlijk algoritme wilt ontwikkelen.
Over de auteur
Martijn Roos is Industry Expert bij Graydon, verantwoordelijk voor het hogere segment binnen de Zakelijke Dienstverlening.