Imputatie van null-waarden
Als er te veel waarden ontbreken, kan dat een negatieve impact hebben op de kwaliteit van uw machine learning-model. Imputatie is het invullen van ontbrekende waarden, ook wel bekend als null-waarden. Er kunnen vele redenen zijn voor het ontbreken van gegevens, zoals een databasefout, een gebruiker die een deel van een formulier niet invult, of misschien begint u met het verzamelen van nieuwe gegevens en hebben oudere records in de gegevensverzameling geen nieuw gegevenspunt.
Het is belangrijk om de effecten te begrijpen die imputatie mogelijk op de gegevens heeft. Imputatie behoudt de voorspellingskracht van een rij of kolom, maar kan ook patronen creëren die eerder niet bestonden of ruis toevoegen aan een patroon dat al bestond. Dit vermindert de validiteit van de gegevens.
Het is een goed idee om de manier waarop u gegevens verzamelt te controleren om er zeker van te zijn dat alle gegevens aanwezig zijn en om zo nodig nieuwe processen toe te passen. Als u de representatie van een lege waarde wilt behouden, kunt u null-waarden invoeren zoals 'overig' of 'onbekend'.
Null-imputatie tijdens automatisch voorbewerken
In Qlik AutoML maakt automatische voorbewerking van gegevens gebruik van null-imputatie om uw gegevensverzameling voor te bereiden op training. Tijdens de automatische voorbewerking van gegevens, worden null-waarden afgehandeld door kolommen uit te sluiten waarbij meer dan 50 procent van de waarden ontbreekt en door ontbrekende waarden in te vullen. Ontbrekende waarden in categorische functies worden toegerekend met de waarde 'overig' en ontbrekende waarden in numerieke functies worden toegerekend met het gemiddelde.
Er gelden extra overwegingen voor automatisch ontworpen functies en tijdbewuste training.
Zie Geautomatiseerde voorbereiding en transformatie voor meer informatie over voorbewerken.
Automatisch ontwikkelde functies
Met automatische kenmerkontwikkeling maakt AutoML automatisch nieuwe functies op basis van bestaande functies. Voor automatisch ontwikkelde functies wordt de null-imputatie als volgt uitgevoerd:
-
Als u automatisch ontwikkelde datumfuncties in de training opneemt, is het proces voor null-imputatieproces voor deze functies hetzelfde als voor numerieke functies.
-
Als u in plaats daarvan de bovenliggende datumfuncties gebruikt, is het proces voor null-imputatie hetzelfde als voor categorische functies.
-
Voor categorische functies die als vrije tekst worden behandeld, is null-imputatie hetzelfde als voor categorische functies.
Tijdbewuste training
Als Tijdbewuste training is ingeschakeld, wordt de null-imputatie als volgt uitgevoerd:
-
Alle rijen in de trainingsgegevensverzameling die een null-waarde hebben voor de geselecteerde datumindex worden tijdens het voorbewerken verwijderd. Deze rijen worden niet gebruikt om de modellen te trainen.
-
Voor numerieke functies wordt null-imputatie uitgevoerd met lineaire interpolatie. Lineaire interpolatie wordt ook gebruikt voor automatisch ontwikkelde datumfuncties.
-
Voor categorische functies is het proces voor null-imputatieproces hetzelfde als wanneer u geen tijdbewuste training gebruikt.
-
Als u datumfuncties gebruikt zonder automatische functie-ontwikkeling, is het proces voor null-imputatie hetzelfde als voor categorische functies.
-
Voor categorische functies die als vrije tekst worden behandeld, is null-imputatie hetzelfde als voor categorische functies.
Voor meer informatie over tijdbewuste training, gaat u naar Tijdbewuste modellen maken.
Hoe werkt imputatie
De volgende methoden zijn algemeen gebruikte methoden voor imputatie van null-waarden.
Numerieke waarden
Het is een goede standaardmethode om de gemiddelde waarde in te vullen. Als de ontbrekende waarden normaal worden verdeeld, is dat alsof er gewicht op het midden van een weegschaal wordt geplaatst: het heeft geen effect op het gewicht aan een van beide kanten. Maar denk altijd na over wat de waarde moet vertegenwoordigen. Als de waarden voor de verkoopprijs bijvoorbeeld null-waarden zijn in uw verkoopgegevens, wordt dat dan veroorzaakt door een databasefout of heeft de gebruiker een tegoedbon als betaling gebruikt? Zou een 0 of een andere waarde dan het gemiddelde, logischer zijn?
Categorische waarden
Een goede standaardmethode voor categorische waarden is om nog een categorie toe te voegen en deze 'Overig', 'Onbekend' of zelfs 'Ontbreekt' te noemen. Deze categorie kan de aanvullende variatie bevatten als de ontbrekende waarden willekeurig worden verdeeld of als kenmerken belangrijker worden als er een betekenishoudende relatie is tussen de ontbrekende waarde en de doelwaarde.
Een alternatief is om het gemiddelde in de vorm van de modus in te vullen. Net als bij numerieke waarden is het altijd belangrijk om goed na te denken over wat de waarde moet vertegenwoordigen en wat de mogelijke reden is dat de waarde ontbreekt. Als u weet dat het merendeel van de ontbrekende waarden waarschijnlijk de modus is, kunt u gegevens aanvullen met de modus. Als het niet bekend of onzeker is, kunt u de categorische waarde invullen met een opvultekst die een nieuwe, unieke waarde is voor de gegevensverzameling.
Effecten van imputatie van numerieke waarden
Numerieke imputatie 1 toont een spreidingsplot met een beste passende lijn. Er staat een numerieke waarde op de categorie-as (x) en een doelwaarde op de waarde-as (y). Het lijkt goed op elkaar aan te sluiten, maar er wordt alleen rekening gehouden met gegevenspunten waar x bekend is.
In Numerieke imputatie 2 hebben we de gemiddelde waarde ingevuld. Maar de ontbrekende waarden lijken niet willekeurig te zijn. Dit vertekent de best passende lijn en voegt ruis toe waardoor de algehele nauwkeurigheid van het model afneemt.
Het diagram in Numerieke imputatie 3 toont hoe het eruit zou zien als we de gemiddelde waarde zouden gebruiken voor imputatie wanneer de ontbrekende waarden willekeurig worden verdeeld. Met andere woorden, als er geen extra kennis is die kan worden verkregen door te weten of de waarde aanwezig was of niet. Wanneer de ontbrekende waarden willekeurig zijn verdeeld, verandert de best passende lijn niet. Als we 0 hebben ingevoerd in plaats van de gemiddelde waarde, zou dit de best passende lijn op vergelijkbare wijze hebben veranderd als bij Numerieke imputatie 2.
Voorbeeld: kwalificatie voor lening
Een voorbeeld uit de echte wereld zou zijn als x het jaarinkomen was en y het bedrag dat iemand mag lenen. We zouden een relatie verwachten waarbij hoe meer geld iemand verdient, des te meer hij of zij kan lenen. Het patroon zou vergelijkbaar zijn met Numerieke imputatie 1 hierboven.
Stel dat mensen die minder geld verdienen, minder snel hun jaarinkomen zouden invullen. In dat geval zou de x-waarde om een specifieke reden ontbreken. Door het gemiddelde van deze waarden in te vullen, zouden de resultaten van het model worden vertekend. Het resultaat zou vergelijkbaar zijn met Numerieke imputatie 2.
Stel nu dat er een aantal records in de database willekeurig is verwijderd. De records bevatten gegevens over hoeveel geld iemand verdient, maar niet de record voor de persoon zelf. Daarom is de x-waarde willekeurig null. Dat effect wordt duidelijk gemaakt in Numerieke imputatie 3 en is een situatie waarin we probleemloos de ontbrekende waarde kunnen invullen.
Een andere vraag om over na te denken is: wat als 0 is ingevuld in plaats van het gemiddelde? In het voorbeeld van de kwalificatie voor een lening, is het waarschijnlijk onjuist om te stellen dat iemand 0 dollar per jaar verdient. Dit zou het model vergelijkbaar met Numerieke imputatie 2 vertekenen.
Effecten van imputatie van categorische waarden
In het numerieke geval hierboven, hebben we het gemiddelde gebruikt als imputatie voor de ontbrekende waarden. Een eenvoudige manier voor categorische waarden is om de modus te nemen omdat dit de meest veelvoorkomende waarde is. Een deel van de uitdagingen met imputatie van de modus is hetzelfde als bij imputatie van het gemiddelde voor een numerieke waarde.
In het onderstaande diagram staat een patroon voor de ontbrekende waarden in Missing_1 in relatie tot het doel. Missing_2 is willekeurig verdeeld. We kunnen dit tegenkomen, omdat Missing_2 overeenkomt met de algehele gemiddelde doelwaarde. Missing_1 is vergelijkbaar met Numerieke imputatie 2 en Missing_2 is vergelijkbaar met Numerieke imputatie 3.
Het verschil met het numerieke voorbeeld is dat Missing_1 en Missing_2 in dit geval allebei de patroonherkenning vertekenen. Het wordt alleen vertekend voor een subset van de gegevens, categorie B, die de geïmputeerde waarde zou zijn als de modus wordt geïmputeerd omdat dit de grootste categorie is.
Vertekening van de relatie tussen één waarde en de doelwaarde is niet het enige risico van imputatie, maar het is wel een van de meest voorkomende en eenvoudige om te evalueren. Andere risico's brengen alleen wat ruis met zich mee en kunnen de nauwkeurigheid verminderen. Gelukkig kan het risico op vertekening flink worden beperkt door dimensies weg te laten die relatief zelden voorkomen. Er is vaak discussie over welke mate van schaarsheid in een kolom of rij moet worden toegestaan, maar het is minder vaak onderwerp van discussie dat het invullen van waarden de gegevens mogelijk dusdanig vertekent dat de waarden niet meer representatief zijn voor wat de gegevens moeten beschrijven.