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 dens 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:

Vi må imidlertid også velge hvilken verdi som skal brukes til imputering.

En vanlig tilnærming er å imputere manglende numeriske verdier med gjennomsnittet og manglende kategoriske verdier med modus (den mest forekommende verdien), da slik imputering i liten grad påvirker fordelingen av verdiene.

Tilnærmingen kan styres ved å bruke parameteren strategy:

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

Parameteren missing_values styrer hvilke verdier som anses som manglende. Som standard er dette NaN, men i ulike datasett kan det være en tom streng '' eller noe annet.

Når du bruker .fit_transform()-metoden til SimpleImputer, produserer den et 2D-array som output. Når du derimot skal oppdatere en enkelt kolonne i en pandas DataFrame, trenger du et 1D-array (eller en Series).

df['column'] = ...  # 1D array or Series expected

imputer.fit_transform(df[['column']])  # Returns a 2D array

For å konvertere 2D-arrayet til et 1D-array som passer for tildeling til en DataFrame-kolonne, kan du bruke .ravel()-metoden. Denne metoden flater ut arrayet. Slik kan du oppdatere en kolonne etter imputering:

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

Denne tilnærmingen sikrer at de imputerte verdiene er korrekt formatert og tilordnet tilbake til DataFrame-en.

Oppgave

Swipe to start coding

Din oppgave er å imputere NaN-verdiene i 'sex'-kolonnen ved hjelp av SimpleImputer. Siden du arbeider med en kategorisk kolonne, skal du erstatte nullverdiene med den mest hyppige verdien (den vanligste tilnærmingen).

  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 forekommende 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 dens 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:

Vi må imidlertid også velge hvilken verdi som skal brukes til imputering.

En vanlig tilnærming er å imputere manglende numeriske verdier med gjennomsnittet og manglende kategoriske verdier med modus (den mest forekommende verdien), da slik imputering i liten grad påvirker fordelingen av verdiene.

Tilnærmingen kan styres ved å bruke parameteren strategy:

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

Parameteren missing_values styrer hvilke verdier som anses som manglende. Som standard er dette NaN, men i ulike datasett kan det være en tom streng '' eller noe annet.

Når du bruker .fit_transform()-metoden til SimpleImputer, produserer den et 2D-array som output. Når du derimot skal oppdatere en enkelt kolonne i en pandas DataFrame, trenger du et 1D-array (eller en Series).

df['column'] = ...  # 1D array or Series expected

imputer.fit_transform(df[['column']])  # Returns a 2D array

For å konvertere 2D-arrayet til et 1D-array som passer for tildeling til en DataFrame-kolonne, kan du bruke .ravel()-metoden. Denne metoden flater ut arrayet. Slik kan du oppdatere en kolonne etter imputering:

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

Denne tilnærmingen sikrer at de imputerte verdiene er korrekt formatert og tilordnet tilbake til DataFrame-en.

Oppgave

Swipe to start coding

Din oppgave er å imputere NaN-verdiene i 'sex'-kolonnen ved hjelp av SimpleImputer. Siden du arbeider med en kategorisk kolonne, skal du erstatte nullverdiene med den mest hyppige verdien (den vanligste tilnærmingen).

  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 forekommende 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