Hantering av Dubbletter och Avvikare
Vid arbete med verkliga datamängder stöter du ofta på dubblettposter och avvikare. Båda kan ha stor påverkan på din dataanalys och prestandan hos dina maskininlärningsmodeller. Dubbletter kan konstgjort förstärka betydelsen av vissa mönster, vilket leder till snedvridna resultat, medan avvikare kan förvränga statistiska sammanfattningar och modellprognoser. Att korrekt identifiera och hantera dessa problem är en grundläggande del av datarensning.
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))
Avvikare är datapunkter som avviker avsevärt från majoriteten av en datamängd. Vanliga metoder för att upptäcka avvikare inkluderar visualiseringar (såsom lådagram), statistiska mått (som Z-score) och interkvartilavståndet (IQR)-metoden.
Z-score och interkvartilavstånd (IQR) är två vanliga statistiska mått som används för att identifiera avvikare i en datamängd:
- Z-score:
- Mäter hur många standardavvikelser en datapunkt ligger från medelvärdet;
- Ett Z-score beräknas med formeln:
(value - mean) / standard deviation; - Datapunkter med Z-score större än 3 eller mindre än -3 betraktas ofta som avvikare, eftersom de ligger långt från medelvärdet.
- Interkvartilavstånd (IQR):
- Representerar intervallet mellan första kvartilen (Q1, 25:e percentilen) och tredje kvartilen (Q3, 75:e percentilen);
- IQR beräknas som
Q3 - Q1; - Avvikare definieras typiskt som datapunkter under
Q1 - 1.5 * IQReller överQ3 + 1.5 * IQR, vilket innebär att de ligger utanför det typiska spannet för de centrala 50 % av datan.
Båda metoderna hjälper till att mäta hur långt värden avviker från det förväntade intervallet. Z-score fokuserar på avståndet från medelvärdet, medan IQR identifierar värden utanför den centrala delen av datamängden.
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"]])
Vid hantering av avvikare kan du välja att ta bort dem eller transformera dem (till exempel genom att begränsa extrema värden eller använda en log-transformation). Den bästa metoden beror på din datamängd och syftet med din analys.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain how to handle the outliers once they are detected?
What are some other methods for detecting outliers besides IQR and Z-score?
Can you show how to use the Z-score method to detect outliers in the Titanic dataset?
Awesome!
Completion rate improved to 8.33
Hantering av Dubbletter och Avvikare
Svep för att visa menyn
Vid arbete med verkliga datamängder stöter du ofta på dubblettposter och avvikare. Båda kan ha stor påverkan på din dataanalys och prestandan hos dina maskininlärningsmodeller. Dubbletter kan konstgjort förstärka betydelsen av vissa mönster, vilket leder till snedvridna resultat, medan avvikare kan förvränga statistiska sammanfattningar och modellprognoser. Att korrekt identifiera och hantera dessa problem är en grundläggande del av datarensning.
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))
Avvikare är datapunkter som avviker avsevärt från majoriteten av en datamängd. Vanliga metoder för att upptäcka avvikare inkluderar visualiseringar (såsom lådagram), statistiska mått (som Z-score) och interkvartilavståndet (IQR)-metoden.
Z-score och interkvartilavstånd (IQR) är två vanliga statistiska mått som används för att identifiera avvikare i en datamängd:
- Z-score:
- Mäter hur många standardavvikelser en datapunkt ligger från medelvärdet;
- Ett Z-score beräknas med formeln:
(value - mean) / standard deviation; - Datapunkter med Z-score större än 3 eller mindre än -3 betraktas ofta som avvikare, eftersom de ligger långt från medelvärdet.
- Interkvartilavstånd (IQR):
- Representerar intervallet mellan första kvartilen (Q1, 25:e percentilen) och tredje kvartilen (Q3, 75:e percentilen);
- IQR beräknas som
Q3 - Q1; - Avvikare definieras typiskt som datapunkter under
Q1 - 1.5 * IQReller överQ3 + 1.5 * IQR, vilket innebär att de ligger utanför det typiska spannet för de centrala 50 % av datan.
Båda metoderna hjälper till att mäta hur långt värden avviker från det förväntade intervallet. Z-score fokuserar på avståndet från medelvärdet, medan IQR identifierar värden utanför den centrala delen av datamängden.
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"]])
Vid hantering av avvikare kan du välja att ta bort dem eller transformera dem (till exempel genom att begränsa extrema värden eller använda en log-transformation). Den bästa metoden beror på din datamängd och syftet med din analys.
Tack för dina kommentarer!