Oversamplingstechnieken
Veeg om het menu te tonen
Oversampling is een techniek die wordt gebruikt om het probleem van onevenwichtige datasets aan te pakken, vooral wanneer één klasse (de minderheidsklasse) aanzienlijk minder voorbeelden heeft dan andere. Door de vertegenwoordiging van de minderheidsklasse te vergroten, kunnen machine learning-modellen effectiever leren van alle klassen, wat vaak resulteert in betere voorspellende prestaties en eerlijkere uitkomsten. Het meest voorkomende voordeel van oversampling is dat het de klassenverdeling in balans brengt, waardoor algoritmen vooringenomenheid richting de meerderheidklasse vermijden. Oversampling kan echter ook enkele nadelen hebben. Als je simpelweg bestaande voorbeelden dupliceert, kan je model overfitten, waarbij het patronen leert die te specifiek zijn voor de gedupliceerde data en niet goed generaliseert naar nieuwe data. Daarnaast kan oversampling de omvang van je dataset vergroten, wat kan leiden tot langere trainingstijden en een hogere rekencapaciteit.
1234567891011121314151617181920212223242526272829303132import pandas as pd # Create a sample DataFrame with an imbalanced target data = { "feature1": [1, 2, 3, 4, 5, 6, 7], "target": ["A", "A", "A", "A", "B", "B", "B"] } df = pd.DataFrame(data) # Count original class distribution print("Original class distribution:") print(df["target"].value_counts()) # Oversample minority class "B" to match majority class "A" majority_count = df["target"].value_counts().max() minority_class = df["target"].value_counts().idxmin() # Get all minority class rows minority_rows = df[df["target"] == minority_class] # Calculate how many samples to add samples_to_add = majority_count - len(minority_rows) # Sample with replacement from minority class oversampled_minority = minority_rows.sample(n=samples_to_add, replace=True, random_state=42) # Concatenate original data with new samples df_oversampled = pd.concat([df, oversampled_minority], ignore_index=True) # Show new class distribution print("\nClass distribution after oversampling:") print(df_oversampled["target"].value_counts())
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.