SlideShare a Scribd company logo
1 of 38
Download to read offline
SigOpt. Confidential.
Talk #3
Training, Tuning, and Metric Strategy
SigOpt Talk Series
Tuning for Systematic Trading
Tobias Andreasen — Machine Learning Engineer
Tuesday, May 19, 2020
SigOpt. Confidential.
Abstract
SigOpt provides an extensive set of advanced features,
which help you, the expert, save time while
increasing model performance via experimentation.
Today, we will continue this talk series by discussing
training, tuning, and metric strategies in the context of
SigOpt, and use this to come up with a recipe for how
this can be used for model experimentation.
SigOpt. Confidential.
Overview of SigOpt
SigOpt. Confidential.
Accelerate and amplify the
impact of modelers everywhere
SigOpt. Confidential.
Experiment Insights Optimization Engine
Track, analyze and reproduce any
model to improve the productivity of
your modeling
Enterprise Platform
Automate hyperparameter tuning to
maximize the performance and impact
of your models
Standardize experimentation across
any combination of library,
infrastructure, model or task
On-Premise Hybrid/Multi
Solution: Experiment, optimize and analyze at scale
5
SigOpt. Confidential.
SigOpt Features
Enterprise
Platform
Optimization
Engine
Experiment
Insights
Reproducibility
Intuitive web dashboards
Cross-team permissions
and collaboration
Advanced experiment
visualizations
Usage insights
Parameter importance
analysis
Multimetric optimization
Continuous, categorical, or
integer parameters
Constraints and
failure regions
Up to 10k observations,
100 parameters
Multitask optimization and
high parallelism
Training Monitor and
Automated Early Stopping
Infrastructure agnostic
REST API
Parallel Resource Scheduler
Black-Box Interface
Tunes without
accessing any data
Libraries for Python,
Java, R, and MATLAB
SigOpt. Confidential.
Experimentation Recipe
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Black Box Optimization
Your firewall
Training
Data
AI, ML, DL,
Simulation Model
Model Evaluation
or Backtest
Testing
Data
New
Configurations
Objective
Metric
Better
Results
EXPERIMENT INSIGHTS
Track, organize, analyze and
reproduce any model
ENTERPRISE PLATFORM
Built to fit any stack and scale
with your needs
OPTIMIZATION ENGINE
Explore and exploit with a
variety of techniques
RESTAPI
Configuration
Parameters or
Hyperparameters
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
8
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
9
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
class SIGOPT:
APITOKEN =
'PPPPPOJUZPFSAAAAADSSEYPCPNPGGGGGLNLRYKSRBWYZTTFI'
CLIENTID = 1
PROJECT = 'quant_series'
Creating SigOpt Project
SigOpt Access Class
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Your firewall
Training
Data
AI, ML, DL,
Simulation Model
Model Evaluation
or Backtest
Testing
Data
New
Configurations
Objective
Metric
Better
Results
EXPERIMENT INSIGHTS
Track, organize, analyze and
reproduce any model
ENTERPRISE PLATFORM
Built to fit any stack and scale
with your needs
OPTIMIZATION ENGINE
Explore and exploit with a
variety of techniques
RESTAPI
Configuration
Parameters or
Hyperparameters
10
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Load Data
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
11
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
class Data:
X, Y = datasets.load_breast_cancer(return_X_y=True)
def __init__(self, test_size=0.3):
self.x_train, self.x_test, self.y_train, self.y_test = train_test_split(
self.X, self.Y, test_size=test_size)
def train_data(self,):
return [self.x_train, self.y_train]
def test_data(self,):
return [self.x_test, self.y_test]
def num_features(self,):
return self.X.shape[1]
def num_classes(self,):
return len(np.unique(self.Y))
Load Data
Data Loader Class
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Your firewall
Training
Data
AI, ML, DL,
Simulation Model
Model Evaluation
or Backtest
Testing
Data
New
Configurations
Objective
Metric
Better
Results
EXPERIMENT INSIGHTS
Track, organize, analyze and
reproduce any model
ENTERPRISE PLATFORM
Built to fit any stack and scale
with your needs
OPTIMIZATION ENGINE
Explore and exploit with a
variety of techniques
RESTAPI
Configuration
Parameters or
Hyperparameters
12
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Create Evaluation Framework
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
13
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
class Evaluation:
METRICS = [{'name': 'accuracy', 'objective': 'maximize', 'strategy': 'optimize'},
{'name': 'f1', 'objective': 'maximize', 'strategy': 'store'},
{'name': 'precision', 'objective': 'maximize', 'strategy': 'store'},
{'name': 'recall', 'objective': 'maximize', 'strategy': 'store'}, ]
@classmethod
def return_object(cls, y):
y_true = y[0]
y_hat = y[1]
# needs to be replaced by data input and score calculations
scores = []
scores.append(accuracy_score(y_true, y_hat))
scores.append(f1_score(y_true, y_hat, average='macro'))
scores.append(precision_score(
y_true, y_hat, average='macro', zero_division=1))
scores.append(recall_score(y_true, y_hat, average='macro'))
return [{'name': m['name'], 'value': s} for m, s in zip(cls.METRICS, scores)]
Create Evaluation Framework
Model Evaluation Class
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Your firewall
Training
Data
AI, ML, DL,
Simulation Model
Model Evaluation
or Backtest
Testing
Data
New
Configurations
Objective
Metric
Better
Results
EXPERIMENT INSIGHTS
Track, organize, analyze and
reproduce any model
ENTERPRISE PLATFORM
Built to fit any stack and scale
with your needs
OPTIMIZATION ENGINE
Explore and exploit with a
variety of techniques
RESTAPI
Configuration
Parameters or
Hyperparameters
14
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Create Model
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
15
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
class LogisticRegression:
NAME = 'Logistic Regression'
BUDGET = 10
PARAMETERS = [{'name': 'log_c', 'type': 'double',
'bounds': {'min': -11, 'max': 0}, 'grid': BUDGET}]
def __init__(self, assignment):
c = np.exp(assignment['log_c'])
self.model = LogisticRegression(C=c)
self.y_hat = None
self.y_true = None
def train(self, data):
x = data[0]
y = data[1]
self.model.fit(x, y)
def test(self, data):
x = data[0]
y = data[1]
self.y_hat = self.model.predict(x)
self.y_true = y
def evaluate(self,):
return [self.y_true, self.y_hat]
Create Model
Baseline Model Class
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Your firewall
Training
Data
AI, ML, DL,
Simulation Model
Model Evaluation
or Backtest
Testing
Data
New
Configurations
Objective
Metric
Better
Results
EXPERIMENT INSIGHTS
Track, organize, analyze and
reproduce any model
ENTERPRISE PLATFORM
Built to fit any stack and scale
with your needs
OPTIMIZATION ENGINE
Explore and exploit with a
variety of techniques
RESTAPI
Configuration
Parameters or
Hyperparameters
16
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Optimization Loop
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
17
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
conn = Connection(client_token=SIGOPT.APITOKEN)
experiment_meta = {
'type': 'grid',
'project': SIGOPT.PROJECT,
'name': Model.NAME,
'parameters': Model.PARAMETERS,
'metrics': Evaluation.METRICS}
experiment = conn.experiments().create(**experiment_meta)
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
model.train(data.train_data())
model.test(data.test_data())
conn.experiments(experiment.id).observations().create(
suggestion=suggestion.id,
values=Evaluation.return_object(model.evaluate()),)
experiment = conn.experiments(experiment.id).fetch()
Optimization Loop
Experiment Create Call
Optimization Loop
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
18
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
conn = Connection(client_token=SIGOPT.APITOKEN)
experiment_meta = {
'type': 'grid',
'project': SIGOPT.PROJECT,
'name': Model.NAME,
'parameters': Model.PARAMETERS,
'metrics': Evaluation.METRICS}
experiment = conn.experiments().create(**experiment_meta)
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
model.train(data.train_data())
model.test(data.test_data())
conn.experiments(experiment.id).observations().create(
suggestion=suggestion.id,
values=Evaluation.return_object(model.evaluate()),)
experiment = conn.experiments(experiment.id).fetch()
Optimization Loop
Experiment Create Call
Optimization Loop
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
19
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
conn = Connection(client_token=SIGOPT.APITOKEN)
experiment_meta = {
'type': 'grid',
'project': SIGOPT.PROJECT,
'name': Model.NAME,
'parameters': Model.PARAMETERS,
'metrics': Evaluation.METRICS}
experiment = conn.experiments().create(**experiment_meta)
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
model.train(data.train_data())
model.test(data.test_data())
conn.experiments(experiment.id).observations().create(
suggestion=suggestion.id,
values=Evaluation.return_object(model.evaluate()),)
experiment = conn.experiments(experiment.id).fetch()
Optimization Loop
Experiment Create Call
Optimization Loop
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
20
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Metric Strategy
- Storing up to 50 non-optimized
metrics
- Gain insights through
additional model information
Objective
- Storing business specific
metrics to drive the best
decisions
- Hit business targets through
modeling
Adding Metrics
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
21
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Adding Metrics
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
22
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Investigating Metrics
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
23
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Investigating Metrics
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
24
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Metric Constraints
- Guardrail your modeling by
applying constraints to
non-optimized metrics
Objective
- Use business requirements
as constraints for your
modeling
- Maximize modeling impact
Adding Metric Constraints
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
25
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Adding Metric Constraints
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Your firewall
Training
Data
AI, ML, DL,
Simulation Model
Model Evaluation
or Backtest
Testing
Data
New
Configurations
Objective
Metric
Better
Results
EXPERIMENT INSIGHTS
Track, organize, analyze and
reproduce any model
ENTERPRISE PLATFORM
Built to fit any stack and scale
with your needs
OPTIMIZATION ENGINE
Explore and exploit with a
variety of techniques
RESTAPI
Configuration
Parameters or
Hyperparameters
26
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Create Model
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
27
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
class NeuralNetwork:
NAME = 'Neural Network'
BUDGET = 30
EPOCHS = 40
MAXCHECKPOINTS = {'max_checkpoints': EPOCHS, }
NUMFEATURES = None
NUMCLASSES = None
PARAMETERS = [{'name': 'num_nodes', 'type': 'int', 'bounds': {'min': 4, 'max': 40}},
{'name': 'log_learning_rate', 'type': 'double',
'bounds': {'min': -11, 'max': 0}},
{'name': 'batch_size', 'type': 'int', 'bounds': {'min': 4, 'max': 10}}]
def __init__(self, assignment):
self.num_nodes = assignment['num_nodes']
self.learning_rate = np.exp(assignment['log_learning_rate'])
self.batch_size = assignment['batch_size']
self.model = keras.Sequential(
[layers.Dense(self.num_nodes, activation='relu', input_shape=(self.NUMFEATURES,)),
layers.Dense(self.NUMCLASSES, activation='softmax'), ])
opt = keras.optimizers.Adam(learning_rate=self.learning_rate)
self.model.compile(
loss='sparse_categorical_crossentropy', optimizer=opt)
Create Model
Advanced Model Class
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Your firewall
Training
Data
AI, ML, DL,
Simulation Model
Model Evaluation
or Backtest
Testing
Data
New
Configurations
Objective
Metric
Better
Results
EXPERIMENT INSIGHTS
Track, organize, analyze and
reproduce any model
ENTERPRISE PLATFORM
Built to fit any stack and scale
with your needs
OPTIMIZATION ENGINE
Explore and exploit with a
variety of techniques
RESTAPI
Configuration
Parameters or
Hyperparameters
28
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Optimization Loop
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
29
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
conn = Connection(client_token=SIGOPT.APITOKEN)
experiment_meta = {
'project': SIGOPT.PROJECT,
'name': Model.NAME,
'parameters': Model.PARAMETERS,
'observation_budget': Model.BUDGET,
'training_monitor': Model.MAXCHECKPOINTS,
'metrics': Evaluation.METRICS,}
experiment = conn.experiments().create(**experiment_meta)
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
training_run = conn.experiments(
experiment.id).training_runs().create(suggestion=suggestion.id)
for _ in range(model.EPOCHS):
model.train(data.train_data())
model.test(data.test_data())
checkpoint = conn.experiments(experiment.id).training_runs(
training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),)
Optimization Loop
Experiment Create Call
Optimization Loop with Training Monitor
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
30
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
conn = Connection(client_token=SIGOPT.APITOKEN)
experiment_meta = {
'project': SIGOPT.PROJECT,
'name': Model.NAME,
'parameters': Model.PARAMETERS,
'observation_budget': Model.BUDGET,
'training_monitor': Model.MAXCHECKPOINTS,
'metrics': Evaluation.METRICS,}
experiment = conn.experiments().create(**experiment_meta)
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
training_run = conn.experiments(
experiment.id).training_runs().create(suggestion=suggestion.id)
for _ in range(model.EPOCHS):
model.train(data.train_data())
model.test(data.test_data())
checkpoint = conn.experiments(experiment.id).training_runs(
training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),)
Optimization Loop
Experiment Create Call
Optimization Loop with Training Monitor
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
Optimization Loop with Training Monitor
31
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
conn = Connection(client_token=SIGOPT.APITOKEN)
experiment_meta = {
'project': SIGOPT.PROJECT,
'name': Model.NAME,
'parameters': Model.PARAMETERS,
'observation_budget': Model.BUDGET,
'training_monitor': Model.MAXCHECKPOINTS,
'metrics': Evaluation.METRICS,}
experiment = conn.experiments().create(**experiment_meta)
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
training_run = conn.experiments(
experiment.id).training_runs().create(suggestion=suggestion.id)
for _ in range(model.EPOCHS):
model.train(data.train_data())
model.test(data.test_data())
checkpoint = conn.experiments(experiment.id).training_runs(
training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),)
Optimization Loop
Experiment Create Call
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
32
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Training Monitor
- Monitor convergence for
better model performance
- Increase generalization by
seeing best convergence
Objective
- Decide on the best model for
production by performance as
well as convergence
Looking at Convergence
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
33
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Looking at Convergence
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
34
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
training_run = conn.experiments(
experiment.id).training_runs().create(suggestion=suggestion.id)
for _ in range(model.EPOCHS):
model.train(data.train_data())
model.test(data.test_data())
checkpoint = conn.experiments(experiment.id).training_runs(
training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),)
if checkpoint.should_stop:
conn.experiments(experiment.id).observations().create(
training_run=training_run.id)
break
Looking at Convergence
Optimization Loop with Training Monitor and Early Stopping
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
35
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
while experiment.progress.observation_count < experiment.observation_budget:
suggestion = conn.experiments(experiment.id).suggestions().create()
model = Model(suggestion.assignments)
training_run = conn.experiments(
experiment.id).training_runs().create(suggestion=suggestion.id)
for _ in range(model.EPOCHS):
model.train(data.train_data())
model.test(data.test_data())
checkpoint = conn.experiments(experiment.id).training_runs(
training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),)
if checkpoint.should_stop:
conn.experiments(experiment.id).observations().create(
training_run=training_run.id)
break
Looking at Convergence
Optimization Loop with Training Monitor and Early Stopping
SigOpt. Confidential.SigOpt. Confidential.
Key Use Cases
36
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
class SIGOPT:
APITOKEN =
'DBOKLMJUZPFSYYCCEDSSEYPNPNPPLOWHLNLRYKSRBDYZIIFI'
CLIENTID = 1
PROJECT = 'quant_series'
Finishing up Project
SigOpt Access Class
SigOpt. Confidential.SigOpt. Confidential.
Key Use Casesclass SIGOPT:
APITOKEN =
'DBOKLMJUZPFSYYCCEDSSEYPNPNPPLOWHLNLRYKSRBDYZIIFI'
CLIENTID = 1
PROJECT = 'quant_series'
37
Experimentation Recipe:
Project Hygiene
Data Handling
Evaluation Strategy
Baseline Modeling
Metric Strategy
Advanced Modeling
Optimization Feedback Loop
- Convergence
- Early Stopping
Project Handoff
Finishing up Project
SigOpt Access Class
SigOpt. Confidential.
Tobias Andreasen | tobias@sigopt.com
For more information visit: https://sigopt.com/research/
Questions?

More Related Content

What's hot

What's hot (15)

Tuning the Untunable - Insights on Deep Learning Optimization
Tuning the Untunable - Insights on Deep Learning OptimizationTuning the Untunable - Insights on Deep Learning Optimization
Tuning the Untunable - Insights on Deep Learning Optimization
 
Common Problems in Hyperparameter Optimization
Common Problems in Hyperparameter OptimizationCommon Problems in Hyperparameter Optimization
Common Problems in Hyperparameter Optimization
 
Machine Learning Fundamentals
Machine Learning FundamentalsMachine Learning Fundamentals
Machine Learning Fundamentals
 
MLOps Using MLflow
MLOps Using MLflowMLOps Using MLflow
MLOps Using MLflow
 
Pydata presentation
Pydata presentationPydata presentation
Pydata presentation
 
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
Pentaho World 2017: Automated Machine Learning (AutoML) and Pentaho (Thursday...
 
Model-Based Optimization for Effective and Reliable Decision-Making
Model-Based Optimization for Effective and Reliable Decision-MakingModel-Based Optimization for Effective and Reliable Decision-Making
Model-Based Optimization for Effective and Reliable Decision-Making
 
PyData London 2018 talk on feature selection
PyData London 2018 talk on feature selectionPyData London 2018 talk on feature selection
PyData London 2018 talk on feature selection
 
Agile Machine Learning for Real-time Recommender Systems
Agile Machine Learning for Real-time Recommender SystemsAgile Machine Learning for Real-time Recommender Systems
Agile Machine Learning for Real-time Recommender Systems
 
“Houston, we have a model...” Introduction to MLOps
“Houston, we have a model...” Introduction to MLOps“Houston, we have a model...” Introduction to MLOps
“Houston, we have a model...” Introduction to MLOps
 
Recent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP OptimizerRecent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP Optimizer
 
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
 
MLOps - The Assembly Line of ML
MLOps - The Assembly Line of MLMLOps - The Assembly Line of ML
MLOps - The Assembly Line of ML
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
 
Model-Based Optimization / CP 2018
Model-Based Optimization / CP 2018Model-Based Optimization / CP 2018
Model-Based Optimization / CP 2018
 

Similar to Tuning for Systematic Trading: Talk 3: Training, Tuning, and Metric Strategy

MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
Provectus
 
Simulacion luis garciaguzman-21012011
Simulacion luis garciaguzman-21012011Simulacion luis garciaguzman-21012011
Simulacion luis garciaguzman-21012011
lideresacademicos
 

Similar to Tuning for Systematic Trading: Talk 3: Training, Tuning, and Metric Strategy (20)

Modeling at Scale: SigOpt at TWIMLcon 2019
Modeling at Scale: SigOpt at TWIMLcon 2019Modeling at Scale: SigOpt at TWIMLcon 2019
Modeling at Scale: SigOpt at TWIMLcon 2019
 
Tuning 2.0: Advanced Optimization Techniques Webinar
Tuning 2.0: Advanced Optimization Techniques WebinarTuning 2.0: Advanced Optimization Techniques Webinar
Tuning 2.0: Advanced Optimization Techniques Webinar
 
Metric Management: a SigOpt Applied Use Case
Metric Management: a SigOpt Applied Use CaseMetric Management: a SigOpt Applied Use Case
Metric Management: a SigOpt Applied Use Case
 
Advanced MLflow: Multi-Step Workflows, Hyperparameter Tuning and Integrating ...
Advanced MLflow: Multi-Step Workflows, Hyperparameter Tuning and Integrating ...Advanced MLflow: Multi-Step Workflows, Hyperparameter Tuning and Integrating ...
Advanced MLflow: Multi-Step Workflows, Hyperparameter Tuning and Integrating ...
 
SigOpt for Machine Learning and AI
SigOpt for Machine Learning and AISigOpt for Machine Learning and AI
SigOpt for Machine Learning and AI
 
SigOpt at GTC - Tuning the Untunable
SigOpt at GTC - Tuning the UntunableSigOpt at GTC - Tuning the Untunable
SigOpt at GTC - Tuning the Untunable
 
Amazon SageMaker
Amazon SageMakerAmazon SageMaker
Amazon SageMaker
 
Selling commercial Solar +/or Energy Storage solutions? You need GridMAP!
Selling commercial Solar +/or Energy Storage solutions? You need GridMAP!    Selling commercial Solar +/or Energy Storage solutions? You need GridMAP!
Selling commercial Solar +/or Energy Storage solutions? You need GridMAP!
 
From notebook to production with Amazon Sagemaker
From notebook to production with Amazon SagemakerFrom notebook to production with Amazon Sagemaker
From notebook to production with Amazon Sagemaker
 
Building the Ideal Stack for Machine Learning
Building the Ideal Stack for Machine LearningBuilding the Ideal Stack for Machine Learning
Building the Ideal Stack for Machine Learning
 
principle of six sigma
principle of six sigmaprinciple of six sigma
principle of six sigma
 
How to Run a Cost-Efficient Optimization Program With a Limited Budget
How to Run a Cost-Efficient Optimization Program With a Limited BudgetHow to Run a Cost-Efficient Optimization Program With a Limited Budget
How to Run a Cost-Efficient Optimization Program With a Limited Budget
 
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
 
Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature Delivery
 
Strata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu MukerjiStrata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu Mukerji
 
PureApp Presentation
PureApp PresentationPureApp Presentation
PureApp Presentation
 
How to Lower the Cost of Deploying Analytics: An Introduction to the Portable...
How to Lower the Cost of Deploying Analytics: An Introduction to the Portable...How to Lower the Cost of Deploying Analytics: An Introduction to the Portable...
How to Lower the Cost of Deploying Analytics: An Introduction to the Portable...
 
OTS - Everything you wanted to know but didn't ask
OTS - Everything you wanted to know but didn't askOTS - Everything you wanted to know but didn't ask
OTS - Everything you wanted to know but didn't ask
 
Design for six_sigma
Design for six_sigmaDesign for six_sigma
Design for six_sigma
 
Simulacion luis garciaguzman-21012011
Simulacion luis garciaguzman-21012011Simulacion luis garciaguzman-21012011
Simulacion luis garciaguzman-21012011
 

More from SigOpt

More from SigOpt (14)

Optimizing BERT and Natural Language Models with SigOpt Experiment Management
Optimizing BERT and Natural Language Models with SigOpt Experiment ManagementOptimizing BERT and Natural Language Models with SigOpt Experiment Management
Optimizing BERT and Natural Language Models with SigOpt Experiment Management
 
Experiment Management for the Enterprise
Experiment Management for the EnterpriseExperiment Management for the Enterprise
Experiment Management for the Enterprise
 
Efficient NLP by Distilling BERT and Multimetric Optimization
Efficient NLP by Distilling BERT and Multimetric OptimizationEfficient NLP by Distilling BERT and Multimetric Optimization
Efficient NLP by Distilling BERT and Multimetric Optimization
 
Detecting COVID-19 Cases with Deep Learning
Detecting COVID-19 Cases with Deep LearningDetecting COVID-19 Cases with Deep Learning
Detecting COVID-19 Cases with Deep Learning
 
Tuning Data Augmentation to Boost Model Performance
Tuning Data Augmentation to Boost Model PerformanceTuning Data Augmentation to Boost Model Performance
Tuning Data Augmentation to Boost Model Performance
 
Interactive Tradeoffs Between Competing Offline Metrics with Bayesian Optimiz...
Interactive Tradeoffs Between Competing Offline Metrics with Bayesian Optimiz...Interactive Tradeoffs Between Competing Offline Metrics with Bayesian Optimiz...
Interactive Tradeoffs Between Competing Offline Metrics with Bayesian Optimiz...
 
Machine Learning Infrastructure
Machine Learning InfrastructureMachine Learning Infrastructure
Machine Learning Infrastructure
 
SigOpt at Uber Science Symposium - Exploring the spectrum of black-box optimi...
SigOpt at Uber Science Symposium - Exploring the spectrum of black-box optimi...SigOpt at Uber Science Symposium - Exploring the spectrum of black-box optimi...
SigOpt at Uber Science Symposium - Exploring the spectrum of black-box optimi...
 
Lessons for an enterprise approach to modeling at scale
Lessons for an enterprise approach to modeling at scaleLessons for an enterprise approach to modeling at scale
Lessons for an enterprise approach to modeling at scale
 
SigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model TrainingSigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model Training
 
Machine Learning Infrastructure
Machine Learning InfrastructureMachine Learning Infrastructure
Machine Learning Infrastructure
 
Tips and techniques for hyperparameter optimization
Tips and techniques for hyperparameter optimizationTips and techniques for hyperparameter optimization
Tips and techniques for hyperparameter optimization
 
MLconf 2017 Seattle Lunch Talk - Using Optimal Learning to tune Deep Learning...
MLconf 2017 Seattle Lunch Talk - Using Optimal Learning to tune Deep Learning...MLconf 2017 Seattle Lunch Talk - Using Optimal Learning to tune Deep Learning...
MLconf 2017 Seattle Lunch Talk - Using Optimal Learning to tune Deep Learning...
 
Using Optimal Learning to Tune Deep Learning Pipelines
Using Optimal Learning to Tune Deep Learning PipelinesUsing Optimal Learning to Tune Deep Learning Pipelines
Using Optimal Learning to Tune Deep Learning Pipelines
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Tuning for Systematic Trading: Talk 3: Training, Tuning, and Metric Strategy

  • 1. SigOpt. Confidential. Talk #3 Training, Tuning, and Metric Strategy SigOpt Talk Series Tuning for Systematic Trading Tobias Andreasen — Machine Learning Engineer Tuesday, May 19, 2020
  • 2. SigOpt. Confidential. Abstract SigOpt provides an extensive set of advanced features, which help you, the expert, save time while increasing model performance via experimentation. Today, we will continue this talk series by discussing training, tuning, and metric strategies in the context of SigOpt, and use this to come up with a recipe for how this can be used for model experimentation.
  • 4. SigOpt. Confidential. Accelerate and amplify the impact of modelers everywhere
  • 5. SigOpt. Confidential. Experiment Insights Optimization Engine Track, analyze and reproduce any model to improve the productivity of your modeling Enterprise Platform Automate hyperparameter tuning to maximize the performance and impact of your models Standardize experimentation across any combination of library, infrastructure, model or task On-Premise Hybrid/Multi Solution: Experiment, optimize and analyze at scale 5
  • 6. SigOpt. Confidential. SigOpt Features Enterprise Platform Optimization Engine Experiment Insights Reproducibility Intuitive web dashboards Cross-team permissions and collaboration Advanced experiment visualizations Usage insights Parameter importance analysis Multimetric optimization Continuous, categorical, or integer parameters Constraints and failure regions Up to 10k observations, 100 parameters Multitask optimization and high parallelism Training Monitor and Automated Early Stopping Infrastructure agnostic REST API Parallel Resource Scheduler Black-Box Interface Tunes without accessing any data Libraries for Python, Java, R, and MATLAB
  • 8. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Black Box Optimization Your firewall Training Data AI, ML, DL, Simulation Model Model Evaluation or Backtest Testing Data New Configurations Objective Metric Better Results EXPERIMENT INSIGHTS Track, organize, analyze and reproduce any model ENTERPRISE PLATFORM Built to fit any stack and scale with your needs OPTIMIZATION ENGINE Explore and exploit with a variety of techniques RESTAPI Configuration Parameters or Hyperparameters Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff 8
  • 9. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 9 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff class SIGOPT: APITOKEN = 'PPPPPOJUZPFSAAAAADSSEYPCPNPGGGGGLNLRYKSRBWYZTTFI' CLIENTID = 1 PROJECT = 'quant_series' Creating SigOpt Project SigOpt Access Class
  • 10. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Your firewall Training Data AI, ML, DL, Simulation Model Model Evaluation or Backtest Testing Data New Configurations Objective Metric Better Results EXPERIMENT INSIGHTS Track, organize, analyze and reproduce any model ENTERPRISE PLATFORM Built to fit any stack and scale with your needs OPTIMIZATION ENGINE Explore and exploit with a variety of techniques RESTAPI Configuration Parameters or Hyperparameters 10 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Load Data
  • 11. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 11 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff class Data: X, Y = datasets.load_breast_cancer(return_X_y=True) def __init__(self, test_size=0.3): self.x_train, self.x_test, self.y_train, self.y_test = train_test_split( self.X, self.Y, test_size=test_size) def train_data(self,): return [self.x_train, self.y_train] def test_data(self,): return [self.x_test, self.y_test] def num_features(self,): return self.X.shape[1] def num_classes(self,): return len(np.unique(self.Y)) Load Data Data Loader Class
  • 12. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Your firewall Training Data AI, ML, DL, Simulation Model Model Evaluation or Backtest Testing Data New Configurations Objective Metric Better Results EXPERIMENT INSIGHTS Track, organize, analyze and reproduce any model ENTERPRISE PLATFORM Built to fit any stack and scale with your needs OPTIMIZATION ENGINE Explore and exploit with a variety of techniques RESTAPI Configuration Parameters or Hyperparameters 12 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Create Evaluation Framework
  • 13. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 13 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff class Evaluation: METRICS = [{'name': 'accuracy', 'objective': 'maximize', 'strategy': 'optimize'}, {'name': 'f1', 'objective': 'maximize', 'strategy': 'store'}, {'name': 'precision', 'objective': 'maximize', 'strategy': 'store'}, {'name': 'recall', 'objective': 'maximize', 'strategy': 'store'}, ] @classmethod def return_object(cls, y): y_true = y[0] y_hat = y[1] # needs to be replaced by data input and score calculations scores = [] scores.append(accuracy_score(y_true, y_hat)) scores.append(f1_score(y_true, y_hat, average='macro')) scores.append(precision_score( y_true, y_hat, average='macro', zero_division=1)) scores.append(recall_score(y_true, y_hat, average='macro')) return [{'name': m['name'], 'value': s} for m, s in zip(cls.METRICS, scores)] Create Evaluation Framework Model Evaluation Class
  • 14. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Your firewall Training Data AI, ML, DL, Simulation Model Model Evaluation or Backtest Testing Data New Configurations Objective Metric Better Results EXPERIMENT INSIGHTS Track, organize, analyze and reproduce any model ENTERPRISE PLATFORM Built to fit any stack and scale with your needs OPTIMIZATION ENGINE Explore and exploit with a variety of techniques RESTAPI Configuration Parameters or Hyperparameters 14 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Create Model
  • 15. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 15 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff class LogisticRegression: NAME = 'Logistic Regression' BUDGET = 10 PARAMETERS = [{'name': 'log_c', 'type': 'double', 'bounds': {'min': -11, 'max': 0}, 'grid': BUDGET}] def __init__(self, assignment): c = np.exp(assignment['log_c']) self.model = LogisticRegression(C=c) self.y_hat = None self.y_true = None def train(self, data): x = data[0] y = data[1] self.model.fit(x, y) def test(self, data): x = data[0] y = data[1] self.y_hat = self.model.predict(x) self.y_true = y def evaluate(self,): return [self.y_true, self.y_hat] Create Model Baseline Model Class
  • 16. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Your firewall Training Data AI, ML, DL, Simulation Model Model Evaluation or Backtest Testing Data New Configurations Objective Metric Better Results EXPERIMENT INSIGHTS Track, organize, analyze and reproduce any model ENTERPRISE PLATFORM Built to fit any stack and scale with your needs OPTIMIZATION ENGINE Explore and exploit with a variety of techniques RESTAPI Configuration Parameters or Hyperparameters 16 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Optimization Loop
  • 17. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 17 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff conn = Connection(client_token=SIGOPT.APITOKEN) experiment_meta = { 'type': 'grid', 'project': SIGOPT.PROJECT, 'name': Model.NAME, 'parameters': Model.PARAMETERS, 'metrics': Evaluation.METRICS} experiment = conn.experiments().create(**experiment_meta) while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) model.train(data.train_data()) model.test(data.test_data()) conn.experiments(experiment.id).observations().create( suggestion=suggestion.id, values=Evaluation.return_object(model.evaluate()),) experiment = conn.experiments(experiment.id).fetch() Optimization Loop Experiment Create Call Optimization Loop
  • 18. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 18 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff conn = Connection(client_token=SIGOPT.APITOKEN) experiment_meta = { 'type': 'grid', 'project': SIGOPT.PROJECT, 'name': Model.NAME, 'parameters': Model.PARAMETERS, 'metrics': Evaluation.METRICS} experiment = conn.experiments().create(**experiment_meta) while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) model.train(data.train_data()) model.test(data.test_data()) conn.experiments(experiment.id).observations().create( suggestion=suggestion.id, values=Evaluation.return_object(model.evaluate()),) experiment = conn.experiments(experiment.id).fetch() Optimization Loop Experiment Create Call Optimization Loop
  • 19. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 19 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff conn = Connection(client_token=SIGOPT.APITOKEN) experiment_meta = { 'type': 'grid', 'project': SIGOPT.PROJECT, 'name': Model.NAME, 'parameters': Model.PARAMETERS, 'metrics': Evaluation.METRICS} experiment = conn.experiments().create(**experiment_meta) while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) model.train(data.train_data()) model.test(data.test_data()) conn.experiments(experiment.id).observations().create( suggestion=suggestion.id, values=Evaluation.return_object(model.evaluate()),) experiment = conn.experiments(experiment.id).fetch() Optimization Loop Experiment Create Call Optimization Loop
  • 20. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 20 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Metric Strategy - Storing up to 50 non-optimized metrics - Gain insights through additional model information Objective - Storing business specific metrics to drive the best decisions - Hit business targets through modeling Adding Metrics
  • 21. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 21 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Adding Metrics
  • 22. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 22 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Investigating Metrics
  • 23. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 23 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Investigating Metrics
  • 24. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 24 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Metric Constraints - Guardrail your modeling by applying constraints to non-optimized metrics Objective - Use business requirements as constraints for your modeling - Maximize modeling impact Adding Metric Constraints
  • 25. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 25 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Adding Metric Constraints
  • 26. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Your firewall Training Data AI, ML, DL, Simulation Model Model Evaluation or Backtest Testing Data New Configurations Objective Metric Better Results EXPERIMENT INSIGHTS Track, organize, analyze and reproduce any model ENTERPRISE PLATFORM Built to fit any stack and scale with your needs OPTIMIZATION ENGINE Explore and exploit with a variety of techniques RESTAPI Configuration Parameters or Hyperparameters 26 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Create Model
  • 27. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 27 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff class NeuralNetwork: NAME = 'Neural Network' BUDGET = 30 EPOCHS = 40 MAXCHECKPOINTS = {'max_checkpoints': EPOCHS, } NUMFEATURES = None NUMCLASSES = None PARAMETERS = [{'name': 'num_nodes', 'type': 'int', 'bounds': {'min': 4, 'max': 40}}, {'name': 'log_learning_rate', 'type': 'double', 'bounds': {'min': -11, 'max': 0}}, {'name': 'batch_size', 'type': 'int', 'bounds': {'min': 4, 'max': 10}}] def __init__(self, assignment): self.num_nodes = assignment['num_nodes'] self.learning_rate = np.exp(assignment['log_learning_rate']) self.batch_size = assignment['batch_size'] self.model = keras.Sequential( [layers.Dense(self.num_nodes, activation='relu', input_shape=(self.NUMFEATURES,)), layers.Dense(self.NUMCLASSES, activation='softmax'), ]) opt = keras.optimizers.Adam(learning_rate=self.learning_rate) self.model.compile( loss='sparse_categorical_crossentropy', optimizer=opt) Create Model Advanced Model Class
  • 28. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Your firewall Training Data AI, ML, DL, Simulation Model Model Evaluation or Backtest Testing Data New Configurations Objective Metric Better Results EXPERIMENT INSIGHTS Track, organize, analyze and reproduce any model ENTERPRISE PLATFORM Built to fit any stack and scale with your needs OPTIMIZATION ENGINE Explore and exploit with a variety of techniques RESTAPI Configuration Parameters or Hyperparameters 28 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Optimization Loop
  • 29. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 29 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff conn = Connection(client_token=SIGOPT.APITOKEN) experiment_meta = { 'project': SIGOPT.PROJECT, 'name': Model.NAME, 'parameters': Model.PARAMETERS, 'observation_budget': Model.BUDGET, 'training_monitor': Model.MAXCHECKPOINTS, 'metrics': Evaluation.METRICS,} experiment = conn.experiments().create(**experiment_meta) while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) training_run = conn.experiments( experiment.id).training_runs().create(suggestion=suggestion.id) for _ in range(model.EPOCHS): model.train(data.train_data()) model.test(data.test_data()) checkpoint = conn.experiments(experiment.id).training_runs( training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),) Optimization Loop Experiment Create Call Optimization Loop with Training Monitor
  • 30. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 30 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff conn = Connection(client_token=SIGOPT.APITOKEN) experiment_meta = { 'project': SIGOPT.PROJECT, 'name': Model.NAME, 'parameters': Model.PARAMETERS, 'observation_budget': Model.BUDGET, 'training_monitor': Model.MAXCHECKPOINTS, 'metrics': Evaluation.METRICS,} experiment = conn.experiments().create(**experiment_meta) while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) training_run = conn.experiments( experiment.id).training_runs().create(suggestion=suggestion.id) for _ in range(model.EPOCHS): model.train(data.train_data()) model.test(data.test_data()) checkpoint = conn.experiments(experiment.id).training_runs( training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),) Optimization Loop Experiment Create Call Optimization Loop with Training Monitor
  • 31. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases Optimization Loop with Training Monitor 31 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff conn = Connection(client_token=SIGOPT.APITOKEN) experiment_meta = { 'project': SIGOPT.PROJECT, 'name': Model.NAME, 'parameters': Model.PARAMETERS, 'observation_budget': Model.BUDGET, 'training_monitor': Model.MAXCHECKPOINTS, 'metrics': Evaluation.METRICS,} experiment = conn.experiments().create(**experiment_meta) while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) training_run = conn.experiments( experiment.id).training_runs().create(suggestion=suggestion.id) for _ in range(model.EPOCHS): model.train(data.train_data()) model.test(data.test_data()) checkpoint = conn.experiments(experiment.id).training_runs( training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),) Optimization Loop Experiment Create Call
  • 32. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 32 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Training Monitor - Monitor convergence for better model performance - Increase generalization by seeing best convergence Objective - Decide on the best model for production by performance as well as convergence Looking at Convergence
  • 33. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 33 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Looking at Convergence
  • 34. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 34 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) training_run = conn.experiments( experiment.id).training_runs().create(suggestion=suggestion.id) for _ in range(model.EPOCHS): model.train(data.train_data()) model.test(data.test_data()) checkpoint = conn.experiments(experiment.id).training_runs( training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),) if checkpoint.should_stop: conn.experiments(experiment.id).observations().create( training_run=training_run.id) break Looking at Convergence Optimization Loop with Training Monitor and Early Stopping
  • 35. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 35 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff while experiment.progress.observation_count < experiment.observation_budget: suggestion = conn.experiments(experiment.id).suggestions().create() model = Model(suggestion.assignments) training_run = conn.experiments( experiment.id).training_runs().create(suggestion=suggestion.id) for _ in range(model.EPOCHS): model.train(data.train_data()) model.test(data.test_data()) checkpoint = conn.experiments(experiment.id).training_runs( training_run.id).checkpoints().create(values=Evaluation.return_object(model.evaluate()),) if checkpoint.should_stop: conn.experiments(experiment.id).observations().create( training_run=training_run.id) break Looking at Convergence Optimization Loop with Training Monitor and Early Stopping
  • 36. SigOpt. Confidential.SigOpt. Confidential. Key Use Cases 36 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff class SIGOPT: APITOKEN = 'DBOKLMJUZPFSYYCCEDSSEYPNPNPPLOWHLNLRYKSRBDYZIIFI' CLIENTID = 1 PROJECT = 'quant_series' Finishing up Project SigOpt Access Class
  • 37. SigOpt. Confidential.SigOpt. Confidential. Key Use Casesclass SIGOPT: APITOKEN = 'DBOKLMJUZPFSYYCCEDSSEYPNPNPPLOWHLNLRYKSRBDYZIIFI' CLIENTID = 1 PROJECT = 'quant_series' 37 Experimentation Recipe: Project Hygiene Data Handling Evaluation Strategy Baseline Modeling Metric Strategy Advanced Modeling Optimization Feedback Loop - Convergence - Early Stopping Project Handoff Finishing up Project SigOpt Access Class
  • 38. SigOpt. Confidential. Tobias Andreasen | tobias@sigopt.com For more information visit: https://sigopt.com/research/ Questions?