Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Imputering av Manglende Verdier | Forbehandling av Data med Scikit-learn
ML-Introduksjon med Scikit-learn

bookUtfordring: Imputering av Manglende Verdier

Klassen SimpleImputer er utviklet for å håndtere manglende data ved automatisk å erstatte manglende verdier.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Ved initialisering kan den også tilpasses ved å angi parametere:

  • missing_value: angir plassholderen for manglende verdier. Standardverdien er np.nan;
  • strategy: strategien som brukes for å imputere manglende verdier. 'mean' er standardverdien;
  • fill_value: Angir verdien som skal brukes for å fylle inn manglende verdier når strategy er 'constant'. Standardverdien er None.

Som en transformer har den følgende metoder:

Det er også nødvendig å bestemme hvilke verdier som skal brukes for imputering.

En vanlig tilnærming er å erstatte manglende numeriske verdier med gjennomsnittet og manglende kategoriske verdier med modus (mest vanlige verdi), da dette i liten grad forvrenger datadistribusjonen.

Valget styres av parameteren strategy:

  • strategy='mean': imputerer med gjennomsnittet av hver kolonne;
  • strategy='median': imputerer med medianen av hver kolonne;
  • strategy='most_frequent': imputerer med modus av hver kolonne;
  • strategy='constant': imputerer med en konstant verdi angitt i parameteren fill_value.

Parameteren missing_values definerer hvilke verdier som behandles som manglende. Standardverdien er NaN, men i noen datasett kan det være en tom streng '' eller en annen plassholder.

Note
Merk

SimpleImputer og mange andre transformere fungerer kun med DataFrames, ikke med pandas Series. Hvis du velger en enkelt kolonne fra en DataFrame med df['column'], returneres en Series. For å unngå dette kan du bruke doble klammeparenteser df[['column']] for å sikre at det returneres en DataFrame i stedet:

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

Når .fit_transform()-metoden til SimpleImputer brukes, returnerer den et 2D-array. Å tilordne verdier til én enkelt kolonne i en pandas DataFrame krever et 1D-array (eller Series).

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

Metoden .ravel() kan brukes for å flate ut arrayet til 1D før tilordning:

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

Dette sikrer at de imputerte verdiene er riktig formatert og lagret i DataFrame-kolonnen.

Oppgave

Swipe to start coding

Imputer de manglende verdiene i 'sex'-kolonnen ved å bruke SimpleImputer. Siden dette er en kategorisk kolonne, erstatt NaN-verdier med den mest vanlige verdien.

  1. Importer SimpleImputer.
  2. Opprett et SimpleImputer-objekt med ønsket strategy.
  3. Imputer de manglende verdiene i 'sex'-kolonnen ved å bruke imputer-objektet.

Løsning

Flott! Vi har håndtert problemet med manglende verdier i datasettet vårt. Vi fjernet radene med mer enn én nullverdi og imputerte 'sex'-kolonnen med den mest vanlige verdien – MALE.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 4
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain how to use SimpleImputer for categorical columns?

What are some best practices for choosing the right imputation strategy?

How do I handle missing values that are not NaN, like empty strings?

close

Awesome!

Completion rate improved to 3.13

bookUtfordring: Imputering av Manglende Verdier

Sveip for å vise menyen

Klassen SimpleImputer er utviklet for å håndtere manglende data ved automatisk å erstatte manglende verdier.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Ved initialisering kan den også tilpasses ved å angi parametere:

  • missing_value: angir plassholderen for manglende verdier. Standardverdien er np.nan;
  • strategy: strategien som brukes for å imputere manglende verdier. 'mean' er standardverdien;
  • fill_value: Angir verdien som skal brukes for å fylle inn manglende verdier når strategy er 'constant'. Standardverdien er None.

Som en transformer har den følgende metoder:

Det er også nødvendig å bestemme hvilke verdier som skal brukes for imputering.

En vanlig tilnærming er å erstatte manglende numeriske verdier med gjennomsnittet og manglende kategoriske verdier med modus (mest vanlige verdi), da dette i liten grad forvrenger datadistribusjonen.

Valget styres av parameteren strategy:

  • strategy='mean': imputerer med gjennomsnittet av hver kolonne;
  • strategy='median': imputerer med medianen av hver kolonne;
  • strategy='most_frequent': imputerer med modus av hver kolonne;
  • strategy='constant': imputerer med en konstant verdi angitt i parameteren fill_value.

Parameteren missing_values definerer hvilke verdier som behandles som manglende. Standardverdien er NaN, men i noen datasett kan det være en tom streng '' eller en annen plassholder.

Note
Merk

SimpleImputer og mange andre transformere fungerer kun med DataFrames, ikke med pandas Series. Hvis du velger en enkelt kolonne fra en DataFrame med df['column'], returneres en Series. For å unngå dette kan du bruke doble klammeparenteser df[['column']] for å sikre at det returneres en DataFrame i stedet:

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

Når .fit_transform()-metoden til SimpleImputer brukes, returnerer den et 2D-array. Å tilordne verdier til én enkelt kolonne i en pandas DataFrame krever et 1D-array (eller Series).

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

Metoden .ravel() kan brukes for å flate ut arrayet til 1D før tilordning:

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

Dette sikrer at de imputerte verdiene er riktig formatert og lagret i DataFrame-kolonnen.

Oppgave

Swipe to start coding

Imputer de manglende verdiene i 'sex'-kolonnen ved å bruke SimpleImputer. Siden dette er en kategorisk kolonne, erstatt NaN-verdier med den mest vanlige verdien.

  1. Importer SimpleImputer.
  2. Opprett et SimpleImputer-objekt med ønsket strategy.
  3. Imputer de manglende verdiene i 'sex'-kolonnen ved å bruke imputer-objektet.

Løsning

Flott! Vi har håndtert problemet med manglende verdier i datasettet vårt. Vi fjernet radene med mer enn én nullverdi og imputerte 'sex'-kolonnen med den mest vanlige verdien – MALE.

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

close

Awesome!

Completion rate improved to 3.13
Seksjon 2. Kapittel 4
single

single

some-alt