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

bookHantering av Saknade Värden

Endast ett begränsat antal maskininlärningsmodeller kan hantera saknade värden, så datasettet måste kontrolleras för att säkerställa att inga luckor finns kvar. Om saknade värden förekommer kan de hanteras på två sätt:

  • Ta bort rader som innehåller saknade värden;
  • Fylla tomma celler med ersättningsvärden, en process som kallas imputering.

Identifiera saknade värden

För att visa allmän information om datasettet och kontrollera efter saknade värden kan du använda .info()-metoden för 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 poster, men kolumnerna 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' och 'sex' innehåller färre än 344 icke-nollvärden, vilket indikerar förekomst av saknade data.

Note
Notera

Null är ett annat namn för saknade värden.

För att identifiera antalet saknade värden i varje kolumn, använd metoden .isna() och därefter .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 innehåller saknade värden kan visas 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

Ta bort rader

De första och sista raderna innehåller endast målvariabeln ('species') och 'island'-värden, vilket ger för lite information för att vara användbara. Dessa rader kan tas bort genom att endast behålla de med färre än två NaN-värden och tilldela dem på nytt till 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

Till skillnad från detta innehåller de återstående raderna användbar information, där NaN-värden endast förekommer i kolumnen 'sex'. Istället för att ta bort dessa rader kan de saknade värdena imputeras. Ett vanligt tillvägagångssätt är att använda transformern SimpleImputer, vilket kommer att behandlas i nästa kapitel.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3

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

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

bookHantering av Saknade Värden

Svep för att visa menyn

Endast ett begränsat antal maskininlärningsmodeller kan hantera saknade värden, så datasettet måste kontrolleras för att säkerställa att inga luckor finns kvar. Om saknade värden förekommer kan de hanteras på två sätt:

  • Ta bort rader som innehåller saknade värden;
  • Fylla tomma celler med ersättningsvärden, en process som kallas imputering.

Identifiera saknade värden

För att visa allmän information om datasettet och kontrollera efter saknade värden kan du använda .info()-metoden för 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 poster, men kolumnerna 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' och 'sex' innehåller färre än 344 icke-nollvärden, vilket indikerar förekomst av saknade data.

Note
Notera

Null är ett annat namn för saknade värden.

För att identifiera antalet saknade värden i varje kolumn, använd metoden .isna() och därefter .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 innehåller saknade värden kan visas 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

Ta bort rader

De första och sista raderna innehåller endast målvariabeln ('species') och 'island'-värden, vilket ger för lite information för att vara användbara. Dessa rader kan tas bort genom att endast behålla de med färre än två NaN-värden och tilldela dem på nytt till 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

Till skillnad från detta innehåller de återstående raderna användbar information, där NaN-värden endast förekommer i kolumnen 'sex'. Istället för att ta bort dessa rader kan de saknade värdena imputeras. Ett vanligt tillvägagångssätt är att använda transformern SimpleImputer, vilket kommer att behandlas i nästa kapitel.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
some-alt