Toggle Menu
Prev Up Next

scikit-learn 1.3.2
Other versions

Please cite us if you use the software.

# `sklearn.pipeline`.FeatureUnion

class sklearn.pipeline.FeatureUnion(transformer_list, *, n_jobs=None, transformer_weights=None, verbose=False)

  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.

  New in version 0.13.

  Parameters:
    transformer_list list 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.

      New in version 1.1: Added the option `"passthrough"`.

      Changed in version 0.22: Deprecated `None` as a transformer in favor of ‘drop’.

    n_jobs int, default=None

      Number of jobs to run in parallel. `None` means 1 unless in a `joblib.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_weights dict, default=None

      Multiplicative weights for features per transformer. Keys are transformer names, values the weights. Raises ValueError if key not present in `transformer_list`.

    verbose bool, default=False

      If True, the time elapsed while fitting each transformer will be printed as it is completed.

  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.

      New in version 1.2.

    `n_features_in_`int

      Number of features seen during fit.

    `feature_names_in_`ndarray of shape (`n_features_in_`,)

      Names of features seen during fit.

  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(pca__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.

  Methods

  `fit`(X[, y]) | Fit all transformers using X.
  `fit_transform`(X[, y]) | Fit all transformers, transform the data and concatenate results.
  `get_feature_names_out`([input_features]) | Get output feature names for transformation.
  `get_metadata_routing`() | Get metadata routing of this object.
  `get_params`([deep]) | Get parameters for this estimator.
  `set_output`(*[, transform]) | Set the output container when `"transform"` and `"fit_transform"` are called.
  `set_params`(**kwargs) | Set the parameters of this estimator.
  `transform`(X) | Transform X separately by each transformer, concatenate results.

  property feature_names_in_

    Names of features seen during fit.

  fit(X, y=None, **fit_params)

    Fit all transformers using X.

    Parameters:
      X iterable or array-like, depending on transformers

        Input data, used to fit transformers.

      y array-like of shape (n_samples, n_outputs), default=None

        Targets for supervised learning.

      **fit_params dict, default=None

        Parameters to pass to the fit method of the estimator.

    Returns:
      self object

        FeatureUnion class instance.

  fit_transform(X, y=None, **fit_params)

    Fit all transformers, transform the data and concatenate results.

    Parameters:
      X iterable or array-like, depending on transformers

        Input data to be transformed.

      y array-like of shape (n_samples, n_outputs), default=None

        Targets for supervised learning.

      **fit_params dict, default=None

        Parameters to pass to the fit method of the estimator.

    Returns:
      X_t array-like or sparse matrix of shape (n_samples, sum_n_components)

        The `hstack` of results of transformers. `sum_n_components` is the sum of `n_components` (output dimension) over transformers.

  get_feature_names_out(input_features=None)

    Get output feature names for transformation.

    Parameters:
      input_features array-like of str or None, default=None

        Input features.

    Returns:
      feature_names_out ndarray of str objects

        Transformed feature names.

  get_metadata_routing()

    Get metadata routing of this object.

    Please check User Guide on how the routing mechanism works.

    Returns:
      routing MetadataRequest

        A `MetadataRequest` encapsulating routing information.

  get_params(deep=True)

    Get parameters for this estimator.

    Returns the parameters given in the constructor as well as the estimators contained within the `transformer_list` of the `FeatureUnion`.

    Parameters:
      deep bool, default=True

        If True, will return the parameters for this estimator and contained subobjects that are estimators.

    Returns:
      params mapping of string to any

        Parameter names mapped to their values.

  property n_features_in_

    Number of features seen during fit.

  set_output(*, transform=None)

    Set the output container when `"transform"` and `"fit_transform"` are called.

    `set_output` will set the output of all estimators in `transformer_list`.

    Parameters:
      transform{“default”, “pandas”}, default=None

        Configure output of `transform` and `fit_transform`.

        - `"default"`: Default output format of a transformer

        - `"pandas"`: DataFrame output

        - `None`: Transform configuration is unchanged

    Returns:
      self estimator instance

        Estimator instance.

  set_params(**kwargs)

    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 in `transformer_list`.

    Parameters:
      **kwargs dict

        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:
      self object

        FeatureUnion class instance.

  transform(X)

    Transform X separately by each transformer, concatenate results.

    Parameters:
      X iterable or array-like, depending on transformers

        Input data to be transformed.

    Returns:
      X_t array-like or sparse matrix of shape (n_samples, sum_n_components)

        The `hstack` of results of transformers. `sum_n_components` is the sum of `n_components` (output dimension) over transformers.

## Examples using `sklearn.pipeline.FeatureUnion`

Time-related feature engineering

Time-related feature engineering

Concatenating multiple feature extraction methods

Concatenating multiple feature extraction methods