Omgaan met Duplicaten en Uitschieters
Bij het werken met echte datasets komt u vaak dubbele records en uitschieters tegen. Beide kunnen een aanzienlijke invloed hebben op uw data-analyse en de prestaties van uw machine learning-modellen. Duplicaten kunnen het belang van bepaalde patronen kunstmatig vergroten, wat leidt tot bevooroordeelde resultaten, terwijl uitschieters statistische samenvattingen en modelvoorspellingen kunnen verstoren. Het correct identificeren en behandelen van deze kwesties is een essentieel onderdeel van het opschonen van data.
1234567891011121314151617import pandas as pd import seaborn as sns # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Find duplicate rows in the Titanic dataset duplicates = df.duplicated() print("Duplicate row indicators:") print(duplicates.value_counts()) # Show how many duplicates exist # Remove duplicate rows df_no_duplicates = df.drop_duplicates() print("\nNumber of rows before removing duplicates:") print(len(df)) print("Number of rows after removing duplicates:") print(len(df_no_duplicates))
Uitschieters zijn datapunten die aanzienlijk afwijken van de meerderheid van een dataset. Veelgebruikte methoden om uitschieters te detecteren zijn visualisaties (zoals boxplots), statistische maten (zoals Z-score), en de interkwartielafstand (IQR)-methode.
Z-score en interkwartielafstand (IQR) zijn twee veelgebruikte statistische maten om uitschieters in een dataset te identificeren:
- Z-score:
- Meet hoeveel standaarddeviaties een datapunt van het gemiddelde afligt;
- Een Z-score wordt berekend met de formule:
(waarde - gemiddelde) / standaarddeviatie; - Datapunten met een Z-score groter dan 3 of kleiner dan -3 worden vaak als uitschieter beschouwd, omdat ze ver van de gemiddelde waarde liggen.
- Interkwartielafstand (IQR):
- Geeft het bereik weer tussen het eerste kwartiel (Q1, 25e percentiel) en het derde kwartiel (Q3, 75e percentiel);
- De IQR wordt berekend als
Q3 - Q1; - Uitschieters worden doorgaans gedefinieerd als datapunten onder
Q1 - 1.5 * IQRof bovenQ3 + 1.5 * IQR, wat betekent dat ze buiten de typische spreiding van de centrale 50% van de data vallen.
Beide methoden helpen bij het meten van de afwijking van waarden ten opzichte van het verwachte bereik. Z-score richt zich op de afstand tot het gemiddelde, terwijl IQR waarden buiten het centrale deel van de dataset identificeert.
12345678910111213141516171819202122import seaborn as sns import pandas as pd # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Drop rows with missing 'fare' values df_fare = df.dropna(subset=["fare"]) # Calculate Q1 and Q3 for the 'fare' column Q1 = df_fare["fare"].quantile(0.25) Q3 = df_fare["fare"].quantile(0.75) IQR = Q3 - Q1 # Define outlier bounds lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Detect outliers in 'fare' outliers = df_fare[(df_fare["fare"] < lower_bound) | (df_fare["fare"] > upper_bound)] print("Outliers detected in 'fare' using IQR method:") print(outliers[["fare"]])
Bij het omgaan met uitschieters kan ervoor gekozen worden deze te verwijderen of te transformeren (bijvoorbeeld door extreme waarden af te kappen of een log-transformatie toe te passen). De beste aanpak hangt af van de dataset en de doelstellingen van de analyse.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 8.33
Omgaan met Duplicaten en Uitschieters
Veeg om het menu te tonen
Bij het werken met echte datasets komt u vaak dubbele records en uitschieters tegen. Beide kunnen een aanzienlijke invloed hebben op uw data-analyse en de prestaties van uw machine learning-modellen. Duplicaten kunnen het belang van bepaalde patronen kunstmatig vergroten, wat leidt tot bevooroordeelde resultaten, terwijl uitschieters statistische samenvattingen en modelvoorspellingen kunnen verstoren. Het correct identificeren en behandelen van deze kwesties is een essentieel onderdeel van het opschonen van data.
1234567891011121314151617import pandas as pd import seaborn as sns # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Find duplicate rows in the Titanic dataset duplicates = df.duplicated() print("Duplicate row indicators:") print(duplicates.value_counts()) # Show how many duplicates exist # Remove duplicate rows df_no_duplicates = df.drop_duplicates() print("\nNumber of rows before removing duplicates:") print(len(df)) print("Number of rows after removing duplicates:") print(len(df_no_duplicates))
Uitschieters zijn datapunten die aanzienlijk afwijken van de meerderheid van een dataset. Veelgebruikte methoden om uitschieters te detecteren zijn visualisaties (zoals boxplots), statistische maten (zoals Z-score), en de interkwartielafstand (IQR)-methode.
Z-score en interkwartielafstand (IQR) zijn twee veelgebruikte statistische maten om uitschieters in een dataset te identificeren:
- Z-score:
- Meet hoeveel standaarddeviaties een datapunt van het gemiddelde afligt;
- Een Z-score wordt berekend met de formule:
(waarde - gemiddelde) / standaarddeviatie; - Datapunten met een Z-score groter dan 3 of kleiner dan -3 worden vaak als uitschieter beschouwd, omdat ze ver van de gemiddelde waarde liggen.
- Interkwartielafstand (IQR):
- Geeft het bereik weer tussen het eerste kwartiel (Q1, 25e percentiel) en het derde kwartiel (Q3, 75e percentiel);
- De IQR wordt berekend als
Q3 - Q1; - Uitschieters worden doorgaans gedefinieerd als datapunten onder
Q1 - 1.5 * IQRof bovenQ3 + 1.5 * IQR, wat betekent dat ze buiten de typische spreiding van de centrale 50% van de data vallen.
Beide methoden helpen bij het meten van de afwijking van waarden ten opzichte van het verwachte bereik. Z-score richt zich op de afstand tot het gemiddelde, terwijl IQR waarden buiten het centrale deel van de dataset identificeert.
12345678910111213141516171819202122import seaborn as sns import pandas as pd # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Drop rows with missing 'fare' values df_fare = df.dropna(subset=["fare"]) # Calculate Q1 and Q3 for the 'fare' column Q1 = df_fare["fare"].quantile(0.25) Q3 = df_fare["fare"].quantile(0.75) IQR = Q3 - Q1 # Define outlier bounds lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Detect outliers in 'fare' outliers = df_fare[(df_fare["fare"] < lower_bound) | (df_fare["fare"] > upper_bound)] print("Outliers detected in 'fare' using IQR method:") print(outliers[["fare"]])
Bij het omgaan met uitschieters kan ervoor gekozen worden deze te verwijderen of te transformeren (bijvoorbeeld door extreme waarden af te kappen of een log-transformatie toe te passen). De beste aanpak hangt af van de dataset en de doelstellingen van de analyse.
Bedankt voor je feedback!