Methodologie

Wat hebben we precies gedaan?

Hier beschrijven we welke stappen we hebben genomen om de MotieMachine te ontwikkelen. Dat kan soms technisch zijn. Geen zorgen hoor: als je vragen hebt, kan je altijd contact met ons opnemen.

Algemene opzet

Voor het ontwikkelen van dit voorspellend model maken we gebruik van open data verkregen uit de Tweede Kamer Open Data API (Balkenende IV t/m Rutte III). We verzamelen een dataset met gegevens over moties die in het verleden zijn ingediend, zoals de persoon die de motie heeft ingediend, het aantal mede-indieners, de tekst van de motie en een aantal gegevens over de politicus die de motie indient zoals het aantal dagen dat deze persoon al in de Kamer actief is.

Deze dataset gebruiken we om een voorspellend model te trainen. Bij ons is de onafhankelijke variabele de stemmingsuitkomst. We bouwen dit model door verbanden te vinden tussen de gegevens over de motie en de uitkomst van de motie. We zoeken bijvoorbeeld naar de relatie tussen het aantal dagen ervaring in de Kamer en het succes van de moties die dit Kamerlid in heeft gediend. Daarnaast kijken we naar de frequentie van bepaalde woorden, bijvoorbeeld naar woorden die gerelateerd zijn aan thema’s. Voor deze thema's zoeken we naar verbanden met aangenomen of verworpen moties.

De grote schoonmaak 🛀

Data is vaak vies als je die verzameld. Je moet die schoonmaken - preprocessing - om ermee aan de slag te gaan. Zo hebben we moties die geen stemmingsuitslag hebben, of moties die niet tot een Kamerlid behoren (de Tweede Kamer API bevat ook fouten!), uit de dataset gehaald. Op tekst voeren we lemmatiseringsoperaties uit, om woorden te groeperen in woorden met dezelfde betekenis (bijv. 'gaat' en 'gegaan' zijn beide vervoegingen van het werkwoord 'gaan'). Schoonmaken van data kost het meeste tijd, maar is een van de belangrijkste stappen in het proces. Garbage in = garbage out.

Baseline

Na de schoonmaak, gaan we trainen. We trainen ons een eerste model om daarmee een baseline te hebben voor toekomstige verbeteringen. Wij kozen hier voor een logistische regressie. Ons doel is het voorspellen of een motie aangenomen wordt of niet, onze uitkomst is dus 'binair'. Een logistische regressie is hier goed in. Andere methodes, zoals een lineaire regressie, zijn vaak goed in het voorspellen van een continue variabele zoals een leeftijd, temperatuur of prijs.

Een grafiek waarin het verschil tussen een lineaire en logistische regressie wordt uitgelegd

Onze baseline leverde een score op van 45%. Dat doen we aan de hand van een 'F1-score'. Deze score combineert de precision en recall van onze voorspellingen.

Wat is recall, precision en F1?

Stel je hebt corona verschijnselen en gaat je laten testen. Deze test kan positief of negatief zijn, maar soms is de testuitslag ook fout. Als de uitslag positief is, maar je hebt geen corona noemen we dit een ‘False Positive (FP)’. We gaan ervanuit dat de test in de meeste gevallen wel de correcte uitslag geeft, een ‘True Positive’ of een ‘True Negative’. Voordat de test in gebruik kan worden genomen, hebben we bepaalde eisen voor de verhouding van deze ‘True Positives/Negatives’ en ‘False Positives/Negatives’.

Om dit te meten, gebruiken we de precision en recall waardes. Precision is het percentage ‘True Postives’ van alle moties met een positieve voorspelling. In het corona voorbeeld is dit het percentage mensen die een positieve testuitslag hebben en ook daadwerkelijk corona hebben. Recall is het percentage ‘True Positives’ van alle aangenomen moties. In het corona voorbeeld is dit het percentage mensen die postief getest zijn van alle mensen die corona hebben en zich hebben laten testen. Meer weten over precision en recall? Klik hier.

Precision en recall combineren we om een F1-score te berekenen:

De formule om de F1 score te berekenen is (precision * recall) / (precision + recall)

Verbeteren van de baseline

Voor ons eerste model, de logistische regressie, bereikten we een score van 45%. In de zoektocht naar betere modellen verlaten we de traditionele statistiek, en kijken we naar modellen in de kunstmatige intelligentie die hogere scores kunnen genereren. Een van die modellen is een 'beslisboom'. Dit model splitst de moties op basis van de eigenschappen en probeert zo de aangenomen moties van de verworpen moties te onderscheiden.

De F1-score die we met dit model bereiken is 76% wat al aanzienlijk hoger is dan de score van het Regressie Model. In tegenstelling tot de logistische regressie, is 76% een betere prestatie dan een willekeurige gok. Als we voor iedere motie een muntje zouden opgooien en op basis daarvan de de stemmingsresultaten voorspellen, hebben we nog altijd een 50% kans op een correct voorspelling. Vandaar dat we voor de prestatie van ons model hoger willen zitten dan die 50%.

Met dit resultaat nemen we nog geen genoegen, er is een veelbelovende groep modellen die we nog willen uittesten. Dit zijn de ‘Ensemble Models’, modellen die zijn samengesteld uit andere modellen. De beslissingsboom van hierboven kun je zo meerdere keren trainen. De uiteindelijke voorspelling wordt dan een samenstelling van de voorspellingen van al deze losse beslissingsbomen. Dit maakt de voorspelling robuuster en hopelijk meer accuraat.

We krijgen een verbetering van ongeveer 4% ten opzichte van een enkel model als we dit samengestelde model, een zogenaamd ‘random forest’, trainen. Dit is dan ook het model dat we uiteindelijk hebben gekozen voor de MotieMachine.

In dit uiteindelijke model gebruiken we een combinatie van context variabelen en tekstuele variabelen. In de context variabelen kijken we naar gegevens over de context van de motie terwijl we tekstueel kijken naar specifieke woorden die gebruikt worden in de motie tekst. We zien dat de context variabelen de voorspelling voor het grootste deel bepalen. Woorden hebben een erg kleine voorspellende waarden.

Ons politiek gevoel bevestigd

Dit strookt ook met ons politiek onderbuikgevoel. Tekst van de moties maakt weinig uit: wie hem indiend maakt veel uit. Voornamelijk de vraag of de indiendende partij een coalitiepartij is, is een sterke drijver voor succes.

De MotieMachine wordt iedere nacht opnieuw getraind om de meest recente moties mee te kunnen nemen in de dataset. Zo kunnen we de tool snel aanpassen aan actuele ontwikkelingen. Elke nacht wordt de MotieMachine dus beter dan de vorige nacht.

Dit model is niet perfect: uit ons onderzoek blijkt dat het model slecht werkt in ‘demissionaire periodes’. Dat is de periode na de verkiezingen en voordat een nieuw kabinet is gevormd. Het is vaak taboe om in zulke periodes nieuwe initiatieven te ontplooien. Daarom zijn er minder debatten en worden er minder moties ingediend. Er is dan ook nog geen nieuw coalitieakkoord, waardoor partijen onvoorspelbaarder stemmen.

Meer weten? Lees onze blogs!

Lancering MotieMachine: Stemgedrag Kamerleden voorspellen met AI

Wepublic heeft een MotieMachine gebouwd om het stemgedrag van Tweede Kamerleden te voorspellen. Met kunstmatige intelligentie voorspellen we 80% van de uitslagen juist...

Lees meer
Kleine coalitiepartijen meeste invloed op belangrijkste maatschappelijke thema’s

Het CDA, CU en D66 hebben in de Tweede Kamer de meest invloed op de belangrijkste maatschappelijke thema’s. Dit blijkt uit een analyse op basis van de MotieMachine: een toepassing...

Lees meer
Carla Dik-Faber meest succesvolle Kamerlid, ChristenUnie meest succesvolle partij

Het Tweede Kamerlid Carla Dik-Faber (CU) is in deze kabinetsperiode het meest succesvol geweest: al haar 119 ingediende moties werden aangenomen. De ChristenUnie, waarvoor zij in de Tweede Kamer zit...

Lees meer
Vrouwen zijn succesvoller in de Tweede Kamer

OOok al zijn er een stuk minder vrouwen in de huidige Tweede Kamer dan mannen – namelijk ongeveer 1/3 – ze zijn wel een stuk succesvoller. Vrouwelijke Kamerleden weten in het kabinet Rutte III meer moties aangenomen te krijgen dan mannen, namelijk respectievelijk...

Lees meer

Contact

Logo of Wepublic

Wepublic B.V.

Herikerbergweg 193

1101 CN Amsterdam

www.wepublic.nl

contact@motiemachine.nl

+31202405530

Privacyverklaring

Twitter

Onze andere tools

Stakeholder Intelligence Monitor

Weet wat er speelt. Lees meer ❯

Issue Tracker

De Issue Tracker geeft diepgravend inzicht in de ontwikkelingen rondom één specifiek issue. Lees meer ❯

Stakeholder Engagement Tool

De app die stakeholdermanagement gemakkelijk maakt. Lees meer ❯