Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Imputeren van Ontbrekende Waarden | Gegevens Preprocessen Met Scikit-learn
ML-Introductie Met Scikit-Learn

bookUitdaging: Imputeren van Ontbrekende Waarden

De klasse SimpleImputer is ontworpen om ontbrekende gegevens te verwerken door automatisch ontbrekende waarden te vervangen.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Bij het initialiseren kan deze klasse ook worden aangepast door de parameters in te stellen:

  • missing_value: specificeert de aanduiding voor ontbrekende waarden. Standaard is dit np.nan;
  • strategy: de strategie die wordt gebruikt om ontbrekende waarden in te vullen. 'mean' is de standaardwaarde;
  • fill_value: specificeert de waarde die wordt gebruikt om ontbrekende waarden in te vullen wanneer de strategy 'constant' is. Standaard is dit None.

Als transformer beschikt deze klasse over de volgende methoden:

Het is ook noodzakelijk om te bepalen welke waarden gebruikt worden voor imputatie.

Een gangbare aanpak is om ontbrekende numerieke waarden te vervangen door het gemiddelde en ontbrekende categorische waarden door de modus (meest voorkomende waarde), omdat dit de verdeling van de gegevens minimaal verstoort.

De keuze wordt bepaald door de parameter strategy:

  • strategy='mean': imputeren met het gemiddelde van elke kolom;
  • strategy='median': imputeren met de mediaan van elke kolom;
  • strategy='most_frequent': imputeren met de modus van elke kolom;
  • strategy='constant': imputeren met een constante waarde gespecificeerd in de parameter fill_value.

De parameter missing_values definieert welke waarden als ontbrekend worden beschouwd. Standaard is dit NaN, maar in sommige datasets kan dit een lege string '' of een andere aanduiding zijn.

Note
Opmerking

De SimpleImputer en veel andere transformers werken alleen met DataFrames, niet met pandas Series. Het selecteren van een enkele kolom uit een DataFrame met df['column'] levert een Series op. Om dit te voorkomen, kun je dubbele haken df[['column']] gebruiken zodat het resultaat een DataFrame blijft:

imputer.fit_transform(df[['column']])

Wanneer de .fit_transform()-methode van SimpleImputer wordt toegepast, retourneert deze een 2D-array. Het toewijzen van waarden aan een enkele kolom in een pandas DataFrame vereist een 1D-array (of Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

De .ravel()-methode kan worden gebruikt om de array naar 1D te flattenen vóór toewijzing:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Dit zorgt ervoor dat de geïmputeerde waarden correct zijn geformatteerd en opgeslagen in de DataFrame-kolom.

Taak

Swipe to start coding

Je krijgt een DataFrame genaamd df met informatie over pinguïns. De kolom 'sex' bevat enkele ontbrekende (NaN) waarden. Je taak is om deze hiaten op te vullen met de meest voorkomende categorie in deze kolom.

  1. Importeer de klasse SimpleImputer uit sklearn.impute.
  2. Maak een SimpleImputer-object aan met de parameter strategy ingesteld op 'most_frequent'.
  3. Pas de imputer toe op de kolom 'sex' om alle ontbrekende waarden te vervangen.
  4. Werk de kolom 'sex' in de df DataFrame bij met de geïmputeerde gegevens.

Oplossing

Uitstekend! We hebben het probleem van ontbrekende waarden in onze dataset aangepakt. We hebben de rijen met meer dan één null verwijderd en de kolom 'sex' geïmputeerd met de meest voorkomende waarde – MALE.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

Awesome!

Completion rate improved to 3.13

bookUitdaging: Imputeren van Ontbrekende Waarden

Veeg om het menu te tonen

De klasse SimpleImputer is ontworpen om ontbrekende gegevens te verwerken door automatisch ontbrekende waarden te vervangen.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Bij het initialiseren kan deze klasse ook worden aangepast door de parameters in te stellen:

  • missing_value: specificeert de aanduiding voor ontbrekende waarden. Standaard is dit np.nan;
  • strategy: de strategie die wordt gebruikt om ontbrekende waarden in te vullen. 'mean' is de standaardwaarde;
  • fill_value: specificeert de waarde die wordt gebruikt om ontbrekende waarden in te vullen wanneer de strategy 'constant' is. Standaard is dit None.

Als transformer beschikt deze klasse over de volgende methoden:

Het is ook noodzakelijk om te bepalen welke waarden gebruikt worden voor imputatie.

Een gangbare aanpak is om ontbrekende numerieke waarden te vervangen door het gemiddelde en ontbrekende categorische waarden door de modus (meest voorkomende waarde), omdat dit de verdeling van de gegevens minimaal verstoort.

De keuze wordt bepaald door de parameter strategy:

  • strategy='mean': imputeren met het gemiddelde van elke kolom;
  • strategy='median': imputeren met de mediaan van elke kolom;
  • strategy='most_frequent': imputeren met de modus van elke kolom;
  • strategy='constant': imputeren met een constante waarde gespecificeerd in de parameter fill_value.

De parameter missing_values definieert welke waarden als ontbrekend worden beschouwd. Standaard is dit NaN, maar in sommige datasets kan dit een lege string '' of een andere aanduiding zijn.

Note
Opmerking

De SimpleImputer en veel andere transformers werken alleen met DataFrames, niet met pandas Series. Het selecteren van een enkele kolom uit een DataFrame met df['column'] levert een Series op. Om dit te voorkomen, kun je dubbele haken df[['column']] gebruiken zodat het resultaat een DataFrame blijft:

imputer.fit_transform(df[['column']])

Wanneer de .fit_transform()-methode van SimpleImputer wordt toegepast, retourneert deze een 2D-array. Het toewijzen van waarden aan een enkele kolom in een pandas DataFrame vereist een 1D-array (of Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

De .ravel()-methode kan worden gebruikt om de array naar 1D te flattenen vóór toewijzing:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Dit zorgt ervoor dat de geïmputeerde waarden correct zijn geformatteerd en opgeslagen in de DataFrame-kolom.

Taak

Swipe to start coding

Je krijgt een DataFrame genaamd df met informatie over pinguïns. De kolom 'sex' bevat enkele ontbrekende (NaN) waarden. Je taak is om deze hiaten op te vullen met de meest voorkomende categorie in deze kolom.

  1. Importeer de klasse SimpleImputer uit sklearn.impute.
  2. Maak een SimpleImputer-object aan met de parameter strategy ingesteld op 'most_frequent'.
  3. Pas de imputer toe op de kolom 'sex' om alle ontbrekende waarden te vervangen.
  4. Werk de kolom 'sex' in de df DataFrame bij met de geïmputeerde gegevens.

Oplossing

Uitstekend! We hebben het probleem van ontbrekende waarden in onze dataset aangepakt. We hebben de rijen met meer dan één null verwijderd en de kolom 'sex' geïmputeerd met de meest voorkomende waarde – MALE.

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4
single

single

some-alt