AI in het samensteldossier – nog even door knutselen

Al een poosje werken we aan een aantal machine learning modellen die accountants moeten helpen bij hun dagelijkse werkzaamheden. Eén daarvan, Peach – een model om RGS labeling te voorspellen, is recent in productie genomen. Een ander model, luisterend naar de naam Luigi heeft een poosje stil gelegen maar hebben we recent weer op gepakt. Tijd voor een update dus.

De bedoeling van Luigi was om te voorspellen hoe groot de kans is dat op grootboekrekeningen in het samenstelproces een materiële fout zou worden geconstateerd. De uitgangspunten die we daarbij hanteren zijn:

  1. Een VJP geeft aan dat een rekening een hogere kans op fouten in zich heeft. Getuige de geboekte correctie was de uitkomst van de administratie kennelijk niet correct. Dit is kort door de bocht maar leek ons wel een goed startpunt.
  2. Het type rekening en de kenmerken daarvan zijn bepalend voor het risico op een materiële fout. Hierbij kun je denken aan de volgende karakteristieken:
    • Welke rekening is het (o.b.v. het RGS label)
    • Hoeveel boekingen worden gemaakt en wat voor soort boekingen (geautomatiseerd, handmatig, type dagboek)
    • Wat is de spreiding van boekingen over het kalenderjaar en de variatie in bedragen.
    • Etc.

Uiteraard is ook van belang welke type onderneming het is en wie de administratie voert. We wilden echter simpel beginnen. Vooral omdat data-collectie lastig bleek te zijn. Vooral omdat het niet altijd mogelijk blijkt te zijn om de VJP’s eenduidig uit een administratie te destilleren. Met behulp van een aantal bereidwillige kantoren beschikken we over  een dataset van een paar honderd administraties. Niet echt veel maar je moet ergens beginnen.

Nadat we de administraties hebben omgevormd tot een dataset van ongeveer 15.000 bruikbare rekeningen waarvan we voornoemde karakteristieken betrouwbaar konden bepalen. Of een rekening al dan niet materieel fout was, is bepaald op basis van de bijbehorende VJP’s. Wat we voor materialiteit hebben gehanteerd laat ik voor nu even buiten beschouwing). Maar er is dus sprake van een gelabelde dataset waarbij de modellen een voorspelling kunnen baseren op deze labels (zgn. supervised learning).

En nu de magie…

hoopten we. We hebben een zestal algoritmes getraind op de dataset met de expliciete opdracht te voorspellen of een rekening wel of niet fout was. Deze training hebben we op ongeveer 80% van de dataset uitgevoerd. Vervolgens resteerde nog 20% van de dataset om de voorspellingen te valideren. Wat blijkt – de modellen zijn prima in staat te voorspellen welke rekening waarschijnlijk niet fout zijn (90%). Dat klinkt leuk maar is niet zo spannend – de kans is namelijk ook veel groter dat een rekening niet fout is.

De voorspellingen voor ‘wel fout’ ware echter veel minder accuraat. En dat is nou juist waar we naar op zoek zijn. Terug naar de tekentafel dus. Eerste prioriteit – een grotere dataset maar wellicht belangrijker: meer variabelen die enerzijds relatief makkelijk zijn te bepalen en anderzijds meer voorspellend zijn voor de kwaliteit van de cijfers. Als je mee wil denken (of je hebt een leuke dataset beschikbaar), dan houden we ons uiteraard aanbevolen!

Nb) voor de liefhebbers – de modellen die we gebruikt hebben om de bruikbaarheid van deze set te bepalen zijn o.a. Support Vector Machine, Gaussian Naive Bayes, Decision Tree Classifier en K Nearest Neighbors.