Esiste un modo per effettuare la convalida incrociata k-fold con la piattaforma Boosted Tree?
Sebbene comprenda che ciò può essere fatto nello screening del modello, ho bisogno di effettuare l'iper-tuning con il k-fold che fornisce le massime prestazioni. Quindi, invece di usare lo screening del modello, c'è un modo per effettuare la convalida incrociata k-fold con la modellazione predittiva boosted tree in cui posso anche effettuare l'iper-tuning di altri parametri?
Grazie per aver trovato il tempo di rispondermi.
Nisha
Se vuoi usare K-fold e Boosted Tree, ti consiglio di provare a usare l'app XGBoost.
Componente aggiuntivo XGBoost per JMP Pro - Comunità di utenti JMP
Steve
Ciao @NishaKumar2023 ,
Puoi usare la convalida incrociata K-folds mentre metti a punto i tuoi iperparametri, ma non funziona esattamente come vorresti. Ecco la metodologia:
- Crea una colonna di convalida K-fold (fissa o una formula a seconda dei tuoi obiettivi e delle esigenze di riproducibilità): avvia la piattaforma Make Validation Column (jmp.com)
Assicurati che la suddivisione dei dati in pieghe sia rappresentativa ed equilibrata, utilizzando la stratificazione, oppure rispetta i vincoli/la duplicazione dei dati utilizzando il raggruppamento (ad esempio, lo stesso ID nella stessa piega).
- Apri o crea una tabella dati di Tuning per Boosted Tree (o qualsiasi altra piattaforma) che desideri avviare. Ho aggiunto in copia un esempio per Boosted Tree, ma puoi trovare altre tabelle di tuning fornite da @SDF1 in questo post: Malfunzionamento in Bootstrap Forest con Tuning Design Table?
- Quando avvii Boosted Tree (o qualsiasi altra piattaforma di modellazione, specifica i tuoi input, la risposta al modello e usa la colonna di convalida K-fold nel pannello di convalida (qui sul dataset Mushroom JMP):

- Si apre una nuova finestra, devi selezionare "Usa tabella di ottimizzazione" e poi selezionare la tabella di ottimizzazione già aperta:

- Avrete quindi i risultati forniti dai modelli meglio ottimizzati:

Si noti che questo metodo non è adatto per la convalida incrociata K-fold, poiché l'uso di tabelle di ottimizzazione implica una partizione dei dati solo in 3 set:
- Set di addestramento: utilizzato per l'addestramento effettivo del/i modello/i,
- Set di convalida: utilizzato per l'ottimizzazione del modello (regolazione fine degli iperparametri, selezione delle caratteristiche/soglie, ... ad esempio) e la selezione del modello,
- Set di test: utilizzato per la generalizzazione e la valutazione delle prestazioni predittive del modello selezionato su dati nuovi/non visti.
Quindi, se specifichi una crossvalidazione a 5 pieghe nel passaggio 1, solo le prime 3 pieghe saranno utilizzate come set di training, convalida e test, non come una vera e propria tecnica di crossvalidazione a 5 pieghe. Per fare una crossvalidazione come intendi fare, ti servirà una crossvalidazione nidificata: una crossvalidazione interna per ottimizzare gli iperparametri e una crossvalidazione esterna per valutare la robustezza dei valori degli iperparametri trovati, disponibile solo nella piattaforma Model Screening e non accetta tabelle di ottimizzazione per l'ottimizzazione degli iperparametri (poiché l'obiettivo di questa piattaforma è di esaminare gli algoritmi più promettenti tra un'ampia varietà di tipi di modello, non di ottimizzarli):

Per quanto ne so, questo non è (direttamente) possibile in JMP.
Ma puoi comunque usare la convalida incrociata K-fold sul Boosted Tree "predefinito" oppure provare a usare altre tecniche di convalida, seguendo il metodo sopra (ma creando una normale colonna di convalida della formula con 3 set) e usando la simulazione sul modello ottimizzato per valutarne la robustezza e i vantaggi rispetto a uno non ottimizzato:

Come si può notare, nella maggior parte dei casi i valori predefiniti degli iperparametri funzionano piuttosto bene e l'ottimizzazione degli iperparametri aiuta di più sulla variabilità delle prestazioni (valori delle prestazioni come RASE, R-quadrato, ... hanno intervalli più ristretti sull'algoritmo ottimizzato rispetto a quello "predefinito") che sulle prestazioni massime o medie dell'algoritmo.
Puoi controllare un post e una soluzione simili qui su questo argomento per dare un'occhiata alle tecniche di convalida e all'uso della simulazione: Risolto: Re: Boosted Tree - Tuning TABLE DESIGN - JMP User Community
La convalida incrociata nidificata in genere non è la prima opzione che consiglierei, poiché richiede molti calcoli per perfezionare l'algoritmo in modo indipendente su ciascuna delle pieghe del ciclo interno e quindi calcolare le prestazioni su ciascuna piega di convalida del ciclo esterno.
La convalida incrociata K-fold è una tecnica utile in assenza di grandi quantità di dati, ma la convalida incrociata nidificata richiede comunque una quantità di dati piuttosto elevata per eseguire correttamente la suddivisione dei dati: ad esempio, se si divide il ciclo interno in 4 pieghe e il ciclo esterno in 5 pieghe, è necessario creare 20 pieghe/gruppi nel set di dati!
Infine, la convalida incrociata è più una tecnica di ottimizzazione che una tecnica di convalida per valutare la robustezza del modello, come brillantemente descritto da Cassie Kozyrkov in questo video: https://youtu.be/zqD0lQy_w40?si=lja79_aik0KO-jbB
Spero che questa risposta ti aiuti,
@shampton82 Grazie mille, questo mi ha permesso di creare la colonna k fold (val) ed eseguire l'albero potenziato!
Grazie mille @Victor_G ! Ho trovato la tua spiegazione molto utile, soprattutto per il passaggio successivo nell'ipertuning. Sono riuscito a creare la colonna k fold val tramite xgboost ed eseguire l'albero potenziato, ma mi serviranno indicazioni e risorse per i passaggi successivi. Grazie!