Source code for smac.model.random_model

from __future__ import annotations

import numpy as np

from smac.model.abstract_model import AbstractModel
from smac.utils.logging import get_logger

__copyright__ = "Copyright 2022, automl.org"
__license__ = "3-clause BSD"

logger = get_logger(__name__)


[docs]class RandomModel(AbstractModel): """AbstractModel which returns random values on a call to `fit`.""" def _train(self, X: np.ndarray, Y: np.ndarray) -> RandomModel: if not isinstance(X, np.ndarray): raise NotImplementedError("X has to be of type np.ndarray.") if not isinstance(Y, np.ndarray): raise NotImplementedError("Y has to be of type np.ndarray.") logger.debug("(Pseudo) fit model to data.") return self def _predict( self, X: np.ndarray, covariance_type: str | None = "diagonal", ) -> tuple[np.ndarray, np.ndarray | None]: if covariance_type != "diagonal": raise ValueError("`covariance_type` can only take `diagonal` for this model.") if not isinstance(X, np.ndarray): raise NotImplementedError("X has to be of type np.ndarray.") return self._rng.rand(len(X), 1), self._rng.rand(len(X), 1)