SVEM-ADD-IN FÜR SUPPORT VECTOR MACHINEIch habe DOE-Ergebnisse, die ich mit Support Vector Machine modellieren möchte (es gibt starke nichtlineare Effekte, die mit einem polynomischen Modell nicht geschätzt werden können). Wie installiere ich das SVEM-Add-In?
Erweiterte statistische ModellierungVersuchsplanungPrädiktive Modellierung und maschinelles LernenBetreff: SVEM-Add-In für Support Vector MachineJa, Boosted Trees sind möglicherweise „vom Design her“ präziser als Random Forests, da sie durch das Training sequentieller Bäume iterativ Vorhersagefehler korrigieren. Die komplexen Aufteilungen, die während des Lernens sequentieller Bäume zur Verbesserung der Leistung vorgenommen werden, sind jedoch möglicherweise nur für den Trainingssatz gültig und spiegeln möglicherweise nicht wider, was bei neuen Datenpunkten passieren könnte.
Random Forest ist ein robuster Algorithmus in Bezug auf die Hyperparameter, sodass eine Erhöhung der Anzahl der Bäume über einen bestimmten Wert hinaus möglicherweise keine Auswirkungen auf die Leistungsbewertung hat. Siehe dazu meinen Beitrag auf LinkedIn und/oder den Artikel „ Tunability: Importance of Hyperparameters of Machine Learning Algorithms “: 1802.09596 (arxiv.org).
Betreff: SVEM-Add-In für Support Vector MachineMit geboostetem Baum R² = 0,85
Betreff: SVEM-Add-In für Support Vector MachineBei Random Forest erhalte ich selbst bei 2000 Bäumen einen schlechten R²-Wert von 0,63
Betreff: SVEM-Add-In für Support Vector MachineIch stimme nicht ganz zu, es gibt mehr Nuancen zwischen baumbasierten Modellen:
- Boosted Tree-Methoden wie XGBoost und andere verwenden sequenziell trainierte Bäume, um Vorhersagen schrittweise zu verfeinern und zu korrigieren. Sie werden stärker von den Eigenschaften des Trainingssatzes, der Größe, der Datenqualität, der Aufteilung der Datenpunkte, der Repräsentativität usw. beeinflusst, da sie iterativ versuchen, die besten Vorhersagen (jeder Baum „korrigiert“ die größten Vorhersagefehler des vorherigen Baums) für den Datensatz zu erzielen, mit dem sie trainiert werden.
Es handelt sich typischerweise um einen Algorithmus, der als „geringe Verzerrung – hohe Varianz“ beschrieben wird: Vorhersagen können sehr präzise sein, sind aber sehr empfindlich bzw. vom verwendeten Trainingsdatensatz beeinflusst.
- Random Forests verwenden parallel trainierte Bäume auf leicht unterschiedlichen Datensätzen (Bootstrap-Sets). Die gute Vorhersageleistung dieses Algorithmus ergibt sich aus der Mittelung der Vorhersagen der einzelnen Bäume. Man kann es sich als „ die Weisheit der Masse “ vorstellen: Wenn Sie jemanden nach dem Gewicht eines Wals fragen, ist die Antwort möglicherweise sehr ungenau und nicht präzise, aber wenn Sie die Antworten von Hunderten oder Tausenden von Menschen sammeln und die Ergebnisse mitteln, kann das Durchschnittsergebnis sehr nahe am tatsächlichen Wert liegen.
Es handelt sich typischerweise um einen Algorithmus, der als mittlere/geringe Verzerrung – geringe Varianz beschrieben wird: Vorhersagen können präzise sein (abhängig von der Mittelung der einzelnen Ergebnisse und der Komplexität/Anzahl der einzelnen Bäume) und sie sind dank des Bootstrapping-Prozesses und des individuellen Trainings der Bäume (mit unterschiedlichen Merkmalen) gegenüber dem Trainingsdatensatz recht robust.
Hier ist eine kurze visuelle Darstellung der verschiedenen baumbasierten Modelle (mir gefällt nicht, dass die einzelnen Bäume im Random Forest die gleiche Struktur haben, aber es ist ein vereinfachtes Schema):

Um Ihre Frage zu beantworten: Bei kleinen Datensätzen wie DoE würde ich Random Forests statt Boosted Tree-Methoden ausprobieren, um mehr Vertrauen in die Ergebnisse zu haben, einen Algorithmus zu verwenden, der weniger anfällig für Überanpassung ist, und bessere Generalisierungseigenschaften zu haben.
Betreff: SVEM-Add-In für Support Vector MachineIch schätze, baumbasierte Modelle wie Random Forest und XGboost erfordern einen großen Datensatz, es sei denn, Sie können SVEM für kleine Datensätze verwenden, richtig?
Betreff: SVEM-Add-In für Support Vector MachineHallo @frankderuyck ,
Gut zu wissen !:)
Ich verwende neuronale Netzwerke als letzte mögliche Modellierungsoption. Es gibt viele klassische Modelle und einfachere ML-Algorithmen, die genauso gut (und manchmal sogar besser) funktionieren. Diese anderen Optionen sind auch schneller zu berechnen, erfordern keine erweiterten Kenntnisse, Tests und Validierungen zur Feinabstimmung (im Gegensatz zu neuronalen Netzwerken, bei denen Sie die Architektur mit der Anzahl der Schichten, der Art der Funktionen, der Verstärkung oder nicht usw. angeben oder das Add-In zur Optimierung neuronaler Netzwerke verwenden müssen) und sind einfacher zu interpretieren (in Bezug auf Antwortprofile und relative Faktorenwichtigkeit).
Wenn bei tabellarischen Daten neuronale Netzwerke das einzige Modell sind, das gute Ergebnisse liefert, besteht eine gute Chance, dass Sie andere Probleme in Bezug auf Datenqualität, Repräsentativität, fehlende Werte/Ausreißer, Wiederholbarkeit/Reproduzierbarkeit usw. haben.
Baumbasierte Modelle bieten einen guten Leistungsmaßstab und sind oft eine sichere und zuverlässige Option, siehe den Artikel „ Warum übertreffen baumbasierte Modelle bei tabellarischen Daten immer noch das Deep Learning ?“ (2022) https://arxiv.org/abs/2207.08815
In Ihrem Screenshot scheint das mit dem Tuning-Design gefundene optimale SVM-Modell recht interessant zu sein:
- Es werden 10 Support-Vektoren verwendet, sodass weniger als die Hälfte der Punkte zum Erstellen der im SVM-Modell verwendeten „Grenzen“/Vektoren verwendet werden, was ein gutes Zeichen für geringe Komplexität und gute Generalisierungseigenschaften sein kann.
- Der Krümmungswert (Gamma) ist ziemlich niedrig, so dass das Antwortprofil und die Grenzen nicht zu komplex und stark gekrümmt sein dürfen (also wiederum geringe Komplexität und gute Generalisierungseigenschaften),
- Die Strafe (Kostenwert) scheint recht hoch, aber bei einem kleinen Datensatz ist dies in der Praxis oft der Fall, da jeder falsch klassifizierte/falsch vorhergesagte Punkt die Fehlklassifizierungsrate/RMSE stark erhöht: 1 falsch klassifizierter Punkt von 25 = 4 % Fehlklassifizierungsrate, verglichen mit einem größeren Datensatz, bei dem ein falsch klassifizierter Punkt weniger als 1 % Fehlklassifizierungsrate bedeuten würde. In manchen Situationen kann es interessant sein, ein Modell mit einem etwas größeren Fehler (RMSE/Fehlklassifizierungsrate), aber mit viel weniger Support-Vektoren zu wählen: Sie verschlechtern Ihre Vorhersageleistung im Trainingssatz zugunsten eines weniger komplexen Modells, das möglicherweise besser auf neue Daten verallgemeinern kann.
Sie können die vom Tuning-Design generierte Tabelle mit den Leistungsmetriken verwenden, um die relative Bedeutung und den Beitrag der beiden Hyperparameter zu den Leistungsmetriken (Fehlklassifizierungsrate für die Klassifizierung oder RASE und R² für die Regression) besser einzuschätzen.
Wie immer wird empfohlen, Ihr Modell mit neuen Validierungspunkten zu validieren, um sicherzustellen, dass Ihr Modell nicht überangepasst ist.
Betreff: SVEM-Add-In für Support Vector MachineHallo Victor, dieses Tuning-Design funktioniert großartig. Ich möchte eine Qualitätsantwort Y als Funktion von drei Y-FPCAs aus NIR-Spektren (FDA) modellieren. Ich habe es mit einem neuronalen Netzwerk versucht, aber selbst mit 3 TanH-Knoten zeigt der Profiler meiner Meinung nach eine zu hohe und unregelmäßige Krümmung. SVE macht nach dem Tuning einen guten Job, ich unterstütze vektorielles maschinelles Lernen!


Betreff: SVEM-Add-In für Support Vector MachineHallo @frankderuyck ,
Einige Fragen, bevor ich Ihre beantworte:
- Warum möchten Sie SVEM für SVM verwenden? Support Vector Machines ist ein robuster ML-Algorithmus, der für kleine Datensätze wie DoE verwendet werden kann. Weitere Informationen zur Robustheit des Algorithmus auf LinkedIn.
Es gibt auch viele Möglichkeiten, Overfitting für SVM zu bewerten, ohne einen Validierungssatz zu verwenden, indem Sie die Anzahl der Support-Vektoren und die Werte für Strafe (Kosten) und Krümmung (Gamma) überprüfen, wenn Sie Ihre SVM-Hyperparameter mit einem Tuning-Design feinabgestimmt haben ... Ich denke darüber nach, einen Blog-Beitrag über die Bewertung und Vermeidung von Overfitting für robuste Algorithmen (SVM, Random Forest) ohne Validierung (z. B. in DoE-Datensätzen) zu schreiben.
- Haben Sie auch andere Algorithmen in Betracht gezogen? SVM ist ein robuster Algorithmus für die Analyse kleiner Datensätze, aber Random Forest kann auch gute Ergebnisse liefern und kann ein guter Maßstab zur Bewertung und zum Vergleich von Leistungen sein. Weitere Informationen zu Random Forests auf LinkedIn.
- Wie viele Ebenen haben Sie für Ihre Faktoren? ML-Algorithmen können nur dann nützlich sein, wenn Sie für jeden Ihrer Faktoren genügend Ebenen haben, um eine reibungslose Interpolation zu ermöglichen. Mehr als 3 Ebenen können ein guter Ausgangspunkt sein.
Was die Verwendung von SVEM betrifft, können Sie auf verschiedene Arten darauf zugreifen:
- In der Plattform „Validierungsspalte erstellen“ haben Sie die Möglichkeit, eine Autovalidierungstabelle zu erstellen: Starten Sie die Plattform „Validierungsspalte erstellen“ (jmp.com). Dadurch werden die Zeilen dupliziert und eine Spalte mit antikorrelierten Gewichten (zwischen Training und Validierung) erstellt, die Sie beim Start der Plattform als „Häufigkeit“ verwenden können. Sie können dann Vorhersageergebnisse simulieren, indem Sie die Gewichte zwischen Training und Validierung variieren (klicken Sie mit der rechten Maustaste auf ein Feld mit Validierungsergebnissen, klicken Sie auf „Simulieren“ und geben Sie die Spalte mit den Gewichten als die Spalte an, die ein- und ausgeschaltet werden soll).
- Sie können auch das Add-In SVEM herunterladen, das dieselben Aufgaben wie die Autovalidierungstabelle erfüllt: Überdenken Sie das Design und die Analyse von Experimenten? (2021-EU-30MP-776) – JMP-Benutzergemeinschaft
Sie können dann dieselben Schritte wie zuvor reproduzieren und Ergebnisse simulieren, um die Robustheit des Modells zu beurteilen.
Ich möchte jedoch betonen, dass die Kreuzvalidierung (K-Falten oder SVEM) eigentlich keine Validierungsmethode ist, sondern eher eine „Debugging“-Methode zur Bewertung der Robustheit der Algorithmusleistung bei verschiedenen Trainings- und Validierungssätzen. Die Hauptschwierigkeit nach der Verwendung einer Kreuzvalidierungstechnik besteht darin, die Ergebnisse zu interpretieren und weiter vorzugehen:
Die einzelnen, auf verschiedenen Folds trainierten Modelle mitteln? Ein Ensemble aus diesen Modellen erstellen? Das beste auf einem Fold trainierte Modell behalten (diese Option würde ich nicht empfehlen)? Das Modell auf dem gesamten Datensatz trainieren, nachdem die Robustheit mit der Kreuzvalidierung geprüft wurde? ... Auf diese Frage gibt es keine definitive Antwort und sie hängt mit dem Datensatz, der Komplexität der Modellierung, der Leistungsverbesserung, den Praktiken des Benutzers usw. zusammen.
Mehr Infos hier mit einigen Episoden von Cassie Kozyrkov zum Thema Kreuzvalidierung: https://youtu.be/zqD0lQy_w40?si=41jfBs83Q0TIlusr
https://youtu.be/by59hsYO0Lg?si=XeZ33j2e4jKQPaRA
Hoffe, diese Antwort wird Ihnen helfen,
Betreff: SVEM-Add-In für Support Vector MachineHallo Victor, mit etwas Verzögerung ... warum würden Sie Random Forest gegenüber SVEM für die Modellierung von DOE-Daten wählen?
Betreff: SVEM-Add-In für Support Vector MachineHallo @frankderuyck ,
Dabei handelt es sich um zwei unterschiedliche Überlegungen:
- SVEM ist eine Validierungsstrategie, die auf jedes Modell angewendet werden kann, von der linearen Regression bis hin zu neuronalen Netzwerken.
- Random Forest ist ein Modell des maschinellen Lernens.
Beiden gemeinsam ist eine Methode, um Überanpassung bei der Modellierung zu verhindern:
- Random Forest verwendet Bootstrap-Stichproben und „ Out-of-Bag “-Stichproben als „interne“ Modellvalidierung. Die „Out-of-Bag“-Stichproben sind ein Teil der Daten, der nicht im Training verwendet wird: Trainingsstichproben sind Bootstrap-Stichproben, die mit Ersetzung im Originaldatensatz abgetastet wurden. Theoretisch können Sie berechnen, dass durch das Sampling mit Ersetzung Ihrer Originaldaten etwa 1/3 Ihrer Daten nicht abgetastet werden: maschinelles Lernen – Random Forests Out-of-Bag-Stichprobengröße – Kreuzvalidierung (stackexchange.com)
Diese Stichprobe stellt die „Out-of-Bag“-Stichprobe dar, die nicht beim Training des Random Forest verwendet wurde, und ermöglicht die Bewertung/Validierung der Relevanz und Genauigkeit des Modells.
- SVEM verwendet antikorrelierte Gewichte für Training und Validierung, was bedeutet, dass ein Experiment mit einem hohen Gewicht für Training ein niedriges Gewicht für Validierung hat. Indem Sie ein Modell mit diesem Validierungs-Setup anpassen und dann die Gewichte ändern und das Modell mit neuen Gewichten für Training und Validierung viele Male neu anpassen, erhalten Sie leicht unterschiedliche Modelle, die Sie zusammenstellen/kombinieren können, um die Varianz zu reduzieren (und Überanpassung zu vermeiden).
Nun meine persönliche Meinung und Wahl:
- Was ich häufig sehe, sind Leute, die SVEM für ihre DoE mit hochkomplexen Modellen verwenden, ohne weitere Überlegungen anzustellen oder vorher Analysen/Modellierungen durchzuführen. Man kann beispielsweise oft sehen, dass SVEM mit neuronalen Netzwerken für relativ einfache Designs und Ergebnisse angewendet wird. Für mich klingt das wie „ mit einer Bazooka eine Fliege töten “: Ich neige dazu, die einfachsten Optionen/Modelle zu wählen, bevor ich die Komplexität erhöhe (falls nötig): Ockhams Rasiermesser . Sie müssen auch berücksichtigen, wie viele Ebenen Sie für Ihre Faktoren haben und andere Überlegungen (wie Dimensionalität), da Machine-Learning-Modelle interpolierende Modelle sind, die sehr effizient darin sind, ein Muster zwischen Punkten zu finden. Wenn Sie also nur 2-3 Ebenen für Ihre Faktoren haben, reicht das möglicherweise nicht aus, um mit Machine Learning wirklich einen Nutzen zu erzielen.
- Wenn Sie über genügend Ebenen verfügen und die herkömmliche lineare Modellierung aufgrund nichtlinearer Beziehungen nicht geeignet erscheint, könnten Sie Machine-Learning-Modelle ausprobieren wollen.
- Da Sie mit Ihrem DoE einen kleinen, aber hochwertigen Trainingsdatensatz haben, müssen Sie ein ML-Modell wählen, das einfach (keine oder wenige und einfache Feinabstimmung der Hyperparameter), robust (weniger empfindlich gegenüber der Einstellung der Hyperparameterwerte) und weniger anfällig für Überanpassung ist, da Sie Ihre DoE-Daten nicht in Trainings- und Validierungssätze aufteilen können. Hier sind Random Forests (mit seiner internen „Out-of-bag“-Stichprobenvalidierung) und SVM (Sie können die Überanpassungsmöglichkeit anhand der Wahl der Hyperparameter und der Anzahl der Support-Vektoren bewerten) interessant.
Außerdem bietet die Verwendung eines robusten ML-Algorithmus anstelle eines komplexen Algorithmus mit einer SVEM-Strategie weitere Vorteile, wie etwa eine kürzere Rechenzeit und eine einfachere Interpretierbarkeit.
Ich hoffe, diese Antwort hilft Ihnen weiter und ergibt für Sie Sinn.
Betreff: SVEM-Add-in für Support Vector MachineHallo Victor, ich habe versucht, das für Mischungsanalysen zu verwenden und ein gutes Modell erhalten, aber die Optimierung mit dem Profiler hat nicht funktioniert, da die Summe der Komponentenwerte nicht 1 ergab, sondern fast 3. Dasselbe passiert auch bei anderen ML-Modellen, PLS und sogar Gen Reg.
Betreff: SVEM-Add-in für Support Vector MachineHallo Franck,
Haben Sie überprüft, ob Ihre Mischungsfaktoren die richtigen Spalteneigenschaften aufweisen?
- "Mischung" mit niedrigen und hohen individuellen Faktorwerten
- "Designrolle" mit der Rolleneinstellung "Mischung"
- "Faktoränderungen" auf "Einfach" einstellen (oder einen anderen Typ, wenn Sie ein Split-Plot-/eingeschränktes Randomisierungsszenario haben)
Hier ist ein Beispiel zu Donev-Mischungsdaten mit dem Faktor CuSO4:

Beim Starten des Profilers aus dem Gaussian Process (oder einem anderen ML-Modell) wird die Mischungsbeschränkung beachtet und durchgesetzt (die Mischungsfaktoren summieren sich immer zu 1):
Ich hoffe, diese Antwort löst Ihr Problem.
Betreff: SVEM-Add-in für Support Vector MachineOkay Victor, danke!