Bayes opta per descrittori continui di un input categorialeCIAO,
Un cliente ha chiesto informazioni sull'utilizzo dell'algoritmo Bayes opt in una situazione in cui dispone di un singolo input categorico (ad esempio, tipo di catalizzatore) che può essere descritto utilizzando più variabili continue (ad esempio, descrittori chimici).
So che potrebbero farlo usando la tabella dei descrittori come insieme di candidati. Qualcuno ha visto esempi di clienti che lo fanno? O qualche ingegnere di sistema ha sperimentato con esempi simulati?
Grazie
Pietro
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeCiao @Phil_Kay ,
Stanno forse cercando di capire quale effetto abbia la composizione del catalizzatore sull'intero processo (costruendo un modello) con l'obiettivo di controllare/adattare la composizione del catalizzatore?
Ho avuto esperienze simili con alcuni clienti (ad esempio nello sviluppo di profumi): sanno usare i composti A, B o C, ne conoscono la composizione (ad esempio 10% olio, 5% alcol), ma non possono effettuare esperimenti mirati perché non possono modificarne le proporzioni, il che rende BayesOpt di scarsa utilità.
Saluti,
Ben
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeCiao @Phil_Kay , nel caso possa esserti utile, la tabella allegata proviene da Assistant con il seguente prompt: "Simula dati QSAR per prevedere il tipo di catalizzatore utilizzando descrittori chimici. Utilizza relazioni chimiche realistiche e assicurati che alcuni descrittori siano significativi."
Esiste anche uno script per un modello XGBoost, che sembra funzionare bene.
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeGrazie, Ben. Credo che il loro obiettivo finale sia selezionare il catalizzatore migliore per ottenere la resa ottimale. Potrebbero esserci 50 catalizzatori tra cui scegliere. Ogni catalizzatore avrà valori unici per le variabili descrittive, che riflettono le sue diverse proprietà chimiche. Non possono semplicemente testarli tutti, perché ciò comporterebbe troppe reazioni, quindi l'idea sarebbe quella di utilizzare le variabili descrittive come fattori nell'algoritmo Bayes opt, un metodo razionale per esplorare lo spazio delle proprietà del catalizzatore e avvicinarsi al catalizzatore ottimale.
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeGrazie, @russ_wolfinger . Sembra piuttosto buono. Ma il caso a cui sto pensando è un insieme di candidati con 50 catalizzatori unici. Scusa, credo che la mia formulazione "tipo di catalizzatore" non fosse la migliore. Ogni catalizzatore avrebbe valori unici per i descrittori.
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeGrazie per il chiarimento, Phil.
Esiste forse un obiettivo continuo Y (ad esempio la resa) da ottimizzare in funzione dei descrittori? Il nome del catalizzatore funge quindi da etichetta di riga?
Ipotizzando che sia così, i dati potrebbero essere elaborati tramite BayesOpt per trovare i valori dei descrittori che ottimizzano Y. Una volta trovati, credo che ciò richiederebbe la capacità di sintetizzare un catalizzatore con la combinazione ottimale dei descrittori (o almeno una sua stretta approssimazione).
In alternativa, la modellazione QSAR (Quantitative Structure Activity Relationship) adatta un modello predittivo di Y in funzione dei descrittori. XGBoost o Torch sono ottime scelte e si potrebbe quindi utilizzare il profiler per ottimizzare Y o utilizzare il modello adattato per prevedere catalizzatori attualmente non misurati con descrittori noti.
Se per caso disponete di stringhe SMILES per i catalizzatori, Torch offre modelli di reti neurali grafiche che in genere funzionano molto bene.
Ho proceduto ad aggiungere una colonna "Resa" ai dati simulati.
Russ
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeSì, la resa sarebbe molto spesso la variabile di risposta, sebbene i livelli di impurità e il costo potrebbero essere variabili aggiuntive. La resa è sconosciuta e può essere determinata solo eseguendo la reazione. E non è possibile permettersi di eseguire la reazione per tutti i 50 catalizzatori. Pertanto, si utilizzerebbe l'algoritmo Bayes per esplorare (auspicabilmente) in modo efficiente lo spazio delle proprietà dei catalizzatori. Credo che alla fine si finirebbe per utilizzare il catalizzatore che ha funzionato meglio, anche se, se il modello suggerisse proprietà ottimali diverse da quelle di uno dei catalizzatori, si potrebbero aggiungere altri candidati all'insieme da prendere in considerazione.
Penso che ciò dovrebbe essere possibile e relativamente semplice.
Non sono però sicuro che sia possibile includere variabili di processo aggiuntive, come la temperatura o il pH, ad esempio. Immagino che questo sia importante. Credo che l'unico modo per farlo sia creare un insieme di candidati per i descrittori del catalizzatore e uno per i fattori di processo (ad esempio, un disegno a riempimento spaziale), e poi calcolare il prodotto di questi due insiemi. In questo modo si otterrebbe un insieme di candidati molto ampio con molteplici trattamenti dei fattori di processo per ciascun catalizzatore e i relativi descrittori.
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeUn aspetto che ho riscontrato e che vale la pena considerare quando si utilizza la resa come variabile di risposta per BayesOpt è il seguente: se l'obiettivo per la resa è impostato su "massimizzare" e la resa viene espressa in percentuale anziché in unità assolute (come g/L), l'algoritmo può iniziare a prevedere risultati non fisici, come fa il metodo OLS (ad esempio, rese del 103%). Ciò potrebbe portare a suggerimenti anomali per gli esperimenti.Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeCiao @Phil_Kay ,
Sono disponibili alcuni dati pubblici che potrebbero fare al caso tuo: https://github.com/SigmanGroup/Threshold/tree/main/examples
Ho appena scaricato rapidamente il dataset e l'ho testato utilizzandolo come set di candidati e tabella di riferimento. (Sembra trattarsi di una pubblicazione correlata : https://www.science.org/doi/10.1126/science.abj4213?referrer=https%3A%2F%2Fgithub.com%2FSigmanGroup%2FThreshold%2Ftree%2Fmain )
L'unico inconveniente riscontrato durante la mia prima rapida prova è che BayesOpt si è apparentemente bloccato su una raccomandazione (che, tra l'altro, era perfetta per una delle risposte).
Forse i dati sintetici rappresentano l'opzione "più sicura" per le demo...
Spero che questo sia d'aiuto.
Florian
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeBeh, immagino che abbia trovato l'ottimo in modo molto efficace! Sarebbe più interessante se includessi anche le variabili di processo, con le interazioni tra queste e i descrittori del catalizzatore. Ma, come ho detto prima, penso che al momento si tratti di un flusso di lavoro piuttosto complesso.
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeCerto 
Sì, in tal caso un set di dati sintetico potrebbe essere la soluzione ideale.
In sostanza, Unilever ha affermato che BayesOpt eccelle proprio in questo ambito (sviluppo di prodotto e processo) (con la differenza che utilizzano le proprietà chimiche degli ingredienti, anziché catalizzatori/QSAR e possibilmente altri parametri di processo come l'agitazione, ecc.). Attualmente sono in fase di valutazione e non hanno ancora condiviso alcun dettaglio, ma forse entro la fine di ottobre avrò maggiori informazioni, magari anche un caso di studio pubblico.
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeSarebbe davvero fantastico. Credo che inizieremo a vedere sempre più casi di studio di successo provenienti dai clienti, che ci aiuteranno concretamente a dimostrare il valore del prodotto.
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeOttimi dati, Florian, grazie per averli condivisi. Dal punto di vista della modellazione predittiva, abbiamo una solida base di partenza per questo tipo di dati.
1. Processo gaussiano e le comodità iterative offerte da BayesOpt. GP è probabilmente la soluzione migliore per sistemi regolari. MixedModel in Torch è simile.
2. XGBoost / LightGBM / Boosted Trees: Ideali per sistemi di interazione non lineari con cambiamenti repentini o addirittura discontinuità.
3. Reti neurali in Torch e JMP: ideali per sistemi con una fluidità moderata, a metà strada tra GP e alberi potenziati. Ampia ricchezza di struttura.
4. Grafici di reti neurali su SMILES in Torch: la soluzione più fedele alla struttura chimica, potenzialmente la migliore in assoluto.
I punti 3 e 4 sono facilmente combinabili in un unico modello e le migliori previsioni possibili si ottengono combinandoli tutti.
Oggetto: Opzione Bayesiana con descrittori continui di un input categoriale@MikeD_Anderson qualche buon consiglio per gestire il problema della percentuale come risposta? Mi è capitato spesso con i clienti (ad esempio nella percentuale di dissoluzione) dove le uniche misure sono in percentuale, e ho trovato difficile capire come aggiungere un limite massimo preciso, dato che nelle simulazioni sintetiche BayesOpt può comunque superare il valore limite.
Oggetto: Opzione Bayesiana con descrittori continui di un input categoriale@Ben_BarrIngh - la risposta "giusta" è che abbiamo bisogno dell'equivalente di GenReg per i processi stocastici (il modello surrogato utilizzato dalla nostra implementazione di BayesOpt). Questo ci permetterebbe di inserire la distribuzione beta (ovvero, BeSP invece della modellazione GaSP). Esistono formule matematiche per questo tipo di cose, ma bisognerebbe parlare con qualcuno del team di sviluppo o di gestione del prodotto per sapere se esiste una roadmap per questa funzionalità.
Per ora, la soluzione migliore che ho trovato è quella di trasformare termini come "Rendimento %" da obiettivo di massimizzazione a obiettivo target, impostando ad esempio il 99,5% come valore target. In questo modo, è possibile regolare i limiti superiore e inferiore della curva di desiderabilità per forzarla a ignorare i valori superiori al 100%. Dato che al momento l'algoritmo bayesiano di ottimizzazione (bayes opt) non gestisce bene questa operazione all'interno della piattaforma, è necessario inserire queste impostazioni nella proprietà della colonna di risposta. Sembra funzionare, ma si tratta di una soluzione provvisoria.

Oggetto: Opzione Bayesiana con descrittori continui di un input categorialeMolto utile, grazie @MikeD_Anderson
Oggetto: Opzione Bayesiana con descrittori continui di un input categorialePuoi anche provare a calcolare il logit della risposta proporzionale. È così che la regressione logistica converte i valori di successo/fallimento in dati su (–∞, +∞). Quindi, applica la funzione logistica alle previsioni per ritrasformarle in unità proporzionali. (Credo che JMP abbia una funzione Logit Percentuale? In questo modo non è necessario importare il 100).