8000 [MRG] API kwonly args in impute, inspection, kernel_ridge (#16926) · gio8tisu/scikit-learn@ed5794d · GitHub
[go: up one dir, main page]

Skip to content

Commit ed5794d

Browse files
adrinjalaligio8tisu
authored andcommitted
[MRG] API kwonly args in impute, inspection, kernel_ridge (scikit-learn#16926)
, and linear_model
1 parent 0a3a1b9 commit ed5794d

24 files changed

+151
-84
lines changed

sklearn/impute/_base.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from ..utils.sparsefuncs import _get_median
1515
from ..utils.validation import check_is_fitted
1616
from ..utils.validation import FLOAT_DTYPES
17+
from ..utils.validation import _deprecate_positional_args
1718
from ..utils._mask import _get_mask
1819
from ..utils import is_scalar_nan
1920

@@ -67,7 +68,7 @@ class _BaseImputer(TransformerMixin, BaseEstimator):
6768
It adds automatically support for `add_indicator`.
6869
"""
6970

70-
def __init__(self, missing_values=np.nan, add_indicator=False):
71+
def __init__(self, *, missing_values=np.nan, add_indicator=False):
7172
self.missing_values = missing_values
7273
self.add_indicator = add_indicator
7374

@@ -205,7 +206,8 @@ class SimpleImputer(_BaseImputer):
205206
upon :meth:`transform` if strategy is not "constant".
206207
207208
"""
208-
def __init__(self, missing_values=np.nan, strategy="mean",
209+
@_deprecate_positional_args
210+
def __init__(self, *, missing_values=np.nan, strategy="mean",
209211
fill_value=None, verbose=0, copy=True, add_indicator=False):
210212
super().__init__(
211213
missing_values=missing_values,
@@ -525,8 +527,8 @@ class MissingIndicator(TransformerMixin, BaseEstimator):
525527
[False, False]])
526528
527529
"""
528-
529-
def __init__(self, missing_values=np.nan, features="missing-only",
530+
@_deprecate_positional_args
531+
def __init__(self, *, missing_values=np.nan, features="missing-only",
530532
sparse="auto", error_on_new=True):
531533
self.missing_values = missing_values
532534
self.features = features

sklearn/impute/_iterative.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,8 @@ class IterativeImputer(_BaseImputer):
206206
Journal of the Royal Statistical Society 22(2): 302-306.
207207
<https://www.jstor.org/stable/2984099>`_
208208
"""
209-
210209
def __init__(self,
211-
estimator=None,
210+
estimator=None, *,
212211
missing_values=np.nan,
213212
sample_posterior=False,
214213
max_iter=10,

sklearn/impute/_knn.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from ..utils import is_scalar_nan
1515
from ..utils._mask import _get_mask
1616
from ..utils.validation import check_is_fitted
17+
from ..utils.validation import _deprecate_positional_args
1718

1819

1920
class KNNImputer(_BaseImputer):
@@ -94,8 +95,8 @@ class KNNImputer(_BaseImputer):
9495
[5.5, 6. , 5. ],
9596
[8. , 8. , 7. ]])
9697
"""
97-
98-
def __init__(self, missing_values=np.nan, n_neighbors=5,
98+
@_deprecate_positional_args
99+
def __init__(self, *, missing_values=np.nan, n_neighbors=5,
99100
weights="uniform", metric="nan_euclidean", copy=True,
100101
add_indicator=False):
101102
super().__init__(

sklearn/impute/tests/test_impute.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ def _check_statistics(X, X_true,
4848
assert_ae = assert_array_almost_equal
4949

5050
# Normal matrix
51-
imputer = SimpleImputer(missing_values, strategy=strategy)
51+
imputer = SimpleImputer(missing_values=missing_values, strategy=strategy)
5252
X_trans = imputer.fit(X).transform(X.copy())
5353
assert_ae(imputer.statistics_, statistics,
5454
err_msg=err_msg.format(False))
5555
assert_ae(X_trans, X_true, err_msg=err_msg.format(False))
5656

5757
# Sparse matrix
58-
imputer = SimpleImputer(missing_values, strategy=strategy)
58+
imputer = SimpleImputer(missing_values=missing_values, strategy=strategy)
5959
imputer.fit(sparse.csc_matrix(X))
6060
X_trans = imputer.transform(sparse.csc_matrix(X.copy()))
6161

sklearn/inspection/_partial_dependence.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from ..utils import _determine_key_type
2121
from ..utils import _get_column_indices
2222
from ..utils.validation import check_is_fitted
23+
from ..utils.validation import _deprecate_positional_args
2324
from ..tree import DecisionTreeRegressor
2425
from ..ensemble import RandomForestRegressor
2526
from ..exceptions import NotFittedError
@@ -181,7 +182,8 @@ def _partial_dependence_brute(est, grid, features, X, response_method):
181182
return averaged_predictions
182183

183184

184-
def partial_dependence(estimator, X, features, response_method='auto',
185+
@_deprecate_positional_args
186+
def partial_dependence(estimator, X, features, *, response_method='auto',
185187
percentiles=(0.05, 0.95), grid_resolution=100,
186188
method='auto'):
187189
"""Partial dependence of ``features``.

sklearn/inspection/_permutation_importance.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from ..utils import Bunch
88
from ..utils import check_random_state
99
from ..utils import check_array
10+
from ..utils.validation import _deprecate_positional_args
1011

1112

1213
def _calculate_permutation_scores(estimator, X, y, col_idx, random_state,
@@ -37,7 +38,8 @@ def _calculate_permutation_scores(estimator, X, y, col_idx, random_state,
3738
return scores
3839

3940

40-
def permutation_importance(estimator, X, y, scoring=None, n_repeats=5,
41+
@_deprecate_positional_args
42+
def permutation_importance(estimator, X, y, *, scoring=None, n_repeats=5,
4143
n_jobs=None, random_state=None):
4244
"""Permutation importance for feature evaluation [BRE]_.
4345

sklearn/inspection/_plot/partial_dependence.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
from ...utils import check_array
1414
from ...utils import check_matplotlib_support # noqa
1515
from ...utils import _safe_indexing
16+
from ...utils.validation import _deprecate_positional_args
1617

1718

18-
def plot_partial_dependence(estimator, X, features, feature_names=None,
19+
@_deprecate_positional_args
20+
def plot_partial_dependence(estimator, X, features, *, feature_names=None,
1921
target=None, response_method='auto', n_cols=3,
2022
grid_resolution=100, percentiles=(0.05, 0.95),
2123
method='auto', n_jobs=None, verbose=0, fig=None,
@@ -322,8 +324,12 @@ def convert_feature(fx):
322324
fig.clear()
323325
ax = fig.gca()
324326

325-
display = PartialDependenceDisplay(pd_results, features, feature_names,
326-
target_idx, pdp_lim, deciles)
327+
display = PartialDependenceDisplay(pd_results=pd_results,
328+
features=features,
329+
feature_names=feature_names,
330+
target_idx=target_idx,
331+
pdp_lim=pdp_lim,
332+
deciles=deciles)
327333
return display.plot(ax=ax, n_cols=n_cols, line_kw=line_kw,
328334
contour_kw=contour_kw)
329335

@@ -406,7 +412,8 @@ class PartialDependenceDisplay:
406412
Figure containing partial dependence plots.
407413
408414
"""
409-
def __init__(self, pd_results, features, feature_names, target_idx,
415+
@_deprecate_positional_args
416+
def __init__(self, pd_results, *, features, feature_names, target_idx,
410417
pdp_lim, deciles):
411418
self.pd_results = pd_results
412419
self.features = features

sklearn/kernel_ridge.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from .metrics.pairwise import pairwise_kernels
1111
from .linear_model._ridge import _solve_cholesky_kernel
1212
from .utils.validation import check_is_fitted, _check_sample_weight
13+
from .utils.validation import _deprecate_positional_args
1314

1415

1516
class KernelRidge(MultiOutputMixin, RegressorMixin, BaseEstimator):
@@ -113,8 +114,9 @@ class KernelRidge(MultiOutputMixin, RegressorMixin, BaseEstimator):
113114
>>> clf.fit(X, y)
114115
KernelRidge(alpha=1.0)
115116
"""
116-
def __init__(self, alpha=1, kernel="linear", gamma=None, degree=3, coef0=1,
117-
kernel_params=None):
117+
@_deprecate_positional_args
118+
def __init__(self, alpha=1, *, kernel="linear", gamma=None, degree=3,
119+
coef0=1, kernel_params=None):
118120
self.alpha = alpha
119121
self.kernel = kernel
120122
self.gamma = gamma

sklearn/linear_model/_base.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
MultiOutputMixin)
2929
from ..utils import check_array
3030
from ..utils.validation import FLOAT_DTYPES
31+
from ..utils.validation import _deprecate_positional_args
3132
from ..utils import check_random_state
3233
from ..utils.extmath import safe_sparse_dot
3334
from ..utils.sparsefuncs import mean_variance_axis, inplace_column_scale
@@ -466,8 +467,8 @@ class LinearRegression(MultiOutputMixin, RegressorMixin, LinearModel):
466467
>>> reg.predict(np.array([[3, 5]]))
467468
array([16.])
468469
"""
469-
470-
def __init__(self, fit_intercept=True, normalize=False, copy_X=True,
470+
@_deprecate_positional_args
471+
def __init__(self, *, fit_intercept=True, normalize=False, copy_X=True,
471472
n_jobs=None):
472473
self.fit_intercept = fit_intercept
473474
self.normalize = normalize

sklearn/linear_model/_bayes.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from ..utils.extmath import fast_logdet
1515
from ..utils.fixes import pinvh
1616
from ..utils.validation import _check_sample_weight
17+
from ..utils.validation import _deprecate_positional_args
1718

1819

1920
###############################################################################
@@ -145,8 +146,8 @@ class BayesianRidge(RegressorMixin, LinearModel):
145146
M. E. Tipping, Sparse Bayesian Learning and the Relevance Vector Machine,
146147
Journal of Machine Learning Research, Vol. 1, 2001.
147148
"""
148-
149-
def __init__(self, n_iter=300, tol=1.e-3, alpha_1=1.e-6, alpha_2=1.e-6,
149+
@_deprecate_positional_args
150+
def __init__(self, *, n_iter=300, tol=1.e-3, alpha_1=1.e-6, alpha_2=1.e-6,
150151
lambda_1=1.e-6, lambda_2=1.e-6, alpha_init=None,
151152
lambda_init=None, compute_score=False, fit_intercept=True,
152153
normalize=False, copy_X=True, verbose=False):
@@ -489,8 +490,8 @@ class ARDRegression(RegressorMixin, LinearModel):
489490
which ``self.lambda_ < self.threshold_lambda`` are kept and the rest are
490491
discarded.
491492
"""
492-
493-
def __init__(self, n_iter=300, tol=1.e-3, alpha_1=1.e-6, alpha_2=1.e-6,
493+
@_deprecate_positional_args
494+
def __init__(self, *, n_iter=300, tol=1.e-3, alpha_1=1.e-6, alpha_2=1.e-6,
494495
lambda_1=1.e-6, lambda_2=1.e-6, compute_score=False,
495496
threshold_lambda=1.e+4, fit_intercept=True, normalize=False,
496497
copy_X=True, verbose=False):

0 commit comments

Comments
 (0)
0