Source code for tune_sklearn.utils

from typing import Any, Dict, Type

from sklearn.base import is_classifier, is_regressor
from triad import assert_or_throw
from triad.utils.convert import get_full_type_path, to_type
from tune.constants import SPACE_MODEL_NAME
from tune.concepts.space.spaces import Space


[docs]def to_sk_model(obj: Any) -> Type: if isinstance(obj, str): obj = to_type(obj) assert_or_throw( is_classifier(obj) or is_regressor(obj), TypeError(f"{obj} is neither a sklearn classifier or regressor"), ) return obj
[docs]def to_sk_model_expr(model: Any) -> Any: if isinstance(model, str): model = to_sk_model(model) return get_full_type_path(model)
[docs]def sk_space(model: str, **params: Dict[str, Any]) -> Space: data = {SPACE_MODEL_NAME: to_sk_model_expr(model)} data.update(params) return Space(**data)