def _check_x_y()

in bayesmark/random_search.py [0:0]


def _check_x_y(X, y, allow_impute=False):  # pragma: validator
    """Input validation for `suggest` routine."""
    if not (np.ndim(X) == 2):
        raise ValueError("X must be 2-dimensional got %s." % str(np.shape(X)))
    n_obs, n_params = np.shape(X)

    assert n_params >= 1, "We do not support suggest on empty space."

    if not (np.shape(y) == (n_obs,)):
        raise ValueError("y must be %s not %s." % (str((n_obs,)), str(np.shape(y))))

    if not np.all(np.isfinite(X)):
        raise ValueError("X must be finite.")

    n_real_obs = n_obs
    if allow_impute:
        if not np.all(np.isfinite(y) | np.isnan(y)):
            raise ValueError("y can't contain infs even with data imputation.")
        n_real_obs = np.sum(np.isfinite(y))
    else:
        if not np.all(np.isfinite(y)):
            raise ValueError("y must be finite when data imputation not used.")

    return n_real_obs, n_params