Skip to content

Commit 8eed51a

Browse files
authored
Merge pull request #44 from Richie94/upgrade-scikitlearn-1.3
Upgrade to comply with scikitlearn >1.3
2 parents a3a420a + def1dfd commit 8eed51a

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

eli5/sklearn/permutation_importance.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import numpy as np
66
from sklearn.model_selection import check_cv
7-
from sklearn.utils.metaestimators import if_delegate_has_method
7+
from sklearn.utils.metaestimators import available_if
88
from sklearn.utils import check_array, check_random_state
99
from sklearn.base import (
1010
BaseEstimator,
@@ -20,6 +20,12 @@
2020
if pandas_available:
2121
import pandas as pd
2222

23+
def _estimator_has(attr):
24+
def check(self):
25+
return hasattr(self.wrapped_estimator_, attr)
26+
27+
return check
28+
2329
CAVEATS_CV_NONE = """
2430
Feature importances are computed on the same data as used for training,
2531
i.e. feature importances don't reflect importance of features for
@@ -247,23 +253,23 @@ def caveats_(self):
247253

248254
# ============= Exposed methods of a wrapped estimator:
249255

250-
@if_delegate_has_method(delegate='wrapped_estimator_')
256+
@available_if(_estimator_has('score'))
251257
def score(self, X, y=None, *args, **kwargs):
252258
return self.wrapped_estimator_.score(X, y, *args, **kwargs)
253259

254-
@if_delegate_has_method(delegate='wrapped_estimator_')
260+
@available_if(_estimator_has('predict'))
255261
def predict(self, X):
256262
return self.wrapped_estimator_.predict(X)
257263

258-
@if_delegate_has_method(delegate='wrapped_estimator_')
264+
@available_if(_estimator_has('predict_proba'))
259265
def predict_proba(self, X):
260266
return self.wrapped_estimator_.predict_proba(X)
261267

262-
@if_delegate_has_method(delegate='wrapped_estimator_')
268+
@available_if(_estimator_has('predict_log_proba'))
263269
def predict_log_proba(self, X):
264270
return self.wrapped_estimator_.predict_log_proba(X)
265271

266-
@if_delegate_has_method(delegate='wrapped_estimator_')
272+
@available_if(_estimator_has('decision_function'))
267273
def decision_function(self, X):
268274
return self.wrapped_estimator_.decision_function(X)
269275

0 commit comments

Comments
 (0)