Skip to content

Commit 540d053

Browse files
committed
Fix compatibility with the latest pandas and sklearn
1 parent 9183c06 commit 540d053

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

hypernets/experiment/compete.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ def __getattribute__(self, item):
680680
if item in transformer_kwargs.keys():
681681
return transformer_kwargs[item]
682682
else:
683-
raise e
683+
raise
684684

685685
def __dir__(self):
686686
transformer_kwargs = self.transformer_kwargs
@@ -1579,7 +1579,7 @@ def train(self, hyper_model, X_train, y_train, X_test, X_eval=None, y_eval=None,
15791579
if step.status_ == ExperimentStep.STATUS_RUNNING:
15801580
step.status_ = ExperimentStep.STATUS_FAILED
15811581
self.step_break(error=e)
1582-
raise e
1582+
raise
15831583
finally:
15841584
step.done_time = time.time()
15851585
elif not step.is_transform_skipped():

hypernets/tabular/dask_ex/_transformers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,19 @@
8585
class SafeOneHotEncoder(dm_pre.OneHotEncoder):
8686
def fit(self, X, y=None):
8787
if isinstance(X, (dd.DataFrame, pd.DataFrame)) and self.categories == "auto" \
88-
and any(d.name in {'object', 'bool'} for d in X.dtypes):
88+
and any(d.name in {'object', 'string', 'bool'} for d in X.dtypes):
8989
a = []
9090
if isinstance(X, dd.DataFrame):
9191
for i in range(len(X.columns)):
9292
Xi = X.iloc[:, i]
93-
if Xi.dtype.name in {'object', 'bool'}:
93+
if Xi.dtype.name in {'object', 'string', 'bool'}:
9494
Xi = Xi.astype('category').cat.as_known()
9595
a.append(Xi)
9696
X = dd.concat(a, axis=1, ignore_unknown_divisions=True)
9797
else:
9898
for i in range(len(X.columns)):
9999
Xi = X.iloc[:, i]
100-
if Xi.dtype.name in {'object', 'bool'}:
100+
if Xi.dtype.name in {'object', 'string', 'bool'}:
101101
Xi = Xi.astype('category')
102102
a.append(Xi)
103103
X = pd.concat(a, axis=1)

hypernets/tabular/drift_detection.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,21 @@
99

1010
import numpy as np
1111
from joblib import Parallel, delayed
12+
import sklearn
1213
from sklearn import model_selection as sksel
1314
from sklearn.metrics import roc_auc_score, matthews_corrcoef, make_scorer
1415

1516
from hypernets.core import randint
16-
from hypernets.utils import logging, const
17+
from hypernets.utils import logging, const, Version
1718
from .cfg import TabularCfg as cfg
1819

1920
logger = logging.getLogger(__name__)
2021

21-
roc_auc_scorer = make_scorer(roc_auc_score, greater_is_better=True, needs_threshold=True)
22+
if Version(sklearn.__version__) >= Version('1.4.0'):
23+
roc_auc_scorer = make_scorer(roc_auc_score, greater_is_better=True,
24+
response_method=("decision_function", "predict_proba"))
25+
else:
26+
roc_auc_scorer = make_scorer(roc_auc_score, greater_is_better=True, needs_threshold=True)
2227
matthews_corrcoef_scorer = make_scorer(matthews_corrcoef)
2328

2429

hypernets/utils/df_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
def get_data_character(hyper_model, X_train, y_train, X_eval=None, y_eval=None, X_test=None, task=None):
88

9-
dtype2usagetype = {'object':'str', 'int64':'int', 'float64':'float', 'datetime64[ns]':'date', 'timedelta64[ns]':'date'}
9+
dtype2usagetype = {'object':'str', 'string':'str', 'int64':'int', 'float64':'float', 'datetime64[ns]':'date', 'timedelta64[ns]':'date'}
1010

1111
task, _ = hyper_model.infer_task_type(y_train) #This line is just used to test
1212

0 commit comments

Comments
 (0)