Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorischen EingabeHallo,
Ein Kunde fragte nach der Verwendung von Bayes-Opt-Verfahren in einer Situation, in der er eine einzige kategoriale Eingabe (z. B. Katalysatortyp) hat, die er mithilfe mehrerer kontinuierlicher Variablen (z. B. chemischer Deskriptoren) beschreiben kann.
Ich weiß, dass dies mithilfe der Deskriptorentabelle als Kandidatenmenge möglich ist. Hat jemand Beispiele von Kunden gesehen, die dies umgesetzt haben? Oder haben Softwareentwickler dies bereits mit simulierten Beispielen getestet?
Danke
Phil
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeHallo @Phil_Kay ,
Wollen sie herausfinden, welchen Einfluss die Zusammensetzung des Katalysators auf den Gesamtprozess hat (ein Modell erstellen), um die Zusammensetzung des Katalysators zu kontrollieren/anzupassen?
Ähnliches habe ich von Kunden (zum Beispiel in der Parfümentwicklung) gehört: Sie können die Verbindungen A, B oder C verwenden, sie kennen deren Zusammensetzung (z. B. 10 % Öl, 5 % Alkohol), können aber keine gezielten Experimente damit durchführen, weil sie die Verhältnisse nicht verändern können, was bedeutet, dass BayesOpt wenig Nutzen hat.
Prost,
Ben
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeHallo @Phil_Kay , falls Ihnen das weiterhilft: Die beigefügte Tabelle stammt aus dem Assistant und enthält folgende Aufforderung: „Simulieren Sie QSAR-Daten, um den Katalysatortyp mithilfe chemischer Deskriptoren vorherzusagen. Verwenden Sie realistische chemische Beziehungen und stellen Sie sicher, dass einige Deskriptoren signifikant sind.“
Es gibt auch ein Skript für ein XGBoost-Modell, das anscheinend gut funktioniert.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeDanke, Ben. Ich glaube, ihr Ziel ist es, den besten Katalysator für die optimale Ausbeute auszuwählen. Es stehen möglicherweise 50 Katalysatoren zur Auswahl. Jeder Katalysator hat einzigartige Werte für die Deskriptorvariablen, die seine unterschiedlichen chemischen Eigenschaften widerspiegeln. Da es zu viele Reaktionsläufe wären, können sie nicht einfach alle testen. Daher besteht die Idee darin, die Deskriptorvariablen als Faktoren in der Bayes-Opt-Methode zu verwenden, um den Eigenschaftenraum der Katalysatoren rational zu erkunden und sich dem optimalen Katalysator anzunähern.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeDanke, @russ_wolfinger . Das sieht schon gut aus. Ich denke aber an einen Kandidatensatz mit 50 verschiedenen Katalysatoren. Entschuldigung, meine Formulierung „Katalysatortyp“ war wohl nicht optimal. Jeder Katalysator hätte eindeutige Werte für die Deskriptoren.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeDanke für die Klarstellung, Phil.
Gibt es vielleicht ein kontinuierliches Ziel Y (z. B. Ausbeute), das als Funktion der Deskriptoren optimiert werden soll? Dient der Katalysatorname dann als Zeilenbezeichnung?
Unter dieser Annahme könnten die Daten mittels BayesOpt analysiert werden, um Deskriptorwerte zu finden, die Y optimieren. Sobald diese gefunden sind, wäre meines Erachtens die Fähigkeit erforderlich, einen Katalysator mit der optimalen Deskriptorkombination (oder zumindest einer guten Annäherung daran) zu synthetisieren.
Alternativ kann die QSAR-Modellierung (Quantitative Struktur-Aktivitäts-Beziehung) ein Vorhersagemodell für Y als Funktion der Deskriptoren erstellen. XGBoost oder Torch eignen sich hierfür gut. Anschließend können Sie den Profiler verwenden, um Y zu optimieren oder das angepasste Modell zur Vorhersage bisher nicht vermessener Katalysatoren mit bekannten Deskriptoren zu nutzen.
Falls Sie SMILES-Strings für die Katalysatoren haben, dann verfügt Torch über Graph-Neural-Network-Modelle, die in der Regel sehr gut funktionieren.
Ich habe den simulierten Daten eine Spalte „Ertrag“ hinzugefügt.
Russ
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeJa, die Ausbeute wäre in den meisten Fällen die Zielgröße, obwohl auch Verunreinigungsgrad und Kosten eine Rolle spielen könnten. Die Ausbeute ist unbekannt und kann erst durch die Durchführung der Reaktion bestimmt werden. Da es nicht möglich ist, die Reaktion mit allen 50 Katalysatoren durchzuführen, würde man Bayes'sches Optimierungsverfahren anwenden, um den Eigenschaftenraum der Katalysatoren (hoffentlich) effizient zu erkunden. Ich denke, man würde sich letztendlich für den Katalysator entscheiden, der die besten Ergebnisse liefert. Sollte das Modell jedoch optimale Eigenschaften vorschlagen, die sich von einem der Katalysatoren unterscheiden, könnte man weitere Kandidaten in die engere Auswahl aufnehmen.
Ich denke, das sollte möglich und relativ unkompliziert sein.
Ich bin mir jedoch nicht sicher, ob zusätzliche Prozessvariablen wie beispielsweise Temperatur oder pH-Wert möglich wären. Ich gehe davon aus, dass dies wichtig wäre. Meiner Meinung nach wäre die einzige Möglichkeit, dies zu realisieren, die Erstellung eines Kandidatensatzes für die Katalysatordeskriptoren und eines für die Prozessfaktoren (etwa mittels eines raumfüllenden Versuchsplans) und anschließende Produktbildung. Man hätte also einen sehr großen Kandidatensatz mit mehreren Prozessfaktorbehandlungen für jeden Katalysator und seine Deskriptoren.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeBei der Verwendung der Ausbeute als Zielgröße für BayesOpt ist mir Folgendes aufgefallen, das beachtet werden sollte: Wenn das Ziel für die Ausbeute auf „Maximierung“ gesetzt ist und die Ausbeute als Prozentsatz anstatt in absoluten Einheiten (z. B. g/L) angegeben wird, kann der Algorithmus – ähnlich wie die OLS-Methode – unphysikalische Ergebnisse vorhersagen (z. B. 103 % Ausbeute). Dies könnte zu ungewöhnlichen Versuchsvorschlägen führen.Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeHallo @Phil_Kay ,
Es gibt einige öffentliche Daten, die für Ihren Fall relevant sein könnten: https://github.com/SigmanGroup/Threshold/tree/main/examples
Ich habe den Datensatz kurz heruntergeladen und ihn als Kandidatenset und Nachschlagetabelle getestet. (Dies scheint eine verwandte Publikation zu sein : https://www.science.org/doi/10.1126/science.abj4213?referrer=https%3A%2F%2Fgithub.com%2FSigmanGroup%2FThreshold%2Ftree%2Fmain )
Der Nachteil meines ersten kurzen Tests ist, dass BayesOpt anscheinend bei einer einzigen Empfehlung hängen geblieben ist (die übrigens für eine Antwort genau richtig war).
Vielleicht sind synthetische Daten die „sicherere“ Option für Demos...
Ich hoffe, das hilft.
Florian
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeNun, ich denke, es hat das Optimum sehr effektiv gefunden! Es dürfte noch interessanter werden, wenn man auch Prozessvariablen einbezieht und deren Wechselwirkungen mit den Katalysatordeskriptoren berücksichtigt. Wie bereits erwähnt, dürfte das aber aktuell ein anspruchsvoller Arbeitsablauf sein.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeIn der Tat 
Ja, in diesem Fall könnte ein synthetischer Datensatz die richtige Wahl sein.
Unilever hat im Prinzip erklärt, dass BayesOpt in diesem Bereich (Produkt- und Prozessentwicklung) sehr gut funktioniert (sie verwenden allerdings die chemischen Eigenschaften der Inhaltsstoffe anstelle von Katalysatoren/QSAR und möglicherweise anderen Prozessparametern wie Rühren usw.). Derzeit läuft eine Evaluierungsphase, und es wurden noch keine Ergebnisse veröffentlicht. Bis Ende Oktober erhalte ich aber vielleicht detailliertere Einblicke – möglicherweise sogar eine öffentliche Fallstudie.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeDas wäre sehr schön. Ich denke, wir werden in Zukunft immer mehr erfolgreiche Fallstudien von Kunden sehen, die uns wirklich helfen werden, den Mehrwert zu vermitteln.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeTolle Daten, Florian, danke fürs Teilen. Wir haben aus der Perspektive der prädiktiven Modellierung eine sehr überzeugende Geschichte zu diesen Daten:
1. Gaußprozesse und die iterativen Vorteile von BayesOpt. Gaußprozesse eignen sich wahrscheinlich am besten für glatte Systeme. MixedModel in Torch ist ähnlich.
2. XGBoost / LightGBM / Boosted Trees: Am besten geeignet für nichtlineare Interaktionssysteme mit abrupten Änderungen oder sogar Diskontinuitäten.
3. Neuronale Netze in Torch und JMP: Am besten geeignet für Systeme mit moderater Glättung, zwischen GP und Boosted Trees. Umfangreiche Strukturvielfalt.
4. Graph Neural Nets on SMILES in Torch: Am genauesten in der chemischen Struktur, möglicherweise die beste Wahl.
3 und 4 lassen sich problemlos zu einem Modell kombinieren, und die bestmöglichen Vorhersagen erhält man durch die Kombination aller Modelle.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen Eingabe@MikeD_Anderson Hast du vielleicht ein paar Tipps, wie man mit Prozentwerten als Antwortvariable umgehen kann? Ich bin dem Problem häufig bei Kunden begegnet (z. B. bei Auflösungsquoten), wo Prozentwerte die einzigen Kennzahlen sind. Mir fällt es schwer zu verstehen, wie man eine strikte Obergrenze einbaut; selbst bei synthetischen Simulationen kann BayesOpt diese überschreiten.
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen Eingabe@Ben_BarrIngh – Die „richtige“ Antwort lautet: Wir benötigen das Äquivalent von GenReg für stochastische Prozesse (das Ersatzmodell, das unsere Implementierung von BayesOpt verwendet). Dadurch könnten wir die Beta-Verteilung einbeziehen (d. h. BeSP- statt GaSP-Modellierung). Es gibt mathematische Ansätze dafür – aber jemand aus der Entwicklung oder dem Produktmanagement müsste klären, ob es dafür eine Roadmap gibt.
Bislang ist die beste Lösung, die ich gefunden habe, Begriffe wie „Ertrag %“ von einem Maximierungsziel in ein Zielwertziel umzuwandeln und beispielsweise 99,5 % als Zielwert festzulegen. Anschließend können Sie die Ober- und Untergrenzen der Zielfunktion anpassen, um Werte über 100 % zu ignorieren. Da BayesOpt dies aktuell auf der Plattform etwas umständlich handhabt, müssen Sie diese Einstellungen in den Eigenschaften der Antwortspalte vornehmen. Das scheint zwar zu funktionieren, ist aber nur eine Notlösung.

Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeSehr hilfreich, danke @MikeD_Anderson
Betreff: Bayes-Entscheidung mit kontinuierlichen Deskriptoren einer kategorialen EingabeSie können auch versuchen, den Logit der Anteilsantwort zu berechnen. So wandelt die logistische Regression „bestanden/nicht bestanden“ in Daten im Intervall (–∞, +∞) um. Anschließend können Sie die logistische Funktion der Vorhersagen verwenden, um diese wieder in Anteilseinheiten umzurechnen. (Ich glaube, JMP bietet eine Funktion namens „Logit-Prozent“ an. Dann müssen Sie die 100 nicht mehr mit sich herumtragen.)