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
Introduksjon til ML 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': imputer med gjennomsnittet av hver kolonne;
  • strategy='median': imputer med medianen av hver kolonne;
  • strategy='most_frequent': imputer med modus av hver kolonne;
  • strategy='constant': imputer 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. Ved å velge 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 metoden .fit_transform() fra SimpleImputer brukes, returnerer den et 2D-array. For å tilordne verdier til én enkelt kolonne i en pandas DataFrame, kreves 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

Du har fått en DataFrame kalt df som inneholder informasjon om pingviner. Kolonnen 'sex' har noen manglende (NaN) verdier. Din oppgave er å fylle disse hullene ved å bruke den vanligste kategorien i denne kolonnen.

  1. Importer klassen SimpleImputer fra sklearn.impute.
  2. Opprett et SimpleImputer-objekt med parameteren strategy satt til 'most_frequent'.
  3. Bruk imputer på kolonnen 'sex' for å erstatte alle manglende verdier.
  4. Oppdater kolonnen 'sex' i df DataFrame med de imputerte dataene.

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

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': imputer med gjennomsnittet av hver kolonne;
  • strategy='median': imputer med medianen av hver kolonne;
  • strategy='most_frequent': imputer med modus av hver kolonne;
  • strategy='constant': imputer 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. Ved å velge 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 metoden .fit_transform() fra SimpleImputer brukes, returnerer den et 2D-array. For å tilordne verdier til én enkelt kolonne i en pandas DataFrame, kreves 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

Du har fått en DataFrame kalt df som inneholder informasjon om pingviner. Kolonnen 'sex' har noen manglende (NaN) verdier. Din oppgave er å fylle disse hullene ved å bruke den vanligste kategorien i denne kolonnen.

  1. Importer klassen SimpleImputer fra sklearn.impute.
  2. Opprett et SimpleImputer-objekt med parameteren strategy satt til 'most_frequent'.
  3. Bruk imputer på kolonnen 'sex' for å erstatte alle manglende verdier.
  4. Oppdater kolonnen 'sex' i df DataFrame med de imputerte dataene.

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!

Seksjon 2. Kapittel 4
single

single

some-alt