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

Tecniche di undersampling

Scorri per mostrare il menu

Quando si lavora con grandi set di dati sbilanciati, spesso si verificano situazioni in cui una classe (la classe maggioritaria) supera di gran lunga un'altra (la classe minoritaria). Questo squilibrio può rendere difficile per i modelli apprendere schemi significativi relativi alla classe minoritaria, portando a prestazioni predittive scadenti. L'undersampling è una tecnica utilizzata per affrontare questo problema riducendo il numero di campioni nella classe maggioritaria, in modo che il set di dati risulti più bilanciato.

L'undersampling è da considerare quando il set di dati è troppo grande per essere elaborato in modo pratico o quando la classe maggioritaria domina a tal punto che il modello ignora la classe minoritaria. Tuttavia, l'undersampling è più appropriato quando si dispone di un set di dati molto ampio e si può permettere di perdere alcuni campioni della classe maggioritaria senza sacrificare informazioni importanti. È meno adatto quando il set di dati è già piccolo o la classe maggioritaria contiene esempi rari ma rilevanti.

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

Qual è un potenziale rischio dell'undersampling?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5

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 5
some-alt