import scipy as sp from scipy.sparse import spmatrix from optuna import distributions from optuna import logging from optuna import samplers from optuna import study as study_module from optuna import TrialPruned from optuna._experimental import experimental from optuna._imports import try_import from optuna.study import StudyDirection from optuna.trial import FrozenTrial from optuna.trial import Trial with try_import() as _imports: import pandas as pd import sklearn from sklearn.base import BaseEstimator from sklearn.base import clone from sklearn.base import is_classifier from sklearn.metrics import check_scoring from sklearn.model_selection import BaseCrossValidator from sklearn.model_selection import check_cv from sklearn.model_selection import cross_validate from sklearn.utils import check_random_state from sklearn.utils.metaestimators import _safe_split if sklearn.__version__ >= "0.22": from sklearn.utils import _safe_indexing as sklearn_safe_indexing else:
if type_checking.TYPE_CHECKING: from typing import Any # NOQA from typing import Callable from typing import Dict # NOQA from typing import List # NOQA from typing import Optional # NOQA from typing import Set # NOQA from typing import Tuple # NOQA from typing import Type # NOQA from typing import Union # NOQA from optuna.distributions import BaseDistribution # NOQA ObjectiveFuncType = Callable[[trial_module.Trial], float] with try_import() as _pandas_imports: # `trials_dataframe` is disabled if pandas is not available. import pandas as pd # NOQA _logger = logging.get_logger(__name__) class BaseStudy(object): def __init__(self, study_id, storage): # type: (int, storages.BaseStorage) -> None self._study_id = study_id self._storage = storage @property def best_params(self):