Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering av Manglende Verdier | Forbehandling av Data med Scikit-learn
ML-Introduksjon med Scikit-learn

bookHåndtering av Manglende Verdier

Kun et begrenset antall maskinlæringsmodeller kan håndtere manglende verdier, så datasettet må kontrolleres for å sikre at det ikke finnes noen hull. Hvis manglende verdier er til stede, kan de håndteres på to måter:

  • Fjerne rader som inneholder manglende verdier;
  • Fylle tomme celler med erstatningsverdier, en prosess kjent som imputering.

Identifisere manglende verdier

For å vise generell informasjon om datasettet og sjekke etter manglende verdier, kan du bruke .info()-metoden til en DataFrame.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
copy

Datasettet har 344 oppføringer, men kolonnene 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' og 'sex' inneholder hver færre enn 344 ikke-null verdier, noe som indikerer at det finnes manglende data.

Note
Merk

Null er et annet navn for manglende verdier.

For å identifisere antall manglende verdier i hver kolonne, bruk .isna()-metoden og deretter .sum().

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
copy

Rader som inneholder manglende verdier kan vises med: df[df.isna().any(axis=1)]

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
copy

Fjerning av rader

De første og siste radene inneholder kun målvariabelen ('species') og 'island'-verdier, og gir for lite informasjon til å være nyttige. Disse radene kan fjernes ved å beholde kun de med færre enn to NaN-verdier og tilordne dem på nytt til df.

123456
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
copy

Til sammenligning inneholder de gjenværende radene nyttig informasjon, med NaN-verdier kun i 'sex'-kolonnen. I stedet for å fjerne disse radene, kan de manglende verdiene imputeres. En vanlig tilnærming er å bruke SimpleImputer-transformatoren, som vil bli gjennomgått i neste kapittel.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3

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

Suggested prompts:

Can you explain more about how imputing works?

What are some other ways to handle missing values besides removing or imputing?

Why is it important to handle missing values before training a machine learning model?

Awesome!

Completion rate improved to 3.13

bookHåndtering av Manglende Verdier

Sveip for å vise menyen

Kun et begrenset antall maskinlæringsmodeller kan håndtere manglende verdier, så datasettet må kontrolleres for å sikre at det ikke finnes noen hull. Hvis manglende verdier er til stede, kan de håndteres på to måter:

  • Fjerne rader som inneholder manglende verdier;
  • Fylle tomme celler med erstatningsverdier, en prosess kjent som imputering.

Identifisere manglende verdier

For å vise generell informasjon om datasettet og sjekke etter manglende verdier, kan du bruke .info()-metoden til en DataFrame.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
copy

Datasettet har 344 oppføringer, men kolonnene 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' og 'sex' inneholder hver færre enn 344 ikke-null verdier, noe som indikerer at det finnes manglende data.

Note
Merk

Null er et annet navn for manglende verdier.

For å identifisere antall manglende verdier i hver kolonne, bruk .isna()-metoden og deretter .sum().

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
copy

Rader som inneholder manglende verdier kan vises med: df[df.isna().any(axis=1)]

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
copy

Fjerning av rader

De første og siste radene inneholder kun målvariabelen ('species') og 'island'-verdier, og gir for lite informasjon til å være nyttige. Disse radene kan fjernes ved å beholde kun de med færre enn to NaN-verdier og tilordne dem på nytt til df.

123456
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
copy

Til sammenligning inneholder de gjenværende radene nyttig informasjon, med NaN-verdier kun i 'sex'-kolonnen. I stedet for å fjerne disse radene, kan de manglende verdiene imputeres. En vanlig tilnærming er å bruke SimpleImputer-transformatoren, som vil bli gjennomgått i neste kapittel.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3
some-alt