Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Imputera Saknade Värden | Förbehandling av Data med Scikit-learn
ML-introduktion Med Scikit-learn

bookUtmaning: Imputera Saknade Värden

Klassen SimpleImputer är utformad för att hantera saknade data genom att automatiskt ersätta saknade värden.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Vid initiering kan den även anpassas genom att ställa in dess parametrar:

  • missing_value: anger platshållaren för de saknade värdena. Som standard är detta np.nan;
  • strategy: strategin som används för att imputera saknade värden. 'mean' är standardvärdet;
  • fill_value: anger värdet som ska användas för att fylla saknade värden när strategy är 'constant'. Som standard är detta None.

Som en transformer har den följande metoder:

Det är också nödvändigt att bestämma vilka värden som ska användas för imputering.

Ett vanligt tillvägagångssätt är att ersätta saknade numeriska värden med medelvärdet och saknade kategoriska värden med typvärdet (det mest frekventa värdet), eftersom detta minimalt förvränger datafördelningen.

Valet styrs av parametern strategy:

  • strategy='mean': imputera med medelvärdet för varje kolumn;
  • strategy='median': imputera med medianen för varje kolumn;
  • strategy='most_frequent': imputera med typvärdet för varje kolumn;
  • strategy='constant': imputera med ett konstant värde som anges i parametern fill_value.

Parametern missing_values definierar vilka värden som behandlas som saknade. Som standard är detta NaN, men i vissa dataset kan det vara en tom sträng '' eller en annan platshållare.

Note
Notera

SimpleImputer och många andra transformatorer fungerar endast med DataFrames, inte med pandas Series. Om du väljer en enskild kolumn från en DataFrame med df['column'] returneras en Series. För att undvika detta kan du använda dubbla hakparenteser df[['column']] för att säkerställa att det returneras en DataFrame istället:

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

När metoden .fit_transform() från SimpleImputer används returnerar den en 2D-array. För att tilldela värden till en enskild kolumn i en pandas DataFrame krävs en 1D-array (eller Series).

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

Metoden .ravel() kan användas för att platta ut arrayen till 1D innan tilldelning:

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

Detta säkerställer att de imputerade värdena är korrekt formaterade och lagras i DataFrame-kolumnen.

Uppgift

Swipe to start coding

Imputera de saknade värdena i kolumnen 'sex' med hjälp av SimpleImputer. Eftersom detta är en kategorisk kolumn, ersätt NaN-värden med det mest frekventa värdet.

  1. Importera SimpleImputer.
  2. Skapa ett SimpleImputer-objekt med önskad strategy.
  3. Imputera de saknade värdena i kolumnen 'sex' med hjälp av imputer-objektet.

Lösning

Utmärkt! Vi har hanterat problemet med saknade värden i vår datamängd. Vi tog bort rader med mer än en null och imputerade kolumnen 'sex' med det mest frekventa värdet – MALE.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 3.13

bookUtmaning: Imputera Saknade Värden

Svep för att visa menyn

Klassen SimpleImputer är utformad för att hantera saknade data genom att automatiskt ersätta saknade värden.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Vid initiering kan den även anpassas genom att ställa in dess parametrar:

  • missing_value: anger platshållaren för de saknade värdena. Som standard är detta np.nan;
  • strategy: strategin som används för att imputera saknade värden. 'mean' är standardvärdet;
  • fill_value: anger värdet som ska användas för att fylla saknade värden när strategy är 'constant'. Som standard är detta None.

Som en transformer har den följande metoder:

Det är också nödvändigt att bestämma vilka värden som ska användas för imputering.

Ett vanligt tillvägagångssätt är att ersätta saknade numeriska värden med medelvärdet och saknade kategoriska värden med typvärdet (det mest frekventa värdet), eftersom detta minimalt förvränger datafördelningen.

Valet styrs av parametern strategy:

  • strategy='mean': imputera med medelvärdet för varje kolumn;
  • strategy='median': imputera med medianen för varje kolumn;
  • strategy='most_frequent': imputera med typvärdet för varje kolumn;
  • strategy='constant': imputera med ett konstant värde som anges i parametern fill_value.

Parametern missing_values definierar vilka värden som behandlas som saknade. Som standard är detta NaN, men i vissa dataset kan det vara en tom sträng '' eller en annan platshållare.

Note
Notera

SimpleImputer och många andra transformatorer fungerar endast med DataFrames, inte med pandas Series. Om du väljer en enskild kolumn från en DataFrame med df['column'] returneras en Series. För att undvika detta kan du använda dubbla hakparenteser df[['column']] för att säkerställa att det returneras en DataFrame istället:

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

När metoden .fit_transform() från SimpleImputer används returnerar den en 2D-array. För att tilldela värden till en enskild kolumn i en pandas DataFrame krävs en 1D-array (eller Series).

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

Metoden .ravel() kan användas för att platta ut arrayen till 1D innan tilldelning:

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

Detta säkerställer att de imputerade värdena är korrekt formaterade och lagras i DataFrame-kolumnen.

Uppgift

Swipe to start coding

Imputera de saknade värdena i kolumnen 'sex' med hjälp av SimpleImputer. Eftersom detta är en kategorisk kolumn, ersätt NaN-värden med det mest frekventa värdet.

  1. Importera SimpleImputer.
  2. Skapa ett SimpleImputer-objekt med önskad strategy.
  3. Imputera de saknade värdena i kolumnen 'sex' med hjälp av imputer-objektet.

Lösning

Utmärkt! Vi har hanterat problemet med saknade värden i vår datamängd. Vi tog bort rader med mer än en null och imputerade kolumnen 'sex' med det mest frekventa värdet – MALE.

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

close

Awesome!

Completion rate improved to 3.13
Avsnitt 2. Kapitel 4
single

single

some-alt