Prestazioni statistiche di XGBoost nel set di test di screening del modelloCiao,
Sto utilizzando lo screening del modello e la convalida incrociata nidificata per confrontare diversi modelli di apprendimento automatico (ML) per la classificazione di una malattia. XGBoost ha le prestazioni migliori in tutti i test per ROC-AUC e tasso di errata classificazione. Tuttavia, quando voglio analizzare più in dettaglio altre statistiche eseguendo l'analisi della soglia decisionale, ottengo tutte le prestazioni (punteggi F1, MCC, Sens, Spec? ecc.) per tutti gli altri modelli, ma non per XGBoost nel set di test. Perché? Voglio riportare anche queste statistiche. Avete qualche suggerimento su come ottenere queste statistiche anche per i test nel modello XGBoost?
saluti,
Lunedi
Analisi e modellazione dei dati di baseModellazione predittiva e apprendimento automaticoRe: Prestazioni statistiche di XGBoost nel set di test di screening del modelloCiao @Lu ,
Solo per chiarire, le regolazioni delle soglie decisionali dovrebbero essere effettuate sul set di convalida, non sul set di test.
Ecco alcuni promemoria sui termini utilizzati e sul loro utilizzo:
- Set di addestramento : Utilizzato per l'addestramento effettivo del/i modello/i,
- Set di convalida : Utilizzato per l'ottimizzazione del modello (ottimizzazione fine degli iperparametri, selezione delle caratteristiche/soglie, ... ad esempio) e selezione del modello,
- Set di prova : Utilizzato per la generalizzazione e la valutazione delle prestazioni predittive del modello selezionato su dati nuovi/non visti.
Lo scopo del set di convalida è quello di aiutare a confrontare e selezionare un modello, nonché a perfezionare gli iperparametri o le soglie decisionali.
Il set di test non deve essere utilizzato in alcun modo durante l'addestramento e la messa a punto del modello, in quanto funge da "validazione" finale imparziale del modello e da valutazione finale delle sue prestazioni.
Puoi leggere di più sulla distinzione tra set di convalida e set di test nelle seguenti conversazioni:
Se nell'output vengono visualizzati i risultati di "Addestramento" e "Convalida" anche quando applichiamo il modello ai dati di test e ai dati di addestramento separatamente in JMP Pro, cosa fare per ottenere i risultati solo dei dati di test e di addestramento? CONVALIDA INCROCIATA - METODO DELLA COLONNA DI CONVALIDA
...
Per quanto riguarda la tua domanda specifica, se non sbaglio, XGBoost è disponibile solo per la versione JMP Pro tramite un componente aggiuntivo creato da @russ_wolfinger , quindi poiché si tratta di una funzionalità aggiunta tramite un componente aggiuntivo, tutte le opzioni di ottimizzazione del modello potrebbero non essere disponibili (come la soglia di decisione). Puoi creare un desiderio nella lista dei desideri di JMP o scrivere un commento su questa situazione nella pagina dedicata al componente aggiuntivo XGBoost .
Tuttavia, se XGBoost è il modello più performante, potresti:
- Separa innanzitutto il set di test dai dati di training/validazione! In questo modo, i dati di test non vengono visualizzati dal modello in nessuna fase e puoi utilizzarli solo quando il modello ha fissato gli iperparametri e la soglia di decisione.
- Crea una colonna di convalida K-fold sul tuo set di dati di addestramento/validazione.
- Avvia la piattaforma XGBoost (dal menu del componente aggiuntivo), specifica la convalida della colonna K-fold:

- Esegui l'addestramento XGBoost e regola la soglia di decisione sul set di convalida:

- Salva la formula di previsione e valuta le prestazioni sul set di test.
Spero che questa risposta ti sia d'aiuto,
Re: Prestazioni statistiche di XGBoost nel set di test di screening del modelloGrazie per l'eccellente risposta @Victor_G
@Lu , volevo segnalare che per il Model Screening abbiamo risolto un problema di leak nella versione 19, ora disponibile tramite Early Adopter e che entrerà in produzione tra qualche settimana. Suggerisco di rieseguire con la versione 19 non appena disponibile. Credo che i risultati del test XGBoost dovrebbero essere presenti e, come suggerisce acutamente @Victor_G , usate sempre la suddivisione del set di test per confrontare i modelli.
Nota: XGBoost e Torch si differenziano dalle altre piattaforme JMP in quanto utilizzano solo suddivisioni bidirezionali (addestramento e convalida), ma non visualizzano la suddivisione di convalida durante l'addestramento, quindi i risultati di convalida sono privi di perdite. La loro configurazione è progettata per la convalida incrociata K-Fold completa e per il salvataggio delle previsioni out-of-fold, anziché eseguire una singola suddivisione a tre vie.
Un paio di suggerimenti aggiuntivi:
1. Prova l'opzione Autotune in XGBoost, utilizzando la configurazione autonoma descritta da @Victor_G . (Con il componente aggiuntivo è disponibile anche l'utilità Make K-Fold Columns). Probabilmente otterrai prestazioni out-of-fold ancora migliori.
2. Anche le reti neurali Torch Deep Learning meritano sicuramente di essere provate a scopo di confronto e, per ottenere le massime prestazioni, abbinatele a XGBoost.
Re: Prestazioni statistiche di XGBoost nel set di test di screening del modelloGrazie per l'eccellente risposta, Victor e Ross. Non vedo l'ora di scoprire le novità che la piattaforma di Model Screening porterà con sé nella versione 19 nel prossimo futuro!
Saluti,
Gioco