Come modificare gli iperparametri nella piattaforma Model ScreeningCiao esperti JMP,
Trovo che la piattaforma Model Screening sia molto utile. Ho individuato gli iperparametri tramite la Tuning Design Table, quindi mi chiedo se esiste un modo per modificare gli iperparametri nella piattaforma Model Screening, come JSL.
Se la piattaforma non può modificare gli iperparametri, posso utilizzare i parametri predefiniti nell'articolo.
Attendo con impazienza la tua risposta
Modellazione statistica avanzataRi: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao @ Wang123 ,
Benvenuto nella Comunità!
Hai letto la documentazione sullo screening del modello ? Per rispondere direttamente alla tua domanda, ecco la risposta nella Guida di JMP: " Le piattaforme di modellazione utilizzano opzioni predefinite e parametri di ottimizzazione nell'adattamento del modello. Puoi provare a migliorare l'adattamento oltre ciò che l'impostazione predefinita produce chiamando direttamente le piattaforme e scegliendo opzioni diverse. "
Pertanto, per impostazione predefinita, non è possibile ottimizzare gli iperparametri nella piattaforma Model Screening (magari tramite JSL) e non è l'uso di questa piattaforma. Lo screening dei modelli è AutoML, in cui l'obiettivo è quello di adattare rapidamente un numero elevato di tipi molto diversi di modelli di machine learning, per comprendere meglio quali tipi di modelli sembrano adattarsi correttamente ai dati. Una volta completata questa fase di esplorazione, puoi utilizzare le piattaforme del modello corrispondente per ottimizzare gli iperparametri con le tabelle di progettazione di ottimizzazione ed eventualmente migliorare ulteriormente le prestazioni del tuo modello.
Si noti che gli algoritmi di Machine Learning hanno varie sensibilità/robustezza per quanto riguarda le configurazioni degli iperparametri: ad esempio, le foreste casuali sono uno degli algoritmi ML più robusti, dove gli iperparametri hanno poca influenza sulle sue prestazioni. Vedere [1802.09596] Ottimizzazione: importanza degli iperparametri degli algoritmi di apprendimento automatico (arxiv.org)
Potresti essere tecnicamente in grado di fare ciò che intendi fare, ma ci sono diversi avvertimenti a cui prestare attenzione:
- Potrebbe essere necessario utilizzare la convalida incrociata annidata (se già si utilizza la convalida incrociata) o la convalida incrociata sul set di addestramento (e utilizzare il set di convalida per confrontare le prestazioni dei modelli) se si desidera adattare diversi modelli e ottimizzarli. La suddivisione dei dati aggiunta è qui per garantire che non ti stai adattando eccessivamente all'ottimizzazione degli iperparametri e che una parte dei tuoi dati possa ancora essere utilizzata per eseguire il confronto e la selezione degli algoritmi in un modo equo e "il più imparziale possibile".
- Un possibile problema con questa piattaforma di screening dei modelli è che l'opzione di convalida incrociata è casuale per impostazione predefinita. A seconda del set di dati e della distribuzione delle funzionalità/input, questa potrebbe non essere una scelta sensata e non fornirebbe una valutazione e una rappresentatività equa del set di dati. Una soluzione alternativa potrebbe essere quella di creare una colonna di convalida con formula stratificata (K-fold) e utilizzarla nel pannello di convalida dello screening del modello: avviare la piattaforma Make Validation Column (jmp.com)
- Se vuoi davvero provare a mettere a punto diversi modelli con questa piattaforma o qualsiasi piattaforma AutoML, pensa al numero di modelli che devono essere adattati e al tempo e ai calcoli necessari: dovrai adattare ciascun tipo di modello selezionato KxK' volte (convalida incrociata annidata con K = numero di pieghe esterne per la convalida del modello, K' = numero di pieghe interne per l'ottimizzazione degli iperparametri). A seconda del set di dati, della sua dimensionalità e complessità, questo approccio di "forza bruta" potrebbe non essere ragionevole e realizzabile.

Ulteriori risorse sulla convalida incrociata annidata:
https://inria.github.io/scikit-learn-mooc/python_scripts/cross_validation_nested.html
https://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html
https://medium.com/@cd_24/a-guide-to-nested-cross-validation-with-code-step-by-step-6a8ad06d5af2#:~:text=Nested%20cross%2Dvalidation%20is%20a, ottimizzazione%20loop%20interno%20per%20iperparametro%20.
Il mio consiglio è di procedere in sequenza e utilizzare la piattaforma per ciò che sa fare meglio, confrontando algoritmi molto diversi e selezionando quelli più promettenti. Poi si possono ottimizzare gli iperparametri sui (pochi) modelli che sembrano essere più performanti in modo da migliorare un po' le prestazioni. Fai attenzione in questo processo per evitare perdite di dati, quindi non utilizzare mai il tuo set di test finché non viene scelto e ottimizzato un modello finale, ad esempio (o puoi aspettarti risultati ottimistici sul tuo set di test e brutte sorprese quando l'algoritmo verrà utilizzato su nuovi dati) .
Questo processo ha più senso per me rispetto all'utilizzo di un approccio a forza bruta, poiché l'ottimizzazione degli iperparametri non farà "magicamente" fare in modo che un algoritmo impari molto meglio di un algoritmo/metodo più adatto.
Spero che questa risposta (anche se non direttamente quella che ti aspetteresti) ti aiuterà,
Ri: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao Victor_G,
Grazie per la tua risposta che mi ispira molto. Posso anche provare questo approccio, prima con la piattaforma Model Screening e poi con l'algoritmo appropriato.
Per evitare l'overfitting, la convalida incrociata K-fold è un buon modo per i dati di piccole dimensioni.Tuttavia, alcune piattaforme di algoritmi (non Model Screening) non supportano la convalida incrociata K-fold, come Bootstrap Forest, Boosted Tree e Baive Bayes. Ovviamente,la colonna di convalida della formula stratificata (K-fold) non si adatta. Pertanto, aDopo aver selezionato l'algoritmo più promettente nella piattaforma di screening dei modelli e nell'ottimizzazione degli iperparametri, puoi condividere alcune esperienze su come addestrare meglio un modello quando si tratta di dati di piccole dimensioni?
Infine, dopo aver fatto clic sul pulsante "Esegui selezionato", ho scoperto che ogni algoritmo nella piattaforma Model Screening con convalida incrociata K-fold puògenerare automaticamente aPiega di convalida. Quindi, posso utilizzare questo Validation Fold nello stesso algoritmo con il miglior iperparametro per evitare l'overfitting?
Attendiamo un vostro riscontro.
Ri: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao @ Wang123 ,
Sono felice di sapere che la mia risposta è stata utile.
Per utilizzare con successo il Machine Learning, è necessario impostare una strategia e un framework per il tuo progetto di Machine Learning prima di iniziare qualsiasi analisi. Nella maggior parte dei casi, i progetti di Machine Learning potrebbero fallire perché il punto di partenza (considerazioni sulla raccolta dei dati) o la fase finale (condizioni di test e monitoraggio) non sono ben considerati e definiti:
- Punto di partenza : pensa a come hai raccolto i tuoi dati: quanto è rappresentativo il tuo set di dati per l'attività che desideri svolgere? In quale contesto sono stati raccolti i dati: in studi osservazionali o in sperimentazioni controllate come DoE? Il campionamento dei dati e le distribuzioni di caratteristiche/variabili sono simili a ciò che accadrà nell'ambiente del modello (ad esempio intervalli/livelli di variabili, squilibrio o equilibrio tra classi o valori, distribuzioni delle risposte, prestazioni simili delle apparecchiature di misurazione, incertezza nelle misurazioni, ...) ?
Queste domande sono solo alcuni esempi di ciò che devi considerare e definire quando utilizzi i dati per il Machine Learning e possono aiutarti a gestire le tue aspettative.
- Fase finale : devi sapere come testerai il tuo modello finale. Puoi già dividere il tuo set di dati e conservarne una piccola parte a scopo di test, oppure hai intenzione di acquisire nuovi dati per testare e monitorare le prestazioni del tuo modello?
Ecco alcuni altri consigli e indicazioni relativi alle tue domande, oltre a commenti aggiuntivi:
- Per evitare qualsiasi malinteso, è importante sapere quali sono gli usi e le esigenze di ciascun set:
- Set di addestramento : utilizzato per l'addestramento effettivo del/i modello/i,
- Set di convalida : utilizzato per l'ottimizzazione del modello (ottimizzazione degli iperparametri, selezione di funzionalità/soglie, ... per 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 visualizzati. In questa fase non dovresti avere diversi modelli in competizione.
- Nel caso di set di dati di piccole dimensioni, esistono diverse opzioni per realizzare la validazione dei modelli (confronto e selezione dei modelli):
- Se hai a che fare con set di dati di piccole dimensioni, scegli algoritmi semplici. In genere, maggiore è il numero di (iper)parametri nel modello, maggiore dovrà essere il set di dati di addestramento, poiché avrai bisogno di più dati per stimare con precisione ciascuno degli (iper)parametri nel modello. Preferirei scegliere algoritmi robusti quando si ha a che fare con set di dati di piccole dimensioni, come foreste casuali, macchine vettoriali di supporto e regressione/classificazione generalizzata.
Alcuni articoli di LinkedIn che ho creato a riguardo per ulteriori spiegazioni:- Foreste casuali
- SVM
Entrambi questi algoritmi hanno pochi iperparametri da ottimizzare, prestazioni robuste per l'ottimizzazione degli iperparametri (vedere: https://arxiv.org/abs/1802.09596 menzionato sopra) o hanno specificità di addestramento che li aiutano a evitare l'adattamento eccessivo e a ridurre la varianza di previsione (i campioni di bootstrap parte in Random Forest per esempio).
Non utilizzerei alberi potenziati o algoritmi potenziati, poiché il loro obiettivo è ridurre il più possibile il bias (errore sistematico) correggendo sequenzialmente gli errori precedenti. Ciò li rende algoritmi di previsione molto efficaci, ma sono altamente sensibili e influenzati dal training set, con possibili scarse prestazioni di generalizzazione e varianza elevata.
Più in generale, ci sono due modi per gestire gli algoritmi ML:
- O la dimensione del set di dati, i vincoli e molti altri criteri di selezione riducono il numero di modelli e possibilità e basta provare pochi modelli per selezionare quello più promettente. Ecco la registrazione di una presentazione che ho tenuto quest'anno, con una miscela DoE che riempie lo spazio e l'uso dell'apprendimento automatico: sinergia tra progettazione di esperimenti e apprendimento automatico per domini avanzati E... - Comunità di utenti JMP Se guardi il modello scelta, potresti avere qualche idea sui criteri di selezione per il tuo progetto.
- Non hai idea di quale modello potrebbe funzionare meglio e vorresti avere un primo test/competizione esplorativa di modellazione tra algoritmi. In questo caso, puoi provare a utilizzare un sottoinsieme dei tuoi dati (60-80%) per addestrare i modelli e confrontarli o, se il tuo set di dati è molto piccolo, utilizzarlo interamente con convalida incrociata per eseguire questa prima parte esplorativa. Una volta identificati gli algoritmi promettenti, provare a utilizzare piattaforme di modelli individuali con una chiara strategia di convalida (ad esempio convalida incrociata di K-fold stratificati con seme fisso per la riproducibilità).
Come osservazione finale sulla convalida incrociata e sul modo in cui vengono visualizzati i risultati, potrebbero esserci diversi avvertimenti:
- I risultati verranno visualizzati per ciascuna piega. Non eseguire un modello addestrato e convalidato su una piega specifica, ciò sarebbe considerato "imbroglio", poiché stai selezionando la migliore suddivisione dei dati per migliorare le prestazioni del modello, il che sta influenzando le prestazioni complessive che ti aspetti di avere su nuovi dati/test impostato.
- La convalida incrociata K-folds ha un nome fuorviante, poiché non è propriamente un metodo di convalida, ma più un "test di robustezza" per vedere come si comporta un modello con diversi partizionamenti dei dati. Vedere: MFML 065 - Comprendere la convalida incrociata k-fold (youtube.com)
Quindi l'informazione importante in questa fase non sono le prestazioni individuali del modello su ciascuna piega, ma quanto regolari e simili sono le prestazioni (prestazione media e prestazione di deviazione standard su tutte le pieghe). Se noti discrepanze/varianze elevate nel risultato, ciò potrebbe indicare che il modello potrebbe non essere adatto al tuo compito e/o che i tuoi dati presentano punti individuali singolari (da controllare) che confondono il modello e gli impediscono di generalizzare/trovare modelli.
- Infine, una volta eseguita la convalida incrociata, non esiste consenso su cosa fare con i risultati. Alcuni riqualificano il modello selezionato sull'intero set di dati, altri stanno assemblando i singoli modelli addestrati su ciascuna piega o impilando le previsioni... Ecco un collegamento su questa fase di distribuzione Come passare dalla valutazione al modello finale (substack.com)
Scegli l'opzione che ha più senso per te.
Puoi trovare anche discussioni e risposte complementari in questo post: VALIDAZIONE INCROCIATA - METODO COLONNA DI VALIDAZIONE
Scusa per la lunghezza, spero che ci sarà qualcosa per te in questa grande risposta!:)
Ri: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao Victor_G,
Grazie per l'aiuto. Sia la piattaforma di screening del modello con funzione di ottimizzazione degli iperparametri che tutte le piattaforme di modelli individuali con funzione K-fold possono facilmente risolvere il mio problema. È un peccato che le due piattaforme manchino di alcune funzioni.
Dopo qualche riflessione, vorrei anche chiedere se i seguenti passaggi sono appropriati:
(1) campionamento stratificato con addestramento all'80% e set di test al 20%.
(2) Nel set di training (80%), ho addestrato più algoritmi di machine learning con convalida incrociata K-foldnella piattaforma di screening dei modelli. Naturalmente, questo passaggio utilizza gli iperparametri predefiniti. Dopo il confronto, ho trovato che parte dell'algoritmo era ottimale, come Bootstrap Forest.
(3) Quindi, ho chiarito gli iperparametri ottimali di Bootstrap Forest attraverso la Tuning Design Table.
(4) Nel set di training (80%), ho riadattato l'algoritmo Bootstrap Forest con iperparametri ottimali. Naturalmente posso adattare anche altri algoritmi.
(5) Nel set di test (20%), ho valutato ulteriormente le prestazioni del modello di Bootstrap Forest e di altri algoritmi.
I passaggi precedenti sono appropriati in JMP?
Nel passaggio 2, posso semplicemente riportare i risultati dei confronti dei modelli (risultati della convalida incrociata K-fold) con gli iperparametri predefiniti nell'articolo? Naturalmente sappiamo che molti articoli iniziano con il passaggio 3 e poi con il passaggio 2, quindiriportare i risultati dei confronti dei modelli con iperparametri ottimali.
Nel passaggio 4 non ho impostato alcun metodo di convalida incrociata, è corretto? oppure c'è un'altro modo?
Attendiamo un vostro riscontro.
Ri: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao Victor_G,
La tua risposta è così significativa. So come creare la colonna di convalida K-Folds. Per quanto ne so, alcune piattaforme di algoritmi non supportano la convalida incrociata K-fold, come Bootstrap Forest, Boosted Tree e Baive Bayes. È disponibile nella Guida di JMP all'indirizzo https://www.jmp.com/support/help/en/18.0/index.shtml#page/jmp/kfold-and-holdback-validation.shtml . In questo caso, devo suddividere i nostri piccoli dati in un set di formazione, convalida e test. Esiste un modo per utilizzare la convalida incrociata K-fold in queste piattaforme di algoritmi (Bootstrap Forest, Boosted Tree e Baive Bayes)?
Come hai detto "I risultati verranno visualizzati per ogni piega. Non eseguire un modello addestrato e convalidato su una piega specifica, sarebbe considerato un imbroglio...", e un altro ha detto "Infine, una volta eseguita la convalida incrociata, c'è nessun consenso su cosa fare con i risultati Alcuni riqualificano il modello selezionato sull'intero set di dati, altri stanno raggruppando i singoli modelli addestrati su ciascuna piega". Non so quale sia il modo più appropriato, allenarsi in una piega specifica o in un intero set di allenamento?
Attendiamo un vostro riscontro.
Ri: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao @ Wang123 ,
Siamo spiacenti, hai ragione riguardo all'uso limitato della colonna di convalida incrociata K-fold in alcune piattaforme di modellazione.
Una possibile soluzione alternativa consiste nel creare una formula di colonna di convalida comune (campionamento stratificato con 80% di training e 20% di convalida), utilizzarla nella piattaforma del modello e utilizzare la funzione "Simula" per generare numerosi campioni e risultati di convalida incrociata per valutare la robustezza. Ho descritto la metodologia in un altro post: Risolto: Re: Come posso automatizzare e riassumere molte convalide ripetute in un'unica scheda di output... - Comunità degli utenti JMP
Per quanto riguarda la tua seconda domanda, la mia opinione personale sarebbe quella di impilare le previsioni dei singoli modelli, in modo che ogni singolo modello abbia lo stesso contributo alla previsione finale. Questo sembra essere l'approccio più neutrale e consentirebbe la riduzione dei bias e (soprattutto) della varianza (approccio " Saggezza della folla "), nonché la prevenzione dell'overfitting. Potrebbe anche essere una buona opportunità per stimare gli intervalli di previsione dell’incertezza grazie ai contributi dei singoli modelli.
L'insieme sarebbe troppo complesso per set di dati di piccole dimensioni, poiché la combinazione dei singoli modelli richiederebbe una convalida aggiuntiva per assicurarsi che il modello dell'insieme finale non sia eccessivo e in grado di generalizzarsi.
A seconda della conoscenza approfondita degli algoritmi ML, è possibile utilizzare anche l'opzione di utilizzare l'intero set di dati e addestrare il modello finale su di esso e confrontare i risultati del modello con convalida incrociata con il modello "non convalidato" per individuare qualsiasi segno di sovradattamento.
Ancora una volta, l’uso di modelli semplici e di tecniche di regolarizzazione/restrizione aiuta notevolmente a prevenire l’overfitting.
Spero che questa risposta ti possa aiutare,
Ri: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao @ Wang123 ,
Trovo che i passaggi 1) e 2) siano appropriati.
I passaggi 3) e 4) potrebbero essere combinati per trovare gli iperparametri ottimali di diversi modelli, valutarli, confrontarli e selezionare un modello finale. È inoltre necessaria una strategia di convalida per questo passaggio, poiché l'ottimizzazione degli iperparametri senza alcuna convalida porterebbe a un overfitting. A seconda dei risultati di questa ottimizzazione degli iperparametri sui set di validazione (K-fold?), si seleziona un algoritmo che sembra essere il più appropriato.
A seconda della tua strategia di validazione, mantieni l'algoritmo addestrato così com'è (se hai utilizzato un set di validazione per confrontare e selezionare un modello), oppure puoi eseguire l'impilamento dei modelli se hai utilizzato la convalida incrociata K-folds (per ottenere la media previsione dai singoli modelli).
Nel passaggio 5, valuterai le prestazioni del tuo modello finale su dati nuovi e invisibili. In questa fase dovrebbe esserci solo 1 algoritmo/modello. La validazione viene utilizzata per confrontare e selezionare un modello, non la fase di test.
Per quanto riguarda le tue domande:
"Nel passaggio 2, posso semplicemente riportare i risultati dei confronti dei modelli (risultati della convalida incrociata K-fold) con gli iperparametri predefiniti nell'articolo?" : Dipende da cosa vuoi mostrare/dimostrare. Se vuoi spiegare perché hai scelto alcuni modelli specifici, potresti utilizzare i risultati del passaggio 2. Ha più senso confrontare i risultati dei passaggi 2 e 3 sugli algoritmi selezionati se vuoi evidenziare l'importanza e il vantaggio dell'ottimizzazione degli iperparametri (che non è sempre importante per alcuni modelli robusti come Random Forests).
"Nel passaggio 4, non ho impostato alcun metodo di convalida incrociata, è corretto? O esiste un altro modo?" Non consiglierei il refitting dell'intero set di training, a meno che non si utilizzino algoritmi robusti e si dispongano di metriche per assicurarsi di non eseguire un overfitting. Le foreste casuali sono in genere buoni esempi di algoritmi robusti e hanno una convalida interna (per la risposta continua) tramite campioni Out-Of-Bag: https://www.jmp.com/support/help/en/17.2/#page/jmp/overview -of-the-bootstrap-forest-platform.shtml#
Il confronto delle metriche dei campioni In-Bag e Out-Of-Bag può aiutarti a valutare se la tua foresta casuale potrebbe presentare un overfitting.
Se stai utilizzando un algoritmo diverso e/o non sei sicuro della sua robustezza, mantieni semplicemente il modello ottimizzato (e convalidato!) del passaggio precedente (o i modelli in pila se stavi utilizzando la convalida incrociata K-fold).
Spero che quest'ultima risposta ti possa aiutare,
PS: non dimenticare di "Accettare come soluzione" le risposte se ti sono state utili, è un buon modo per gli altri utenti JMP di arrivare rapidamente alla soluzione senza leggere tutto.
Ri: Come modificare gli iperparametri nella piattaforma Model ScreeningCiao Victor_G,
Grazie per il tuo prezioso punto di vista! Questi mi sono molto utili.