Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Tecniche di oversampling | Tecniche di campionamento per grandi dati
Gestione di Grandi Dati con Python

Tecniche di oversampling

Scorri per mostrare il menu

L'oversampling è una tecnica utilizzata per affrontare il problema dei dataset sbilanciati, soprattutto quando una classe (la classe minoritaria) ha un numero significativamente inferiore di campioni rispetto alle altre. Aumentando la rappresentazione della classe minoritaria, si consente ai modelli di machine learning di apprendere in modo più efficace da tutte le classi, ottenendo spesso prestazioni predittive migliori e risultati più equi. Il vantaggio più comune dell'oversampling è che bilancia la distribuzione delle classi, permettendo agli algoritmi di evitare bias verso la classe maggioritaria. Tuttavia, l'oversampling può anche introdurre alcune criticità. Se si duplicano semplicemente i campioni esistenti, il modello può andare incontro a overfitting, imparando schemi troppo specifici ai dati duplicati e non riuscendo a generalizzare su nuovi dati. Inoltre, l'oversampling può aumentare la dimensione del dataset, portando a tempi di addestramento più lunghi e a maggiori richieste computazionali.

1234567891011121314151617181920212223242526272829303132
import 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())
question mark

Qual è l'obiettivo principale dell'oversampling?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 2. Capitolo 3
some-alt