INNER CODE UNIT · Python
_add_ar1_mf_fidelity_feature
fabsig/GPBoost · python-package/gpboost/engine.py:22
def _add_ar1_mf_fidelity_feature(dataset, fidelity):
"""Append the AR1 multifidelity indicator as an additional boosting feature to a Dataset."""
fidelity = np.asarray(fidelity).reshape(-1)
if getattr(dataset, "_ar1_mf_fidelity_added", False):
if not np.array_equal(fidelity, dataset._ar1_mf_fidelity):
raise ValueError("This Dataset already contains a different AR1 multifidelity indicator")
return
if dataset.data is None or not hasattr(dataset.data, "shape"):
raise ValueError("Fidelity-specific GPBoost means require retained matrix-like Dataset data")
if fidelity.shape[0] != dataset.data.shape[0] or not np.all(np.isin(fidelity, (0., 1.))):
raise ValueError("The AR1 multifidelity indicator must contain one value (0 or 1) per Dataset row")
if dataset.handle is not None:
dataset._free_handle()
if scipy.sparse.issparse(dataset.data):
dataset.data = scipy.sparse.hstack((dataset.data, fidelity[:, None]), format=dataset.data.format)
elif isinstance(dataset.data, pd_DataFrame):
dataset.data = dataset.data.copy()
dataset.data["AR1_MF_fidelity"] = fidelity