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 | Grundläggande Datarensning
Datapreprocessering och Feature Engineering

bookHantering av Saknade Värden

Saknade data är vanligt i verkliga datamängder och kan påverka din analys eller dina modeller. De tre huvudsakliga typerna av saknade data är:

  • Missing Completely at Random (MCAR): saknaden är orelaterad till någon data;
  • Missing at Random (MAR): saknaden är endast relaterad till observerad data;
  • Missing Not at Random (MNAR): saknaden beror på de saknade värdena själva.

Valet av rätt strategi för att hantera saknade värden beror på typen av saknad. Bristfällig hantering kan orsaka snedvridna resultat, svagare analyser och opålitliga förutsägelser.

12345678
import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") # Find missing values in each column print("Missing values per column:") print(titanic.isnull().sum())
copy
Note
Definition

Imputation är processen att ersätta saknade värden med ersättningsvärden, såsom medelvärde, median eller typvärde, etc. Imputation hjälper till att bevara datamängdens struktur och storlek för vidare analys eller modellering.

Typer av imputationsmetoder

Olika datatyper kräver specifika imputationsstrategier för att hantera saknade värden effektivt:

  • Medelvärdesimputation: används för numeriska variabler; ersätter saknade värden med medelvärdet av observerade värden;
  • Medianimputation: används för numeriska variabler, särskilt vid snedfördelad data; ersätter saknade värden med medianen;
  • Modusimputation: används för kategoriska variabler; ersätter saknade värden med den vanligaste kategorin eller värdet;
  • Konstantvärdesimputation: används för både numeriska och kategoriska variabler; fyller saknade värden med ett fast värde såsom 0, -1 eller 'unknown';
  • Forward fill (ffill): används för tidsserier eller ordnade data; fyller luckor genom att föra vidare den senaste giltiga observationen framåt;
  • Backward fill (bfill): används för tidsserier eller ordnade data; fyller luckor bakåt med nästa giltiga observation;
  • Interpolation: används för numeriska variabler, särskilt i tidsserier; uppskattar saknade värden baserat på närliggande datapunkter med linjära eller andra matematiska metoder.

Välj den imputationsmetod som bäst passar din datatyp och analysens kontext.

123456789101112131415161718
import pandas as pd import seaborn as sns # Load Titanic dataset titanic = sns.load_dataset("titanic") # Fill missing values in 'age' (numerical) with the mean titanic['age'] = titanic['age'].fillna(titanic['age'].mean()) # Fill missing values in 'deck' (categorical) with the mode titanic['deck'] = titanic['deck'].fillna(titanic['deck'].mode()[0]) # Drop 'embarked' and 'embark_town' columns (only 2 missing values each) titanic = titanic.drop(['embarked', 'embark_town'], axis=1) # Display the number of missing values after processing print("Missing values after processing:") print(titanic.isnull().sum())
copy
Note
Notera

Att ta bort saknade värden är snabbt och enkelt, men kan leda till förlust av värdefull data, särskilt när saknade värden är utbredda. Imputation hjälper till att behålla mer data men kan introducera bias om metoden inte väljs noggrant. Överväg mängden och mönstret av saknade värden samt variabelns betydelse innan du bestämmer om du ska ta bort eller imputera.

question mark

Vilket av följande scenarier är mest lämpligt för att ta bort rader med saknade värden istället för att imputera dem?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 2

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 why you chose mean imputation for 'age' and mode for 'deck'?

What are some potential drawbacks of dropping columns with missing values?

How do I decide which imputation method is best for my dataset?

Awesome!

Completion rate improved to 8.33

bookHantering av Saknade Värden

Svep för att visa menyn

Saknade data är vanligt i verkliga datamängder och kan påverka din analys eller dina modeller. De tre huvudsakliga typerna av saknade data är:

  • Missing Completely at Random (MCAR): saknaden är orelaterad till någon data;
  • Missing at Random (MAR): saknaden är endast relaterad till observerad data;
  • Missing Not at Random (MNAR): saknaden beror på de saknade värdena själva.

Valet av rätt strategi för att hantera saknade värden beror på typen av saknad. Bristfällig hantering kan orsaka snedvridna resultat, svagare analyser och opålitliga förutsägelser.

12345678
import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") # Find missing values in each column print("Missing values per column:") print(titanic.isnull().sum())
copy
Note
Definition

Imputation är processen att ersätta saknade värden med ersättningsvärden, såsom medelvärde, median eller typvärde, etc. Imputation hjälper till att bevara datamängdens struktur och storlek för vidare analys eller modellering.

Typer av imputationsmetoder

Olika datatyper kräver specifika imputationsstrategier för att hantera saknade värden effektivt:

  • Medelvärdesimputation: används för numeriska variabler; ersätter saknade värden med medelvärdet av observerade värden;
  • Medianimputation: används för numeriska variabler, särskilt vid snedfördelad data; ersätter saknade värden med medianen;
  • Modusimputation: används för kategoriska variabler; ersätter saknade värden med den vanligaste kategorin eller värdet;
  • Konstantvärdesimputation: används för både numeriska och kategoriska variabler; fyller saknade värden med ett fast värde såsom 0, -1 eller 'unknown';
  • Forward fill (ffill): används för tidsserier eller ordnade data; fyller luckor genom att föra vidare den senaste giltiga observationen framåt;
  • Backward fill (bfill): används för tidsserier eller ordnade data; fyller luckor bakåt med nästa giltiga observation;
  • Interpolation: används för numeriska variabler, särskilt i tidsserier; uppskattar saknade värden baserat på närliggande datapunkter med linjära eller andra matematiska metoder.

Välj den imputationsmetod som bäst passar din datatyp och analysens kontext.

123456789101112131415161718
import pandas as pd import seaborn as sns # Load Titanic dataset titanic = sns.load_dataset("titanic") # Fill missing values in 'age' (numerical) with the mean titanic['age'] = titanic['age'].fillna(titanic['age'].mean()) # Fill missing values in 'deck' (categorical) with the mode titanic['deck'] = titanic['deck'].fillna(titanic['deck'].mode()[0]) # Drop 'embarked' and 'embark_town' columns (only 2 missing values each) titanic = titanic.drop(['embarked', 'embark_town'], axis=1) # Display the number of missing values after processing print("Missing values after processing:") print(titanic.isnull().sum())
copy
Note
Notera

Att ta bort saknade värden är snabbt och enkelt, men kan leda till förlust av värdefull data, särskilt när saknade värden är utbredda. Imputation hjälper till att behålla mer data men kan introducera bias om metoden inte väljs noggrant. Överväg mängden och mönstret av saknade värden samt variabelns betydelse innan du bestämmer om du ska ta bort eller imputera.

question mark

Vilket av följande scenarier är mest lämpligt för att ta bort rader med saknade värden istället för att imputera dem?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 2
some-alt