Untersampling-Techniken
Swipe um das Menü anzuzeigen
Beim Umgang mit großen, unausgewogenen Datensätzen tritt häufig die Situation auf, dass eine Klasse (die Mehrheitsklasse) eine andere (die Minderheitsklasse) deutlich überwiegt. Dieses Ungleichgewicht erschwert es Modellen, aussagekräftige Muster in Bezug auf die Minderheitsklasse zu erkennen, was zu einer schlechten Vorhersageleistung führt. Undersampling ist eine Technik, die dieses Problem angeht, indem die Anzahl der Stichproben in der Mehrheitsklasse reduziert wird, sodass der Datensatz ausgeglichener wird.
Undersampling sollte in Betracht gezogen werden, wenn der Datensatz zu groß für eine praktische Verarbeitung ist oder wenn die Mehrheitsklasse so stark dominiert, dass das Modell die Minderheitsklasse ignoriert. Besonders geeignet ist Undersampling, wenn ein sehr großer Datensatz vorliegt und der Verlust einiger Stichproben der Mehrheitsklasse keine wichtigen Informationen kostet. Weniger geeignet ist diese Methode, wenn der Datensatz bereits klein ist oder die Mehrheitsklasse seltene, aber wichtige Beispiele enthält.
123456789101112131415161718192021222324import pandas as pd # Create a sample imbalanced dataset data = { "feature": range(20), "class": ["majority"] * 16 + ["minority"] * 4 } df = pd.DataFrame(data) # Count the number of samples in each class class_counts = df["class"].value_counts() minority_count = class_counts["minority"] # Randomly sample from the majority class to match the minority class count majority_sample = df[df["class"] == "majority"].sample(n=minority_count, random_state=42) minority_sample = df[df["class"] == "minority"] # Combine samples to get a balanced dataset balanced_df = pd.concat([majority_sample, minority_sample]) print("Original class distribution:") print(df["class"].value_counts()) print("\nBalanced class distribution after undersampling:") print(balanced_df["class"].value_counts())
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