FeatureUnion#
- class sklearn.pipeline.FeatureUnion(transformer_list, *, n_jobs=None, transformer_weights=None, verbose=False, verbose_feature_names_out=True)[source]#
Concatenates results of multiple transformer objects.
This estimator applies a list of transformer objects in parallel to the input data, then concatenates the results. This is useful to combine several feature extraction mechanisms into a single transformer.
Parameters of the transformers may be set using its name and the parameter name separated by a ‘__’. A transformer may be replaced entirely by setting the parameter with its name to another transformer, removed by setting to ‘drop’ or disabled by setting to ‘passthrough’ (features are passed without transformation).
Read more in the User Guide.
Added in version 0.13.
- Parameters:
- transformer_listlist of (str, transformer) tuples
List of transformer objects to be applied to the data. The first half of each tuple is the name of the transformer. The transformer can be ‘drop’ for it to be ignored or can be ‘passthrough’ for features to be passed unchanged.
Added in version 1.1: Added the option
"passthrough"
.Changed in version 0.22: Deprecated
None
as a transformer in favor of ‘drop’.- n_jobsint, default=None
Number of jobs to run in parallel.
None
means 1 unless in ajoblib.parallel_backend
context.-1
means using all processors. See Glossary for more details.Changed in version v0.20:
n_jobs
default changed from 1 to None- transformer_weightsdict, default=None
Multiplicative weights for features per transformer. Keys are transformer names, values the weights. Raises ValueError if key not present in
transformer_list
.- verbosebool, default=False
If True, the time elapsed while fitting each transformer will be printed as it is completed.
- verbose_feature_names_outbool, default=True
If True,
get_feature_names_out
will prefix all feature names with the name of the transformer that generated that feature. If False,get_feature_names_out
will not prefix any feature names and will error if feature names are not unique.Added in version 1.5.
- Attributes:
- named_transformers
Bunch
Dictionary-like object, with the following attributes. Read-only attribute to access any transformer parameter by user given name. Keys are transformer names and values are transformer parameters.
Added in version 1.2.
n_features_in_
intNumber of features seen during fit.
feature_names_in_
ndarray of shape (n_features_in_
,)Names of features seen during fit.
- named_transformers
See also
make_union
Convenience function for simplified feature union construction.
Examples
>>> from sklearn.pipeline import FeatureUnion >>> from sklearn.decomposition import PCA, TruncatedSVD >>> union = FeatureUnion([("pca", PCA(n_components=1)), ... ("svd", TruncatedSVD(n_components=2))]) >>> X = [[0., 1., 3], [2., 2., 5]] >>> union.fit_transform(X) array([[-1.5 , 3.0..., -0.8...], [ 1.5 , 5.7..., 0.4...]]) >>> # An estimator's parameter can be set using '__' syntax >>> union.set_params(svd__n_components=1).fit_transform(X) array([[-1.5 , 3.0...], [ 1.5 , 5.7...]])
For a more detailed example of usage, see Concatenating multiple feature extraction methods.
- fit(X, y=None, **fit_params)[source]#
Fit all transformers using X.
- Parameters:
- Xiterable or array-like, depending on transformers
Input data, used to fit transformers.
- yarray-like of shape (n_samples, n_outputs), default=None
Targets for supervised learning.
- **fit_paramsdict, default=None
If
enable_metadata_routing=False
(default): Parameters directly passed to thefit
methods of the sub-transformers.If
enable_metadata_routing=True
: Parameters safely routed to thefit
methods of the sub-transformers. See Metadata Routing User Guide for more details.
Changed in version 1.5:
**fit_params
can be routed via metadata routing API.
- Returns:
- selfobject
FeatureUnion class instance.
- fit_transform(X, y=None, **params)[source]#
Fit all transformers, transform the data and concatenate results.
- Parameters:
- Xiterable or array-like, depending on transformers
Input data to be transformed.
- yarray-like of shape (n_samples, n_outputs), default=None
Targets for supervised learning.
- **paramsdict, default=None
If
enable_metadata_routing=False
(default): Parameters directly passed to thefit
methods of the sub-transformers.If
enable_metadata_routing=True
: Parameters safely routed to thefit
methods of the sub-transformers. See Metadata Routing User Guide for more details.
Changed in version 1.5:
**params
can now be routed via metadata routing API.
- Returns:
- X_tarray-like or sparse matrix of shape (n_samples, sum_n_components)
The
hstack
of results of transformers.sum_n_components
is the sum ofn_components
(output dimension) over transformers.
- get_feature_names_out(input_features=None)[source]#
Get output feature names for transformation.
- Parameters:
- input_featuresarray-like of str or None, default=None
Input features.
- Returns:
- feature_names_outndarray of str objects
Transformed feature names.
- get_metadata_routing()[source]#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
Added in version 1.5.
- Returns:
- routingMetadataRouter
A
MetadataRouter
encapsulating routing information.
- get_params(deep=True)[source]#
Get parameters for this estimator.
Returns the parameters given in the constructor as well as the estimators contained within the
transformer_list
of theFeatureUnion
.- Parameters:
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
- paramsmapping of string to any
Parameter names mapped to their values.
- set_output(*, transform=None)[source]#
Set the output container when
"transform"
and"fit_transform"
are called.set_output
will set the output of all estimators intransformer_list
.- Parameters:
- transform{“default”, “pandas”, “polars”}, default=None
Configure output of
transform
andfit_transform
."default"
: Default output format of a transformer"pandas"
: DataFrame output"polars"
: Polars outputNone
: Transform configuration is unchanged
- Returns:
- selfestimator instance
Estimator instance.
- set_params(**kwargs)[source]#
Set the parameters of this estimator.
Valid parameter keys can be listed with
get_params()
. Note that you can directly set the parameters of the estimators contained intransformer_list
.- Parameters:
- **kwargsdict
Parameters of this estimator or parameters of estimators contained in
transform_list
. Parameters of the transformers may be set using its name and the parameter name separated by a ‘__’.
- Returns:
- selfobject
FeatureUnion class instance.
- transform(X, **params)[source]#
Transform X separately by each transformer, concatenate results.
- Parameters:
- Xiterable or array-like, depending on transformers
Input data to be transformed.
- **paramsdict, default=None
Parameters routed to the
transform
method of the sub-transformers via the metadata routing API. See Metadata Routing User Guide for more details.Added in version 1.5.
- Returns:
- X_tarray-like or sparse matrix of shape (n_samples, sum_n_components)
The
hstack
of results of transformers.sum_n_components
is the sum ofn_components
(output dimension) over transformers.
Gallery examples#
Time-related feature engineering
Concatenating multiple feature extraction methods