<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('max_iter',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=max_iter,-
int%2C%20default%3D300”>
max_iter
max_iter: int,
default=300 Maximum number of iterations over the complete dataset
before stopping independently of any early stopping criterion. ..
versionchanged:: 1.3
300
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('tol',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=tol,-float%2C%20default%3D1e-
3”>
tol
tol: float, default=1e-3 Stop the
algorithm if w has converged.
0.001
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('alpha_1',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=alpha_1,-
float%2C%20default%3D1e-6”>
alpha_1
alpha_1: float,
default=1e-6 Hyper-parameter : shape parameter for the Gamma distribution
prior over the alpha parameter.
1e-06
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('alpha_2',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=alpha_2,-
float%2C%20default%3D1e-6”>
alpha_2
alpha_2: float,
default=1e-6 Hyper-parameter : inverse scale parameter (rate parameter) for
the Gamma distribution prior over the alpha parameter.
1e-06
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('lambda_1',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=lambda_1,-
float%2C%20default%3D1e-6”>
lambda_1
lambda_1: float,
default=1e-6 Hyper-parameter : shape parameter for the Gamma distribution
prior over the lambda parameter.
1e-06
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('lambda_2',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=lambda_2,-
float%2C%20default%3D1e-6”>
lambda_2
lambda_2: float,
default=1e-6 Hyper-parameter : inverse scale parameter (rate parameter) for
the Gamma distribution prior over the lambda parameter.
1e-06
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('alpha_init',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=alpha_init,-
float%2C%20default%3DNone”>
alpha_init
alpha_init: float,
default=None Initial value for alpha (precision of the noise). If not set,
alpha_init is 1/Var(y). .. versionadded:: 0.22
None
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('lambda_init',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=lambda_init,-
float%2C%20default%3DNone”>
lambda_init
lambda_init: float,
default=None Initial value for lambda (precision of the weights). If not set,
lambda_init is 1. .. versionadded:: 0.22
None
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('compute_score',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=compute_score,-
bool%2C%20default%3DFalse”>
compute_score
compute_score: bool,
default=False If True, compute the log marginal likelihood at each iteration of
the optimization.
False
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('fit_intercept',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=fit_intercept,-
bool%2C%20default%3DTrue”>
fit_intercept
fit_intercept: bool,
default=True Whether to calculate the intercept for this model. The intercept
is not treated as a probabilistic parameter and thus has no associated variance. If
set to False, no intercept will be used in calculations (i.e. data is expected to
be centered).
True
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('copy_X',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=copy_X,-
bool%2C%20default%3DTrue”>
copy_X
copy_X: bool, default=True If
True, X will be copied; else, it may be overwritten.
True
<tr class="default">
<td><i class="copy-paste-icon"
onclick="copyToClipboard('verbose',
this.parentElement.nextElementSibling)"
></i></td>
<td class="param">
<a class="param-doc-link"
rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.8/modules/
generated/sklearn.linear_model.BayesianRidge.html#:~:text=verbose,-
bool%2C%20default%3DFalse”>
verbose
verbose: bool,
default=False Verbose mode when fitting the model.
False
</tbody>
</table>
</details>
</div>
</div></div></div></div></div><script>function copyToClipboard(text, element) {
// Get the parameter prefix from the closest toggleable content
const toggleableContent = element.closest('.sk-toggleable__content');
const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';
const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;
const originalStyle = element.style;
const computedStyle = window.getComputedStyle(element);
const originalWidth = computedStyle.width;
const originalHTML = element.innerHTML.replace('Copied!', '');
navigator.clipboard.writeText(fullParamName)
.then(() => {
element.style.width = originalWidth;
element.style.color = 'green';
element.innerHTML = "Copied!";
setTimeout(() => {
element.innerHTML = originalHTML;
element.style = originalStyle;
}, 2000);
})
.catch(err => {
console.error('Failed to copy:', err);
element.style.color = 'red';
element.innerHTML = "Failed!";
setTimeout(() => {
element.innerHTML = originalHTML;
element.style = originalStyle;
}, 2000);
});
return false;
}
document.querySelectorAll(‘.copy-paste-icon’).forEach(function(element) {
const toggleableContent = element.closest(‘.sk-toggleable__content’);
const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : ‘’;
const paramName = element.parentElement.nextElementSibling
.textContent.trim().split(’ ‘)[0];
const fullParamName = paramPrefix ? ${paramPrefix}${paramName} : paramName;
element.setAttribute('title', fullParamName);
});
/**
Adapted from Skrub
https://github.com/skrub-data/skrub/blob/403466d1d5d4dc76a7ef569b3f8228db59a31dc3/skr
ub/_reporting/_data/templates/report.js#L789
@returns “light” or “dark”
*/
function detectTheme(element) {
const body = document.querySelector(‘body’);
// Check VSCode theme
const themeKindAttr = body.getAttribute(‘data-vscode-theme-kind’);
const themeNameAttr = body.getAttribute(‘data-vscode-theme-name’);
if (themeKindAttr && themeNameAttr) {
const themeKind = themeKindAttr.toLowerCase();
const themeName = themeNameAttr.toLowerCase();
if (themeKind.includes("dark") || themeName.includes("dark")) {
return "dark";
}
if (themeKind.includes("light") || themeName.includes("light")) {
return "light";
}
}
// Check Jupyter theme
if (body.getAttribute(‘data-jp-theme-light’) === ‘false’) {
return ‘dark’;
} else if (body.getAttribute(‘data-jp-theme-light’) === ‘true’) {
return ‘light’;
}
// Guess based on a parent element’s color
const color = window.getComputedStyle(element.parentNode,
null).getPropertyValue(‘color’);
const match = color.match(/^rgb\s*(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*)\s*$/i);
if (match) {
const [r, g, b] = [
parseFloat(match[1]),
parseFloat(match[2]),
parseFloat(match[3])
];
// https://en.wikipedia.org/wiki/HSL_and_HSV#Lightness
const luma = 0.299 * r + 0.587 * g + 0.114 * b;
if (luma > 180) {
// If the text is very bright we have a dark theme
return 'dark';
}
if (luma < 75) {
// If the text is very dark we have a light theme
return 'light';
}
// Otherwise fall back to the next heuristic.
}
// Fallback to system preference
return window.matchMedia(‘(prefers-color-scheme: dark)’).matches ? ‘dark’ : ‘light’;
}
function forceTheme(elementId) {
const estimatorElement = document.querySelector(#${elementId} );
if (estimatorElement === null) {
console.error(Element with id ${elementId} not found. );
} else {
const theme = detectTheme(estimatorElement);
estimatorElement.classList.add(theme);
}
}
forceTheme(‘sk-container-id-1’);
Convert model to onnx
Need the option to return standard deviation
options = { type ( model ): { "return_std" : True }}
Specify what the input name is
ONNX_INPUT_NAME = "example_input_name"
input dimensions and input type (should always be a float)
input_dim = train_x . size ( dim = 1 )
initial_type = [( ONNX_INPUT_NAME , FloatTensorType ([ None , input_dim ]))]
Conversion
onnx_str = convert_sklearn (
model ,
initial_types = initial_type ,
options = options ,
custom_conversion_functions = { type ( model ): convert_sklearn_bayesian_ridge },
) . SerializeToString () # serialize to string to save in file
Create a surrogate model with a pretrained model
surrogate_model = CustomONNXSurrogate (
onnx_str = onnx_str ,
onnx_input_name = ONNX_INPUT_NAME , # specify input name
)
Create campaign
campaign = Campaign (
searchspace = SearchSpace . from_product ( parameters = parameters , constraints = None ),
objective = SingleTargetObjective ( target = NumericalTarget ( name = "Yield" )),
recommender = TwoPhaseMetaRecommender (
recommender = BotorchRecommender ( surrogate_model = surrogate_model ),
initial_recommender = FPSRecommender (),
),
)
Iterate with recommendations and measurements
# Let's do a first round of recommendation
recommendation = campaign . recommend ( batch_size = 1 )
print ( "Recommendation from campaign:" )
print ( recommendation )
Recommendation from campaign:
Pressure[bar] Temperature[degree_C]
13 5.0 133.333333
Add some fake results
add_fake_measurements ( recommendation , campaign . targets )
campaign . add_measurements ( recommendation )
Model Outputs
# Do another round of recommendation
recommendation = campaign . recommend ( batch_size = 1 )
Print second round of recommendation
print ( "Recommendation from campaign:" )
print ( recommendation )
Recommendation from campaign:
Pressure[bar] Temperature[degree_C]
index
20 10.0 100.0
Using configuration instead
Note that this can be placed inside an overall baybe config
Refer to create_from_config for an example
CONFIG = {
"type" : "CustomONNXSurrogate" ,
"onnx_str" : onnx_str ,
"onnx_input_name" : ONNX_INPUT_NAME ,
}
### Model creation from dict (or json if string)
model_from_python = CustomONNXSurrogate (
onnx_str = onnx_str , onnx_input_name = ONNX_INPUT_NAME
)
model_from_configs = CustomONNXSurrogate . from_dict ( CONFIG )
This configuration creates the same model
assert model_from_python == model_from_configs
JSON configuration (expects onnx_str to be decoded with ISO-8859-1 )
model_json = model_from_python . to_json ()
assert model_from_python == CustomONNXSurrogate . from_json ( model_json )
Copyright © 2022-2025 Merck KGaA, Darmstadt, Germany and/or its affiliates. All rights reserved.
Made with
Sphinx and
@pradyunsg 's
Furo