Umgang mit Duplikaten und Ausreißern
Bei der Arbeit mit realen Datensätzen treten häufig doppelte Einträge und Ausreißer auf. Beide können die Datenanalyse und die Leistung von Machine-Learning-Modellen erheblich beeinflussen. Duplikate können die Bedeutung bestimmter Muster künstlich erhöhen und zu verzerrten Ergebnissen führen, während Ausreißer statistische Zusammenfassungen und Modellvorhersagen verfälschen können. Die korrekte Identifikation und Behandlung dieser Probleme ist ein zentraler Bestandteil der Datenbereinigung.
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))
Ausreißer sind Datenpunkte, die erheblich von der Mehrheit eines Datensatzes abweichen. Gängige Methoden zur Erkennung von Ausreißern umfassen Visualisierungen (wie Boxplots), statistische Kennzahlen (wie den Z-score) und die Interquartilsabstand- (IQR-) Methode.
Z-Score und Interquartilsabstand (IQR) sind zwei gängige statistische Kennzahlen zur Identifikation von Ausreißern in einem Datensatz:
- Z-Score:
- Misst, wie viele Standardabweichungen ein Datenpunkt vom Mittelwert entfernt ist;
- Ein Z-Score wird mit der Formel berechnet:
(Wert - Mittelwert) / Standardabweichung; - Datenpunkte mit einem Z-Score größer als 3 oder kleiner als -3 werden häufig als Ausreißer betrachtet, da sie weit vom Durchschnittswert entfernt sind.
- Interquartilsabstand (IQR):
- Gibt den Bereich zwischen dem ersten Quartil (Q1, 25. Perzentil) und dem dritten Quartil (Q3, 75. Perzentil) an;
- Der IQR wird als
Q3 - Q1berechnet; - Ausreißer sind typischerweise Datenpunkte unterhalb von
Q1 - 1,5 * IQRoder oberhalb vonQ3 + 1,5 * IQR, was bedeutet, dass sie außerhalb der typischen Streuung der zentralen 50 % der Daten liegen.
Beide Methoden helfen dabei, zu messen, wie stark Werte vom erwarteten Bereich abweichen. Der Z-Score konzentriert sich auf die Entfernung vom Mittelwert, während der IQR Werte außerhalb des zentralen Bereichs des Datensatzes identifiziert.
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"]])
Beim Umgang mit Ausreißern besteht die Möglichkeit, diese zu entfernen oder zu transformieren (zum Beispiel durch Begrenzung extremer Werte oder Anwendung einer log-Transformation). Die beste Vorgehensweise hängt von Ihrem Datensatz und den Zielen Ihrer Analyse ab.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 8.33
Umgang mit Duplikaten und Ausreißern
Swipe um das Menü anzuzeigen
Bei der Arbeit mit realen Datensätzen treten häufig doppelte Einträge und Ausreißer auf. Beide können die Datenanalyse und die Leistung von Machine-Learning-Modellen erheblich beeinflussen. Duplikate können die Bedeutung bestimmter Muster künstlich erhöhen und zu verzerrten Ergebnissen führen, während Ausreißer statistische Zusammenfassungen und Modellvorhersagen verfälschen können. Die korrekte Identifikation und Behandlung dieser Probleme ist ein zentraler Bestandteil der Datenbereinigung.
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))
Ausreißer sind Datenpunkte, die erheblich von der Mehrheit eines Datensatzes abweichen. Gängige Methoden zur Erkennung von Ausreißern umfassen Visualisierungen (wie Boxplots), statistische Kennzahlen (wie den Z-score) und die Interquartilsabstand- (IQR-) Methode.
Z-Score und Interquartilsabstand (IQR) sind zwei gängige statistische Kennzahlen zur Identifikation von Ausreißern in einem Datensatz:
- Z-Score:
- Misst, wie viele Standardabweichungen ein Datenpunkt vom Mittelwert entfernt ist;
- Ein Z-Score wird mit der Formel berechnet:
(Wert - Mittelwert) / Standardabweichung; - Datenpunkte mit einem Z-Score größer als 3 oder kleiner als -3 werden häufig als Ausreißer betrachtet, da sie weit vom Durchschnittswert entfernt sind.
- Interquartilsabstand (IQR):
- Gibt den Bereich zwischen dem ersten Quartil (Q1, 25. Perzentil) und dem dritten Quartil (Q3, 75. Perzentil) an;
- Der IQR wird als
Q3 - Q1berechnet; - Ausreißer sind typischerweise Datenpunkte unterhalb von
Q1 - 1,5 * IQRoder oberhalb vonQ3 + 1,5 * IQR, was bedeutet, dass sie außerhalb der typischen Streuung der zentralen 50 % der Daten liegen.
Beide Methoden helfen dabei, zu messen, wie stark Werte vom erwarteten Bereich abweichen. Der Z-Score konzentriert sich auf die Entfernung vom Mittelwert, während der IQR Werte außerhalb des zentralen Bereichs des Datensatzes identifiziert.
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"]])
Beim Umgang mit Ausreißern besteht die Möglichkeit, diese zu entfernen oder zu transformieren (zum Beispiel durch Begrenzung extremer Werte oder Anwendung einer log-Transformation). Die beste Vorgehensweise hängt von Ihrem Datensatz und den Zielen Ihrer Analyse ab.
Danke für Ihr Feedback!