Implement the GaussianCopulaProcessMetaModel, a tuner that was present on the previous version of BTB, adapting this to the new structure.
The GaussianCopulaProcessMetaModel uses an underlying GaussianProcessRegressor from sklearn.gaussian_process applying copulas.univariate.Univariate transformations to the input data and afterwards reverts it for the predictions.
During the fit process, this metamodel trains a univariate copula for each hyperparameter to then compute the cumulative distribution of these. Once the cumulative distribution has been calculated, we calculate the inverse of the normal cumulative distribution using scipy.stats.norm and use these transformations to train the GaussianProcessRegressor model.
When predicting the output value, an inverse of the normal cumulative distribution is computed to the normal cumulative distribution, using the previously trained univariate copula with the input data of the score.
Description
Implement the GaussianCopulaProcessMetaModel, a tuner that was present on the previous version of BTB, adapting this to the new structure.
The GaussianCopulaProcessMetaModel uses an underlying
GaussianProcessRegressor
fromsklearn.gaussian_process
applyingcopulas.univariate.Univariate
transformations to the input data and afterwards reverts it for the predictions.During the
fit
process, this metamodel trains a univariate copula for each hyperparameter to then compute the cumulative distribution of these. Once the cumulative distribution has been calculated, we calculate the inverse of the normal cumulative distribution usingscipy.stats.norm
and use these transformations to train theGaussianProcessRegressor
model.When predicting the output value, an inverse of the normal cumulative distribution is computed to the normal cumulative distribution, using the previously trained univariate copula with the input data of the score.