Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Imputering af Manglende Værdier | Forbehandling af Data med Scikit-learn
ML Introduktion med Scikit-learn

bookUdfordring: Imputering af Manglende Værdier

Klassen SimpleImputer er designet til at håndtere manglende data ved automatisk at erstatte manglende værdier.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Ved initialisering kan den også tilpasses ved at angive dens parametre:

  • missing_value: angiver pladsholderen for de manglende værdier. Som standard er dette np.nan;
  • strategy: strategien der bruges til at imputere manglende værdier. 'mean' er standardværdien;
  • fill_value: Angiver værdien, der skal bruges til at udfylde manglende værdier, når strategy er 'constant'. Som standard er dette None.

Som transformer har den følgende metoder:

Det er også nødvendigt at beslutte, hvilke værdier der skal bruges til imputering.

En almindelig tilgang er at erstatte manglende numeriske værdier med gennemsnittet og manglende kategoriske værdier med typetallet (mest hyppige værdi), da dette forvrænger datadistributionen minimalt.

Valget styres af parameteren strategy:

  • strategy='mean': imputering med gennemsnittet af hver kolonne;
  • strategy='median': imputering med medianen af hver kolonne;
  • strategy='most_frequent': imputering med typetallet af hver kolonne;
  • strategy='constant': imputering med en konstant værdi angivet i parameteren fill_value.

Parameteren missing_values definerer, hvilke værdier der behandles som manglende. Som standard er dette NaN, men i nogle datasæt kan det være en tom streng '' eller en anden pladsholder.

Note
Bemærk

SimpleImputer og mange andre transformere fungerer kun med DataFrames, ikke med pandas Series. Hvis du vælger en enkelt kolonne fra et DataFrame med df['column'], returneres en Series. For at undgå dette kan du bruge dobbelte klammer df[['column']] for at sikre, at det returnerer et DataFrame i stedet:

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

Når .fit_transform()-metoden fra SimpleImputer anvendes, returnerer den et 2D-array. Tildeling af værdier til en enkelt kolonne i en pandas DataFrame kræver et 1D-array (eller Series).

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

Metoden .ravel() kan bruges til at flade arrayet ud til 1D før tildeling:

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

Dette sikrer, at de imputerede værdier er korrekt formateret og gemt i DataFrame-kolonnen.

Opgave

Swipe to start coding

Imputer de manglende værdier i kolonnen 'sex' ved hjælp af SimpleImputer. Da dette er en kategorisk kolonne, skal NaN-værdier erstattes med den mest hyppige værdi.

  1. Importér SimpleImputer.
  2. Opret et SimpleImputer-objekt med den ønskede strategy.
  3. Imputer de manglende værdier i kolonnen 'sex' ved hjælp af imputer-objektet.

Løsning

Fremragende! Vi har håndteret problemet med manglende værdier i vores datasæt. Vi fjernede rækkerne med mere end én null og imputerede kolonnen 'sex' med den mest hyppige værdi – MALE.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 3.13

bookUdfordring: Imputering af Manglende Værdier

Stryg for at vise menuen

Klassen SimpleImputer er designet til at håndtere manglende data ved automatisk at erstatte manglende værdier.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Ved initialisering kan den også tilpasses ved at angive dens parametre:

  • missing_value: angiver pladsholderen for de manglende værdier. Som standard er dette np.nan;
  • strategy: strategien der bruges til at imputere manglende værdier. 'mean' er standardværdien;
  • fill_value: Angiver værdien, der skal bruges til at udfylde manglende værdier, når strategy er 'constant'. Som standard er dette None.

Som transformer har den følgende metoder:

Det er også nødvendigt at beslutte, hvilke værdier der skal bruges til imputering.

En almindelig tilgang er at erstatte manglende numeriske værdier med gennemsnittet og manglende kategoriske værdier med typetallet (mest hyppige værdi), da dette forvrænger datadistributionen minimalt.

Valget styres af parameteren strategy:

  • strategy='mean': imputering med gennemsnittet af hver kolonne;
  • strategy='median': imputering med medianen af hver kolonne;
  • strategy='most_frequent': imputering med typetallet af hver kolonne;
  • strategy='constant': imputering med en konstant værdi angivet i parameteren fill_value.

Parameteren missing_values definerer, hvilke værdier der behandles som manglende. Som standard er dette NaN, men i nogle datasæt kan det være en tom streng '' eller en anden pladsholder.

Note
Bemærk

SimpleImputer og mange andre transformere fungerer kun med DataFrames, ikke med pandas Series. Hvis du vælger en enkelt kolonne fra et DataFrame med df['column'], returneres en Series. For at undgå dette kan du bruge dobbelte klammer df[['column']] for at sikre, at det returnerer et DataFrame i stedet:

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

Når .fit_transform()-metoden fra SimpleImputer anvendes, returnerer den et 2D-array. Tildeling af værdier til en enkelt kolonne i en pandas DataFrame kræver et 1D-array (eller Series).

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

Metoden .ravel() kan bruges til at flade arrayet ud til 1D før tildeling:

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

Dette sikrer, at de imputerede værdier er korrekt formateret og gemt i DataFrame-kolonnen.

Opgave

Swipe to start coding

Imputer de manglende værdier i kolonnen 'sex' ved hjælp af SimpleImputer. Da dette er en kategorisk kolonne, skal NaN-værdier erstattes med den mest hyppige værdi.

  1. Importér SimpleImputer.
  2. Opret et SimpleImputer-objekt med den ønskede strategy.
  3. Imputer de manglende værdier i kolonnen 'sex' ved hjælp af imputer-objektet.

Løsning

Fremragende! Vi har håndteret problemet med manglende værdier i vores datasæt. Vi fjernede rækkerne med mere end én null og imputerede kolonnen 'sex' med den mest hyppige værdi – MALE.

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

close

Awesome!

Completion rate improved to 3.13
Sektion 2. Kapitel 4
single

single

some-alt