Populaire strategieën om ontbrekende waarden in een dataset statistisch te imputeren.
Veel real-world datasets kunnen om verschillende redenen ontbrekende waarden bevatten. Ze worden vaak gecodeerd als NaN’s, blanco’s of andere plaatshouders. Het trainen van een model met een dataset met veel ontbrekende waarden kan de kwaliteit van het machine learning model drastisch beïnvloeden. Sommige algoritmen, zoals scikit-learn-schatters, gaan ervan uit dat alle waarden numeriek zijn en een betekenisvolle waarde hebben en houden.
Een manier om met dit probleem om te gaan, is om de waarnemingen met ontbrekende gegevens weg te laten. U loopt echter het risico dat u datapunten met waardevolle informatie verliest. Een betere strategie zou zijn om de ontbrekende waarden toe te schrijven. Met andere woorden, we moeten die ontbrekende waarden afleiden uit het bestaande deel van de gegevens. Er zijn drie hoofdtypen ontbrekende gegevens:
Missing completely at random (MCAR)
Missing at random (MAR)
Not missing at random (NMAR)
Hoewel, in dit artikel, zal ik me concentreren op 6 populaire manieren voor gegevens imputatie voor cross-sectionele datasets ( Time-series dataset is een ander verhaal ).
Dat is een makkelijke. Je laat gewoon het algoritme omgaan met de ontbrekende gegevens. Sommige algoritmen kunnen rekening houden met de ontbrekende waarden en leren de beste imputatiewaarden voor de ontbrekende gegevens op basis van de training verliesreductie (dwz. XGBoost). Sommige andere hebben de optie om ze gewoon te negeren (bv. LightGBM – use_missing=false). Andere algoritmes zullen echter in paniek een foutmelding geven over de ontbrekende waarden (bijv. Scikit learn – LinearRegression). In dat geval moet u de ontbrekende gegevens verwerken en opschonen voordat u deze aan het algoritme toevoegt.
Laten we eens kijken naar enkele andere manieren om de ontbrekende waarden toe te voegen voordat u gaat trainen:
Note: alle onderstaande voorbeelden maken gebruik van de California Housing Dataset van Scikit-learn.
2- Imputatie met behulp van (gemiddelde/mediane) waarden:
Hiermee berekent u het gemiddelde/de mediaan van de niet-ontbrekende waarden in een kolom en vervangt u vervolgens de ontbrekende waarden in elke kolom afzonderlijk en onafhankelijk van de andere. Het kan alleen worden gebruikt voor numerieke gegevens.