Artikel
Geschreven door Martijn Roos
Posted on 14-05-2019

Hoe ontwikkelt u zelf een machine learning-algoritme? Dit zijn de 5 stappen

71 keer gelezen

Dit blog verscheen onlangs op de website van Werf&, dé vaksite over arbeidsmarktcommunicatie en recruitment.

Voorspellende waarde wordt steeds belangrijker in recruitment. Maar hoe maakt u daar een algoritme voor? In het vorige deel werd beschreven hoe data-analyse en kunstmatige intelligentie de rol van arbeidsbemiddelaars de komende jaren gaat veranderen. In dit blog 5 stappen hoe u zelf zo een effectief machine learning-algoritme kunt (laten) ontwikkelen. Mits u in elk geval over goede data beschikt.

Stap 1: Bepaal en controleer wat u wilt voorspellen

Voor de ontwikkeling van een algoritme voor kunstmatige intelligentie onderscheiden we onafhankelijke en afhankelijke variabelen. De afhankelijke variabele is datgene wat u wilt voorspellen. De onafhankelijke variabele is de input die u een model geeft om die voorspelling mogelijk te maken.

'Als u heeft bepaald wat u wilt voorspellen, is het belangrijk de waarde hiervan te controleren.'

Als u bepaald heeft wát u 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 u controleren of er daadwerkelijk sprake geweest is van een plaatsing en niet van een afwijzing. En stel: u wilt voorspellen of een kandidaat een goede match is met een specifieke opdrachtgever. Dan moet u 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 u 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, kunt u kijken naar door eerdere kandidaten gemaakte assessments. Maar als u 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 kunt u betrouwbare voorspellingen doen.

Stap 3: Voorkom schijnverbanden

Als uw 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.

'Ook bij algoritmes komt nog ouderwets menselijk denkwerkt kijken!'

Een bekend voorbeeld in HR-studies is de relatie tussen de medewerkertevredenheid en financiële prestaties van bedrijven. U 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 u dat 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.

Onderdeel 1: Het trainen van het model
Om het model te trainen kunt u 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 u een willekeurig deel van uw bestand apart houdt, zodat deze gegevens nog niet gebruikt worden om het model te trainen.

Onderdeel 2: Het testen van het model
Nadat u uw model hebt getraind kunt u het toepassen op het deel van het bestand dat u eerder apart hebt gehouden. Door de voorspelling van het getrainde model te vergelijken met het werkelijke plaatsingsresultaat kunt u testen hoe goed uw model presteert.

'Als u een model niet generaliseren kunt naar een volgend bestand, wordt het nagenoeg onbruikbaar.'

Waarom dan een apart training- en testbestand? Kunt u 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 kunt u 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 u het model kunt 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 u een eerlijk algoritme wilt ontwikkelen.