Oversamplingsmetoder
Sveip for å vise menyen
Oversampling er en teknikk som brukes for å håndtere ubalanserte datasett, spesielt når én klasse (minoritetklassen) har betydelig færre eksempler enn de andre. Ved å øke representasjonen av minoritetklassen, kan maskinlæringsmodeller lære fra alle klasser mer effektivt, noe som ofte gir bedre prediktiv ytelse og mer rettferdige resultater. Den vanligste fordelen med oversampling er at det balanserer klassefordelingen, slik at algoritmer unngår skjevhet mot majoritetsklassen. Oversampling kan imidlertid også ha noen ulemper. Hvis du bare dupliserer eksisterende eksempler, kan modellen overtilpasse seg, ved å lære mønstre som er for spesifikke for de dupliserte dataene og dermed ikke generaliserer godt til nye data. I tillegg kan oversampling øke størrelsen på datasettet, noe som kan føre til lengre treningstider og økt behov for datakraft.
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())
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår