SMAC - Eine gute Wealth Lab Optimierungsmethode

Was ist genau SMAC: Sequential Model-based Algorithm Configuration?

SMAC (sequentielle modellbasierte Algorithmuskonfiguration) ist ein vielseitiges Werkzeug zur Optimierung von Algorithmusparametern (oder der Parameter eines anderen Prozesses, den wir automatisch ausführen können, oder einer Funktion, die wir auswerten können, wie z. B. einer Simulation).

SMAC

Viele Algorithmen gehören zur Familie der Baum- und Ensemble-Algorithmen, die schwer zu berechnen sind und viele Hyperparameter aufweisen, die zur Verbesserung der Leistung geändert werden können.  Die manuelle Suche nach diesen Parametern und deren Einstellung für optimierte Lösungen ist jedoch eine schwierige Aufgabe und führt oft zu unbefriedigenden Ergebnissen.

SMAC hat uns geholfen, sowohl lokale Such- als auch Baumsuchalgorithmen bei bestimmten Instanzverteilungen um Größenordnungen zu beschleunigen. Kürzlich haben wir auch festgestellt, dass SMAC sehr effektiv für die Hyperparameter-Optimierung von Algorithmen für maschinelles Lernen ist und besser auf hohe Dimensionen und diskrete Eingabedimensionen skaliert als andere Algorithmen. Schließlich können die Vorhersagemodelle, auf denen SMAC basiert, auch wichtige Informationen über die Modelldomäne erfassen und ausnutzen, z. B. welche Eingabevariablen am wichtigsten sind.

Wenn Sie bis jetzt verwirrt sind, kein Problem, wir versuchen es jetzt eher praktisch zu erklären.

Stellen wir uns die Frage, was ist eigentlich das Ziel der Optimierung einer Handelsstrategie?

Viele Entwickler versuchen, bei der Optimierung die bestmögliche Leistung (Metrikwert) zu erzielen und vergessen dabei völlig, dass diese Ergebnisse nur für die bei der Optimierung verwendeten Daten gelten.

Was wirklich zählt, ist das Verhalten der (optimierten) Strategie bei neuen, ungesehenen, zukünftigen Daten, mit anderen Worten die Out-Of-Sample-Performance.

Schließlich wollen wir die Strategie in Echtzeit handeln und so viel Gewinn wie möglich machen.

Das heißt, die Optimierung soll nicht die "beste Lösung" finden, sondern eine Parameterkombination, die Out-Of-Sample so gut wie möglich funktioniert.

Wie können wir das tun?

Am einfachsten ist es, das optimierte Handelssystem an ungesehenen Daten zu überprüfen: Teilen Sie die verfügbaren historischen Daten in (mindestens) zwei Intervalle ein: Insample (zum Beispiel 1.1.2000 bis 31.12.2018) und Out-Of-Sample (zum Beispiel 1.1.2019 bis 31.12.2022).

Führen Sie alle Ihre Optimierungen nur für das Insample-Intervall durch.

Joe Peters

Das heißt, die Optimierung soll nicht die "beste Lösung" finden, sondern eine Parameter-kombination, die Out-Of-Sample so gut wie möglich funktioniert.

Dr. René Koch

Founder of finantic

Wenn Sie fertig sind, führen Sie Ihre "beste Lösung" auf dem Out-Of-Sample-Intervall aus.
(Sie werden überrascht sein. Seien Sie nicht traurig! Das ist normal...)

Wenn ich dies tue, verwende ich einige Leistungskennzahlen aus der IS/OS Sorecard (verfügbar mit der finantic.ScoreCard Extension), die die beiden oben genannten Teile gleichzeitig ausführt.

Darüber hinaus wird ein Diagramm erstellt, in dem man buchstäblich sehen kann, wo die Überoptimierung beginnt:

Überoptimierung


Die blaue Linie (Insample) zeigt die spektakulären Ergebnisse aus unserem Optimierungslauf. Die rote Linie (Out-of-Sample) zählt.

Bitte beachten Sie: Die "beste Lösung", die durch die blaue Linie auf der rechten Seite angezeigt wird, liegt weit im "überoptimierten Bereich", d.h. die Parameterkombination, die hinter diesen "besten APR_IS-Werten" steht, ist im realen Handel nutzlos.

Das Diagramm deutet auch darauf hin, dass es nicht notwendig ist, mehr als 1000 oder 2000 Iterationen zu versuchen.

Quelle: Artikel über SMAC übersetzt ins deutsche: https://analyticsindiamag.com/hands-on-guide-to-algorithm-configuration-using-smac/
W
ealthlab Forum: https://www.wealth-lab.com/Discussion/Why-is-SMAC-Optimizer-better-8877