diff --git a/sklearn/cross_decomposition/_pls.py b/sklearn/cross_decomposition/_pls.py index 817d4edbd9e88..a8d43a7fe2924 100644 --- a/sklearn/cross_decomposition/_pls.py +++ b/sklearn/cross_decomposition/_pls.py @@ -317,7 +317,7 @@ def transform(self, X, Y=None, copy=True): `x_scores` if `Y` is not given, `(x_scores, y_scores)` otherwise. """ check_is_fitted(self) - X = check_array(X, copy=copy, dtype=FLOAT_DTYPES) + X = self._validate_data(X, copy=copy, dtype=FLOAT_DTYPES, reset=False) # Normalize X -= self._x_mean X /= self._x_std @@ -379,7 +379,7 @@ def predict(self, X, copy=True): space. """ check_is_fitted(self) - X = check_array(X, copy=copy, dtype=FLOAT_DTYPES) + X = self._validate_data(X, copy=copy, dtype=FLOAT_DTYPES, reset=False) # Normalize X -= self._x_mean X /= self._x_std @@ -984,7 +984,7 @@ def transform(self, X, Y=None): `(X_transformed, Y_transformed)` otherwise. """ check_is_fitted(self) - X = check_array(X, dtype=np.float64) + X = self._validate_data(X, dtype=np.float64, reset=False) Xr = (X - self._x_mean) / self._x_std x_scores = np.dot(Xr, self.x_weights_) if Y is not None: diff --git a/sklearn/tests/test_common.py b/sklearn/tests/test_common.py index b900f94231419..4c6a2414aac50 100644 --- a/sklearn/tests/test_common.py +++ b/sklearn/tests/test_common.py @@ -267,7 +267,6 @@ def test_search_cv(estimator, check, request): 'calibration', 'compose', 'covariance', - 'cross_decomposition', 'discriminant_analysis', 'ensemble', 'feature_extraction', diff --git a/sklearn/utils/estimator_checks.py b/sklearn/utils/estimator_checks.py index 849d8a1f3921b..e811c3c3679e9 100644 --- a/sklearn/utils/estimator_checks.py +++ b/sklearn/utils/estimator_checks.py @@ -63,7 +63,7 @@ load_iris, make_blobs, make_multilabel_classification, - make_regression, + make_regression ) REGRESSION_DATASET = None @@ -646,6 +646,9 @@ def _set_checking_parameters(estimator): if name == 'OneHotEncoder': estimator.set_params(handle_unknown='ignore') + if name in CROSS_DECOMPOSITION: + estimator.set_params(n_components=1) + class _NotAnArray: """An object that is convertible to an array. @@ -3122,9 +3125,11 @@ def check_n_features_in_after_fitting(name, estimator_orig): if 'warm_start' in estimator.get_params(): estimator.set_params(warm_start=False) - n_samples = 100 - X = rng.normal(loc=100, size=(n_samples, 2)) + n_samples = 150 + X = rng.normal(size=(n_samples, 8)) + X = _enforce_estimator_tags_x(estimator, X) X = _pairwise_estimator_convert_X(X, estimator) + if is_regressor(estimator): y = rng.normal(size=n_samples) else: