Bilanciamento dei datiCiao,
Voglio bilanciare i miei dati prima di analizzarli, poiché la mia risposta ha un tasso di risposta di solo il 27%. Ho prima creato una colonna di convalida stratificata (in base alla mia colonna di destinazione) per creare un set di addestramento, convalida e test. La mia domanda è: dovrei bilanciare i miei dati sia nel set di addestramento + convalida e non nel set di test, oppure solo nel set di addestramento? Vorrei utilizzare la tecnica SMOTE e infine la tecnica di convalida incrociata della piattaforma di screening dei modelli sui database concatenati (addestramento + convalida + test) con una colonna di convalida per l'analisi delle prestazioni del set di test. Questo metodo è il modo giusto per bilanciare i miei dati prima della convalida incrociata? Altri suggerimenti sono sempre benvenuti?
Saluti,
Lunedi
Analisi e modellazione dei dati di baseModellazione predittiva e apprendimento automaticoRe: Bilanciamento dei datiCiao @Lu ,
Ho sentimenti contrastanti riguardo a SMOTE o altre tecniche di bilanciamento per la classificazione:
- SMOTE "distrugge" completamente la calibrazione del classificatore (poiché modifica completamente la proporzione delle due classi durante la fase di apprendimento), il che significa che le probabilità calcolate dal classificatore non corrispondono alle probabilità effettivamente misurate nel dataset. Questo può essere particolarmente delicato per alcune applicazioni (sanità, finanza/bancario, ...), poiché a volte potrebbero essere necessarie le probabilità calcolate al posto della classe di maggioranza finale.
- Inoltre, nell'articolo originale e confermato da studi successivi , SMOTE offre solo piccoli vantaggi quando il classificatore è un modello di apprendimento debole, come Decision Tree e Naïve Bayes. Quando utilizzato con modelli all'avanguardia/"forti" (come Random Forest, XGBoost, ...), SMOTE non offre vantaggi e potrebbe persino essere dannoso per l'apprendimento. Un altro studio qui: The Harms of Class Imbalance Corrections for Machine Learning Based Prediction Models: A Simulation Study - Carriero - 2025 - Statistics in Medicine - Wiley Online Library
Nella maggior parte degli studi, la conclusione relativa a queste tecniche è la stessa: " la previsione migliore e corretta si ottiene utilizzando un classificatore forte e il bilanciamento dei dati non è richiesto né vantaggioso " oppure " la correzione dello squilibrio di classe non è sempre necessaria e può persino essere dannosa per i modelli di previsione clinica che mirano a produrre stime di rischio affidabili su base individuale ".
- SMOTE può essere utile in contesti specifici, come con studenti con scarse capacità di apprendimento o quando non è possibile regolare le soglie decisionali, ma il suo beneficio relativo può variare anche a seconda delle metriche di performance scelte. Oltre a ciò, ne sconsiglierei l'utilizzo.
Il 27% per una classe di minoranza non rappresenta uno squilibrio significativo e metodi classici come l'adeguamento delle soglie decisionali o la specifica di una matrice di profitto dovrebbero aiutare ad adattare le prestazioni del classificatore alla situazione. L'aggiunta di nuove funzionalità/variabili, la pre-elaborazione dei dati (feature engineering) per supportare il modello, l'aggiunta di nuovi dati o la selezione delle osservazioni più rappresentative e diverse, e la sperimentazione di diversi modelli per il confronto e il benchmarking possono contribuire ad aumentare le prestazioni.
È importante comprendere che i dati sbilanciati rappresentano un problema solo perché la classe di minoranza nel training set non è sufficientemente rappresentativa e/o le caratteristiche non sono indicatori sufficientemente validi per l'etichetta. Lo scenario ideale è risolvere questi due problemi, in modo che il modello possa funzionare perfettamente nonostante lo sbilanciamento.
Detto questo, l'aggiunta di un'operazione SMOTE (o di qualsiasi pre-elaborazione) al flusso di lavoro (se necessario) deve essere eseguita con cautela, per evitare perdite di dati e aspettative di prestazioni eccessivamente ottimistiche. SMOTE o qualsiasi altra tecnica di bilanciamento dovrebbe essere applicata nei set di addestramento e convalida (per addestrare, confrontare e selezionare il modello più performante), ma ovviamente non nel set di test, poiché il modello deve funzionare ed essere valutato in condizioni "reali" (con il grave squilibrio).
Spero che questa risposta ti sia d'aiuto,
Re: Bilanciamento dei datiGrazie per i tuoi chiari consigli, Victor.
Per il momento, ho verificato le prestazioni dei miei modelli utilizzando i componenti aggiuntivi "Inbalanced Classification" e ho calcolato il Precision Recall e l'AUC ROC per i modelli di reti neurali, Bootstrap Forest e Boosted Tree con SMOTE e con bilanciamento TOMEC e senza ponderazione, ma non ho riscontrato alcun miglioramento nelle AUC. Quindi, bilanciare i miei dati probabilmente non migliorerebbe comunque le prestazioni.
Grazie per il vostro supporto,
Saluti
Lunedi
Re: Bilanciamento dei datiCiao Russ,
Ho una colonna "Convalida" che distingue tra righe di training, convalida e test. Questa colonna dovrebbe essere specificata nella piattaforma di screening del modello quando si applica la convalida incrociata nidificata? Ho notato che il riepilogo delle statistiche sulle prestazioni varia a seconda che questa colonna sia inclusa o meno.
Potresti confermare quale sarebbe l'approccio consigliato in questo caso?
Vorrei confrontare e segnalare le prestazioni dei modelli ML.
Esiste un modo rapido per ottenere maggiori dettagli rispetto al rapporto riassuntivo attualmente prodotto, come F1, MCC, Sens, Spec, FP, FN, ...
saluti,
Lunedi
Re: Bilanciamento dei datiCiao @Lu ,
Se hai selezionato un'opzione di convalida incrociata durante l'avvio della piattaforma Model Screening, l'aggiunta di una colonna di convalida non cambierà nulla, poiché l'opzione di convalida incrociata selezionata prenderà il sopravvento sulla colonna di convalida: Avvia la piattaforma Model Screening (parte di convalida).
I diversi risultati che potresti ottenere sono dovuti in gran parte al seme casuale, se non lo hai corretto. Aggiungere o meno una colonna di convalida quando è selezionata un'opzione di convalida incrociata porterà agli stessi risultati con un seme casuale fisso:

Per quanto riguarda l'argomento (ampio) della valutazione, del confronto e della selezione dei modelli, diversi altri argomenti possono aiutarti a trovare una strategia di convalida pertinente:
Come eseguire la convalida incrociata k-fold sui modelli ML (ad esempio reti neurali e foreste casuali) e verificare le prestazioni del modello su dati di test fissi? screening del modello
Una o più colonne di convalida
convalida incrociata utilizzando la qualità di adattamento k-fold
metodi di convalida incrociata leave-one-out o k-fold?
CONVALIDA INCROCIATA - METODO DELLA COLONNA DI CONVALIDA
Spero che questa risposta ti sia d'aiuto,