diff --git a/sklearn/feature_extraction/_dict_vectorizer.py b/sklearn/feature_extraction/_dict_vectorizer.py index e04c409027bda..8ca9b61645978 100644 --- a/sklearn/feature_extraction/_dict_vectorizer.py +++ b/sklearn/feature_extraction/_dict_vectorizer.py @@ -97,6 +97,13 @@ class DictVectorizer(TransformerMixin, BaseEstimator): array([[0., 0., 4.]]) """ + _parameter_constraints = { + "dtype": "no_validation", # validation delegated to numpy, + "separator": [str], + "sparse": ["boolean"], + "sort": ["boolean"], + } + def __init__(self, *, dtype=np.float64, separator="=", sparse=True, sort=True): self.dtype = dtype self.separator = separator @@ -154,6 +161,7 @@ def fit(self, X, y=None): self : object DictVectorizer class instance. """ + self._validate_params() feature_names = [] vocab = {} @@ -310,6 +318,7 @@ def fit_transform(self, X, y=None): Xa : {array, sparse matrix} Feature vectors; always 2-d. """ + self._validate_params() return self._transform(X, fitting=True) def inverse_transform(self, X, dict_type=dict): diff --git a/sklearn/tests/test_common.py b/sklearn/tests/test_common.py index 8c0a2aa57aa91..e7f084ae44959 100644 --- a/sklearn/tests/test_common.py +++ b/sklearn/tests/test_common.py @@ -457,7 +457,6 @@ def test_estimators_do_not_raise_errors_in_init_or_set_params(Estimator): "CalibratedClassifierCV", "ClassifierChain", "CountVectorizer", - "DictVectorizer", "DictionaryLearning", "ElasticNetCV", "EllipticEnvelope",