AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOHo un risultato DOE che vorrei modellare con Support Vector Machine (ci sono forti effetti non lineari che non possono essere stimati con un modello polinomiale) Come installo il componente aggiuntivo SVEM?
Modellazione statistica avanzataProgettazione di esperimentiModellazione predittiva e machine learningOggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOSì, l'albero potenziato può essere più preciso delle foreste casuali "in base alla progettazione", a causa della correzione degli errori di previsione iterativa con l'addestramento sequenziale degli alberi. Ma le complesse suddivisioni effettuate durante l'apprendimento degli alberi sequenziali per migliorare le prestazioni potrebbero essere valide solo sul set di addestramento e potrebbero non riflettere ciò che potrebbe accadere su nuovi punti dati.
Random Forest è un algoritmo robusto per quanto riguarda gli iperparametri, quindi aumentare il numero di alberi al di sopra di un certo valore potrebbe non modificare la valutazione delle prestazioni, vedere il mio post su LinkedIn e/o l'articolo " Tunability: Importance of Hyperparameters of Machine Learning Algorithms " : 1802.09596 (arxiv.org)
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOCon albero potenziato R² = 0,85
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOCon la foresta casuale ottengo un R² scarso = 0,63 anche con 2000 alberi
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTONon sono completamente d'accordo, ci sono più sfumature tra i modelli basati su alberi:
- I metodi Boosted Tree , come XGBoost e altri, utilizzano alberi addestrati in sequenza per affinare e correggere progressivamente le previsioni. Sono maggiormente influenzati dalle caratteristiche del training set, dalle dimensioni, dalla qualità dei dati, dalla ripartizione dei punti dati, dalla rappresentatività, ... poiché tentano iterativamente di ottenere le migliori previsioni (ogni albero "correggendo" i maggiori errori di previsione dell'albero precedente) su il set di dati su cui sono addestrati.
In genere si tratta di un algoritmo descritto come bassa distorsione - alta varianza: le previsioni possono essere molto precise, ma molto sensibili/influenzate dal set di dati di addestramento utilizzato.
- Le foreste casuali utilizzano alberi addestrati in parallelo su set di dati leggermente diversi (set bootstrap). La buona prestazione predittiva di questo algoritmo deriva dalla media delle previsioni dei singoli alberi. Puoi considerarla come " La saggezza della folla ": se chiedi il peso di una balena a qualcuno, potrebbe essere molto impreciso e non preciso, ma se raccogli le risposte di centinaia o migliaia di persone e fai la media dei risultati , il risultato medio potrebbe essere molto vicino al valore effettivo.
Si tratta tipicamente di un algoritmo descritto come bias medio/basso - varianza bassa: le previsioni possono essere precise (a seconda della media dei risultati individuali e della complessità/numero dei singoli alberi) e sono abbastanza robuste per il set di dati di addestramento grazie al bootstrap processo e la formazione individuale degli alberi (con caratteristiche diverse).
Ecco una breve immagine tra i diversi modelli basati sugli alberi (non mi piace come i singoli alberi nella foresta casuale abbiano la stessa struttura, ma è uno schema semplicistico):

Per rispondere alla tua domanda, proverei i metodi Random Forests over Boosted Tree su set di dati di piccole dimensioni come DoE, per avere più fiducia nei risultati, utilizzare un algoritmo meno incline al sovradattamento e avere migliori proprietà di generalizzazione.
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOImmagino che i modelli basati su alberi come la foresta casuale e XGboost richiedano un set di dati di grandi dimensioni a meno che non sia possibile utilizzare SVEM per set di piccole dimensioni, corretto?
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOCiao @frankderuyck ,
Ottimo a sapersi!:)
Utilizzo le reti neurali come ultima opzione di modellazione possibile, ci sono molti modelli classici e algoritmi ML più semplici che funzionano altrettanto bene (e talvolta meglio). Queste altre opzioni sono anche più veloci da calcolare, non richiedono conoscenze approfondite, test e validazioni per metterle a punto (a differenza delle NN in cui devi specificare l'architettura, con il numero di livelli, il tipo di funzioni, boosting o meno, ... o utilizzando il Neural Network Tuning AddIn ) e sono più facili da interpretare (in termini di profili di risposta e relativa importanza dei fattori).
Sui dati tabulari, se l'unico modello in grado di funzionare bene è le reti neurali, ci sono buone probabilità che si possano avere altri problemi, in termini di qualità dei dati, rappresentatività, valori mancanti/valori anomali, ripetibilità/riproducibilità, ecc...
I modelli basati su alberi forniscono un buon punto di riferimento delle prestazioni e sono spesso un'opzione sicura e affidabile, vedere l'articolo " Perché i modelli basati su alberi continuano a superare il deep learning sui dati tabulari ?" (2022) https://arxiv.org/abs/2207.08815
Nel tuo screenshot, sembra che il modello SVM ottimale trovato con il design Tuning sia piuttosto interessante:
- Utilizza 10 vettori di supporto, quindi meno della metà dei punti viene utilizzata per costruire i "confini"/vettori utilizzati nel modello SVM, il che può essere un buon segno di bassa complessità e buone proprietà di generalizzazione,
- Il valore di curvatura (gamma) è piuttosto basso, quindi il profilo di risposta e i confini potrebbero non essere eccessivamente complessi e altamente curvi (quindi, ancora una volta, bassa complessità e buone proprietà di generalizzazione),
- La penalità (valore del costo) sembra piuttosto elevata, ma con un set di dati di piccole dimensioni questo è spesso il caso nella pratica, poiché qualsiasi punto classificato erroneamente/previsto erroneamente aumenterà notevolmente il tasso di classificazione errata/RMSE: 1 punto classificato erroneamente su 25 = 4% di classificazione errata tasso, rispetto a dimensioni del set di dati più elevate in cui un punto classificato erroneamente rappresenterebbe un tasso di classificazione errata inferiore all'1%. In alcune situazioni, può essere interessante scegliere un modello con un errore leggermente maggiore (RMSE/tasso di errata classificazione), ma con molti meno vettori di supporto: si degradano le prestazioni predittive sul training set a favore di un modello meno complesso che potrebbe essere in grado di generalizzare meglio sui nuovi dati.
È possibile utilizzare la tabella generata dal progetto di ottimizzazione, con le metriche delle prestazioni, per valutare meglio l'importanza relativa e il contributo dei due iperparametri sulle metriche delle prestazioni (tasso di classificazione errata per la classificazione o RASE e R² per la regressione).
Come sempre, si consiglia di convalidare il modello con nuovi punti di convalida, per assicurarsi che il modello non si adatti eccessivamente.
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOCiao Victor, questo progetto di ottimizzazione funziona alla grande, voglio modellare una risposta di qualità Y in funzione di tre FPCA Y dagli spettri NIR (FDA). Ho provato la rete neurale ma anche con 3 nodi TanH il profiler mostra a mio avviso una curvatura troppo alta e irregolare. SVE dopo la messa a punto fa un buon lavoro, supporto l'apprendimento automatico vettoriale!


Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOCiao @frankderuyck ,
Alcune domande prima di rispondere alla tua:
- Perché vorresti utilizzare SVEM per SVM? Support Vector Machines è un robusto algoritmo ML, che può essere utilizzato per set di dati di piccole dimensioni come DoE. Maggiori informazioni sulla robustezza dell'algoritmo su LinkedIn.
Esistono anche molti modi per valutare l'overfitting per SVM senza utilizzare il set di convalida, controllando il numero di vettori di supporto e i valori di penalità (costo) e curvatura (gamma) se hai ottimizzato i tuoi iperparametri SVM con un progetto di ottimizzazione . .. Sto pensando di scrivere un post sul blog sulla valutazione e la prevenzione del sovradattamento per algoritmi robusti (SVM, Random Forest) in assenza di convalida (ad esempio nei set di dati DoE).
- Hai considerato anche altri algoritmi? SVM è un algoritmo robusto per l'analisi di set di dati di piccole dimensioni, ma Random Forest può anche fornire buoni risultati e può essere un buon punto di riferimento per valutare e confrontare le prestazioni. Maggiori informazioni su Random Forests su LinkedIn.
- Quanti livelli hai per i tuoi fattori? Gli algoritmi ML possono essere utili solo se disponi di livelli sufficienti per ciascuno dei tuoi fattori per consentire un'interpolazione uniforme. Più di 3 livelli possono essere un buon punto di partenza.
Per quanto riguarda l'utilizzo di SVEM, è possibile accedervi in diversi modi:
- Nella piattaforma "Make Validation Column", hai la possibilità di creare una tabella di Autovalidazione: Avvia la piattaforma Make Validation Column Platform (jmp.com). Questo duplicherà le righe e creerà la colonna dei pesi anti-correlati (tra training e validazione) che può essere utilizzato come "Frequenza" nel lancio della piattaforma. È quindi possibile simulare i risultati della previsione variando i pesi tra training e convalida (fare clic con il pulsante destro del mouse su un pannello con i risultati della convalida, fare clic su Simula e specificare la colonna dei pesi come colonna per attivare e disattivare).
- Puoi anche scaricare l'add-in SVEM, che farà le stesse cose della tabella di autovalidazione: Re-Thinking the Design and Analysis of Experiments? (2021-EU-30MP-776) - Comunità di utenti JMP
È quindi possibile riprodurre gli stessi passaggi di prima e simulare i risultati per valutare la robustezza del modello.
Vorrei tuttavia sottolineare che la convalida incrociata (K-fold o SVEM) non è propriamente un metodo di validazione, ma più un metodo di "debug" per valutare la robustezza delle prestazioni dell'algoritmo su vari set di training e validazione. La difficoltà principale dopo aver utilizzato una tecnica di convalida incrociata è come dare un senso ai risultati e come procedere successivamente:
Media dei singoli modelli addestrati su varie pieghe? Creare un ensemble con questi modelli? Mantenere il modello migliore addestrato su una piega (non consiglierei questa opzione) ? Addestrare il modello sull'intero set di dati una volta verificata la robustezza con la convalida incrociata? ... Non esiste una risposta definitiva a questa domanda e questa è legata al set di dati, alla complessità della modellizzazione, al miglioramento delle prestazioni, alle pratiche degli utenti, ...
Maggiori informazioni qui con alcuni episodi di Cassie Kozyrkov sul tema della convalida incrociata: https://youtu.be/zqD0lQy_w40?si=41jfBs83Q0TIlusr
https://youtu.be/by59hsYO0Lg?si=XeZ33j2e4jKQPaRA
Spero che questa risposta ti possa aiutare,
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOCiao Victor, con un certo ritardo... perché dovresti scegliere Random Forest invece di SVEM per modellare i dati DOE?
Oggetto: AGGIUNTA SVEM PER MACCHINA VETTORIALE DI SUPPORTOCiao @frankderuyck ,
Si tratta di due considerazioni diverse:
- SVEM è una strategia di validazione che può essere applicata a qualsiasi modello, dalla regressione lineare alle reti neurali.
- Random Forest è un modello di Machine Learning.
Entrambi condividono un modo per prevenire l'adattamento eccessivo durante la modellazione:
- Random Forest utilizza campioni bootstrap e campioni " Out-of-Bag " come convalida del modello "interno". Il campione "Out-of-Bag" è una parte dei dati non utilizzati nell'addestramento: i campioni di addestramento sono campioni bootstrap campionati con sostituzione nel set di dati originale. In teoria, puoi calcolare che campionando con sostituzione i tuoi dati originali, circa 1/3 dei tuoi dati non verrà campionato: apprendimento automatico - Dimensione del campione out-of-bag Forests casuali - Convalida incrociata (stackexchange.com)
Questo campione costituisce il campione "Out-of-bag" non utilizzato nell'addestramento della Random Forest e consente di valutare/convalidare la pertinenza e la precisione del modello.
- SVEM utilizza pesi anticorrelati per l'addestramento e la convalida, il che significa che un esperimento con un peso elevato per l'addestramento avrà un peso basso per la convalida. Adattando un modello con questa configurazione di convalida, quindi modificando i pesi e riadattando il modello con nuovi pesi per l'addestramento e la convalida un numero elevato di volte, si ottengono modelli leggermente diversi che è possibile assemblare/combinare, al fine di ridurre la varianza (e evitare un adattamento eccessivo).
Ora, la mia opinione e scelta personale :
- Ciò che vedo spesso sono persone che utilizzano SVEM per il loro DoE con modelli altamente complessi senza ulteriori considerazioni o analisi/modellazione precedenti. Spesso è possibile vedere, ad esempio, SVEM applicato alle reti neurali per progetti e risultati abbastanza relativamente semplici. Per me suona come " usare un bazooka per uccidere una mosca ": tendo a scegliere le opzioni/modelli più semplici prima di aumentare la complessità (se necessario): il rasoio di Ockham . Devi anche considerare quanti livelli hai per i tuoi fattori e altre considerazioni (come la dimensionalità), poiché i modelli di Machine Learning sono modelli interpolanti, molto efficienti nel trovare uno schema tra i punti. Pertanto, se hai solo 2-3 livelli per i tuoi fattori, ciò potrebbe non essere sufficiente per ottenere un vantaggio reale utilizzando l'apprendimento automatico.
- Se hai abbastanza livelli e la modellazione lineare tradizionale non sembra appropriata a causa delle relazioni non lineari, allora potresti essere interessato a provare i modelli di Machine Learning.
- Poiché disponi di un set di dati di addestramento di dimensioni ridotte ma di alta qualità con il tuo DoE, devi scegliere un modello ML che sia semplice (nessuna o pochissima regolazione degli iperparametri facile), robusto (meno sensibile all'impostazione dei valori degli iperparametri) e meno incline all'adattamento eccessivo, poiché non è possibile dividere i dati DoE in set di addestramento e convalida. È qui che sono interessanti le foreste casuali (con la sua convalida interna del campione "Out-of-bag") e SVM (è possibile valutare la possibilità di overfitting con la scelta degli iperparametri e il numero di vettori di supporto).
Inoltre, l’utilizzo di un algoritmo ML robusto invece di uno complesso con una strategia SVEM presenta altri vantaggi, come tempi di calcolo inferiori e una più semplice interpretabilità.
Spero che questa risposta ti aiuti e abbia senso per te,
Re: SVEM ADD IN PER LA MACCHINA CON VETTORI DI SUPPORTOCiao Victor, ho provato a usare questo per i risultati della miscela, ho ottenuto un bel modello ma l'ottimizzazione con il profiler non ha funzionato perché il componente su non ha dato 1, era quasi 3. Lo stesso accade in altri modelli ML, PLS e persino Gen Reg
Re: SVEM ADD IN PER LA MACCHINA CON VETTORI DI SUPPORTOCiao Franck,
Hai verificato che i fattori della tua miscela abbiano le giuste proprietà di colonna:
- "Miscela" con valori bassi e alti dei singoli fattori
- "Ruolo di progettazione" con ruolo impostato come Miscela
- "Cambiamenti di fattore" impostati su Facile (o altro tipo se si dispone di uno scenario di randomizzazione ristretta/split-plot)
Ecco un esempio sui dati della miscela Donev con fattore CuSO4:

Quando si avvia il Profiler da Gaussian Process (o da qualsiasi altro modello ML), il vincolo di miscela viene rispettato e applicato (la somma dei fattori di miscela è sempre 1):
Spero che questa risposta possa risolvere il tuo problema,
Re: SVEM ADD IN PER LA MACCHINA CON VETTORI DI SUPPORTOOk Victor, grazie!