Utfordring: 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 ernp.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årstrategy
er'constant'
. Standardverdien erNone
.
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 parameterenfill_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.
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.
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.
- Importer
SimpleImputer
. - Opprett et
SimpleImputer
-objekt med ønsketstrategy
. - Imputer de manglende verdiene i
'sex'
-kolonnen ved å brukeimputer
-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
.
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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?
Awesome!
Completion rate improved to 3.13
Utfordring: 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 ernp.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årstrategy
er'constant'
. Standardverdien erNone
.
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 parameterenfill_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.
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.
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.
- Importer
SimpleImputer
. - Opprett et
SimpleImputer
-objekt med ønsketstrategy
. - Imputer de manglende verdiene i
'sex'
-kolonnen ved å brukeimputer
-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
.
Takk for tilbakemeldingene dine!
Awesome!
Completion rate improved to 3.13single