This page explains the observables framework. It is designed to profile certain model parameter properties at certain timestamps during the adaptive modelling process.
Example timestamps are
- A new best model has been constructed
- A new model has been constructed for the sequential model builder
- A complete generation has been built for the genetic model builder
The observables currently split into two groups, observables on a model, and observables on a batch (or generation) of models. Examples of the first kind are:
- Weights, flags and percentage for polynomial models
- Kernel parameter (=spread) for a RBFNN model
Examples of the second kind are
- Model parameters of the best model in a generation
- Spread (=largest/average/smallest value) of model parameters for a generation
- Distribution of different model types in a generation when using the heterogeneous modelinterface
To accomodate this framework, a few key components have been implemented:
- The getObservables() member function that each model interface should implement. This method returns a cell array of Observable objects.
- The getBatchObservables() member function of BatchInterface (superclass of GeneticInterface). This method return a cell array of observable objects on a Batch/Generation of models.
- The methods registerObserver() and observe() of the AdaptiveModelBuilder base class
The sequel will elaborate on all different classes and components.