Omgaan Met Ontbrekende Waarden
Slechts een beperkt aantal machine learning-modellen kan omgaan met ontbrekende waarden, dus moet de dataset worden gecontroleerd om te verzekeren dat er geen hiaten overblijven. Als er ontbrekende waarden aanwezig zijn, kunnen deze op twee manieren worden aangepakt:
- Het verwijderen van rijen die ontbrekende waarden bevatten;
- Het opvullen van lege cellen met vervangende waarden, een proces dat imputatie wordt genoemd.
Ontbrekende waarden identificeren
Om algemene informatie over de dataset weer te geven en te controleren op ontbrekende waarden, kan de .info()
-methode van een DataFrame worden gebruikt.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
De dataset bevat 344 rijen, maar de kolommen 'culmen_depth_mm'
, 'flipper_length_mm'
, 'body_mass_g'
en 'sex'
bevatten elk minder dan 344 niet-nulwaarden, wat wijst op de aanwezigheid van ontbrekende gegevens.
Null is een andere benaming voor ontbrekende waarden.
Om het aantal ontbrekende waarden per kolom te identificeren, de .isna()
-methode toepassen en vervolgens .sum()
gebruiken.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
Rijen met ontbrekende waarden kunnen worden weergegeven met:
df[df.isna().any(axis=1)]
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
Rijen verwijderen
De eerste en laatste rijen bevatten alleen de target ('species'
) en 'island'
waarden, wat te weinig informatie biedt om nuttig te zijn. Deze rijen kunnen worden verwijderd door alleen die rijen te behouden met minder dan twee NaN
-waarden en deze opnieuw toe te wijzen aan df
.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
Daarentegen bevatten de overgebleven rijen bruikbare informatie, waarbij NaN
-waarden alleen voorkomen in de kolom 'sex'
. In plaats van deze rijen te verwijderen, kunnen de ontbrekende waarden geïmputeerd worden. Een gangbare methode is het gebruik van de SimpleImputer
transformer, die in het volgende hoofdstuk wordt behandeld.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain more about how imputing works?
What are some other ways to handle missing values besides removing or imputing?
Why is it important to handle missing values before training a machine learning model?
Awesome!
Completion rate improved to 3.13
Omgaan Met Ontbrekende Waarden
Veeg om het menu te tonen
Slechts een beperkt aantal machine learning-modellen kan omgaan met ontbrekende waarden, dus moet de dataset worden gecontroleerd om te verzekeren dat er geen hiaten overblijven. Als er ontbrekende waarden aanwezig zijn, kunnen deze op twee manieren worden aangepakt:
- Het verwijderen van rijen die ontbrekende waarden bevatten;
- Het opvullen van lege cellen met vervangende waarden, een proces dat imputatie wordt genoemd.
Ontbrekende waarden identificeren
Om algemene informatie over de dataset weer te geven en te controleren op ontbrekende waarden, kan de .info()
-methode van een DataFrame worden gebruikt.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
De dataset bevat 344 rijen, maar de kolommen 'culmen_depth_mm'
, 'flipper_length_mm'
, 'body_mass_g'
en 'sex'
bevatten elk minder dan 344 niet-nulwaarden, wat wijst op de aanwezigheid van ontbrekende gegevens.
Null is een andere benaming voor ontbrekende waarden.
Om het aantal ontbrekende waarden per kolom te identificeren, de .isna()
-methode toepassen en vervolgens .sum()
gebruiken.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
Rijen met ontbrekende waarden kunnen worden weergegeven met:
df[df.isna().any(axis=1)]
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
Rijen verwijderen
De eerste en laatste rijen bevatten alleen de target ('species'
) en 'island'
waarden, wat te weinig informatie biedt om nuttig te zijn. Deze rijen kunnen worden verwijderd door alleen die rijen te behouden met minder dan twee NaN
-waarden en deze opnieuw toe te wijzen aan df
.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
Daarentegen bevatten de overgebleven rijen bruikbare informatie, waarbij NaN
-waarden alleen voorkomen in de kolom 'sex'
. In plaats van deze rijen te verwijderen, kunnen de ontbrekende waarden geïmputeerd worden. Een gangbare methode is het gebruik van de SimpleImputer
transformer, die in het volgende hoofdstuk wordt behandeld.
Bedankt voor je feedback!