Skip to content

Commit 48ef77b

Browse files
committed
sklearn attempted fix
1 parent 29f3e1b commit 48ef77b

4 files changed

Lines changed: 42 additions & 2 deletions

File tree

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# copyright: hyperactive developers, MIT License (see LICENSE file)
2+
3+
4+
from hyperactive.integrations.sklearn._adapter._sklearnadapter import _SklearnAdapter
5+
6+
__all__ = [
7+
"_SklearnAdapter",
8+
]
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
"""Adapter for sklearn regressors and classifiers for Hyperactive optimizers."""
2+
3+
from sklearn.base import clone
4+
from sklearn.utils.validation import indexable, _check_method_params
5+
6+
7+
class _SklearnAdapter:
8+
9+
_required_parameters = ["estimator", "optimizer", "params_config"]
10+
11+
def _refit(self, X, y=None, **fit_params):
12+
self.best_estimator_ = clone(self.estimator).set_params(
13+
**clone(self.best_params_, safe=False)
14+
)
15+
16+
self.best_estimator_.fit(X, y, **fit_params)
17+
return self
18+
19+
def _check_data(self, X, y):
20+
X, y = indexable(X, y)
21+
if hasattr(self, "_validate_data"):
22+
validate_data = self._validate_data
23+
else:
24+
from sklearn.utils.validation import validate_data
25+
26+
return validate_data(X, y, ensure_2d=False)
27+
28+
@property
29+
def fit_successful(self):
30+
self._fit_successful

src/hyperactive/integrations/sklearn/hyperactive_search_cv.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
from .checks import Checks
1818
from ...optimizers import RandomSearchOptimizer
1919
from hyperactive.experiment.integrations.sklearn_cv import SklearnCvExperiment
20+
from hyperactive.integrations.sklearn._adapter import _SklearnAdapter
2021

2122

22-
class HyperactiveSearchCV(BaseEstimator, _BestEstimator_, Checks):
23+
class HyperactiveSearchCV(_SklearnAdapter, BaseEstimator, _BestEstimator_, Checks):
2324
"""
2425
HyperactiveSearchCV class for hyperparameter tuning using cross-validation with sklearn estimators.
2526

src/hyperactive/integrations/sklearn/opt_cv.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
from hyperactive.integrations.sklearn.best_estimator import (
1111
BestEstimator as _BestEstimator_
1212
)
13+
from hyperactive.integrations.sklearn._adapter import _SklearnAdapter
1314
from hyperactive.integrations.sklearn.checks import Checks
1415

1516

16-
class OptCV(BaseEstimator, _BestEstimator_, Checks):
17+
class OptCV(_SklearnAdapter, BaseEstimator, _BestEstimator_, Checks):
1718
"""Tuning via any optimizer in the hyperactive API.
1819
1920
Parameters

0 commit comments

Comments
 (0)