diff --git a/sklearn/compose/_column_transformer.py b/sklearn/compose/_column_transformer.py index 6c15b81be98c2..ada175c7f32c6 100644 --- a/sklearn/compose/_column_transformer.py +++ b/sklearn/compose/_column_transformer.py @@ -141,6 +141,12 @@ class ColumnTransformer(TransformerMixin, _BaseComposition): .. versionadded:: 1.0 + n_features_in_ : int + Number of features seen during :term:`fit`. Only defined if the + underlying transformers expose such an attribute when fit. + + .. versionadded:: 0.24 + Notes ----- The order of the columns in the transformed feature matrix follows the diff --git a/sklearn/compose/_target.py b/sklearn/compose/_target.py index 12fe13ee848b9..af996623d8aa3 100644 --- a/sklearn/compose/_target.py +++ b/sklearn/compose/_target.py @@ -82,6 +82,12 @@ class TransformedTargetRegressor(RegressorMixin, BaseEstimator): transformer_ : object Transformer used in ``fit`` and ``predict``. + n_features_in_ : int + Number of features seen during :term:`fit`. Only defined if the + underlying regressor exposes such an attribute when fit. + + .. versionadded:: 0.24 + Examples -------- >>> import numpy as np diff --git a/sklearn/tests/test_common.py b/sklearn/tests/test_common.py index 6fd57c9e8d4fc..848788647cf3f 100644 --- a/sklearn/tests/test_common.py +++ b/sklearn/tests/test_common.py @@ -261,7 +261,7 @@ def test_search_cv(estimator, check, request): # # check_classifiers_train would need to be updated with the error message N_FEATURES_IN_AFTER_FIT_MODULES_TO_IGNORE = { - 'compose', + 'feature_extraction', 'model_selection', 'multiclass', 'multioutput', diff --git a/sklearn/tests/test_metaestimators.py b/sklearn/tests/test_metaestimators.py index ad716c3e4cd2f..c7412c98d4290 100644 --- a/sklearn/tests/test_metaestimators.py +++ b/sklearn/tests/test_metaestimators.py @@ -169,7 +169,7 @@ def _generate_meta_estimator_instances_with_pipeline(): for _, Estimator in sorted(all_estimators()): sig = set(signature(Estimator).parameters) - if "estimator" in sig or "base_estimator" in sig: + if "estimator" in sig or "base_estimator" in sig or "regressor" in sig: if is_regressor(Estimator): estimator = make_pipeline(TfidfVectorizer(), Ridge()) param_grid = {"ridge__alpha": [0.1, 1.0]}