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årstrategyer'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': 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 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. 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.
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.
- Importer klassen
SimpleImputerfrasklearn.impute. - Opprett et
SimpleImputer-objekt med parameterenstrategysatt til'most_frequent'. - Bruk imputer på kolonnen
'sex'for å erstatte alle manglende verdier. - Oppdater kolonnen
'sex'idfDataFrame 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.
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
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årstrategyer'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': 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 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. 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.
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.
- Importer klassen
SimpleImputerfrasklearn.impute. - Opprett et
SimpleImputer-objekt med parameterenstrategysatt til'most_frequent'. - Bruk imputer på kolonnen
'sex'for å erstatte alle manglende verdier. - Oppdater kolonnen
'sex'idfDataFrame 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.
Takk for tilbakemeldingene dine!
single