class_docstr: Performs a ``FeatureUnion`` of steps, and then send the joined result to the above judge step.
  
  Usage example:
  
  .. code-block:: python
  
      model_stacking = Pipeline([
          ModelStacking([
              SKLearnWrapper(
                  GradientBoostingRegressor(),
                  HyperparameterSpace({
                      "n_estimators": RandInt(50, 600), "max_depth": RandInt(1, 10),
                      "learning_rate": LogUniform(0.07, 0.7)
                  })
              ),
              SKLearnWrapper(
                  KMeans(),
                  HyperparameterSpace({
                      "n_clusters": RandInt(5, 10)
                  })
              ),
          ],
              joiner=NumpyTranspose(),
              judge=SKLearnWrapper(
                  Ridge(),
                  HyperparameterSpace({
                      "alpha": LogUniform(0.7, 1.4),
                      "fit_intercept": Boolean()
                  })
              ),
          )
      ])
  
  .. seealso::
      :class:`FeatureUnion`,
      :class:`AddFeatures`,
      :class:`~neuraxle.base.ForceHandleOnlyMixin`,
      :class:`~neuraxle.base.TruncableSteps`,
      :class:`~neuraxle.base.BaseStep`
class_docstr_tok: ["Performs","a","``","FeatureUnion","``","of","steps",",","and","then","send","the","joined","result","to","the","above","judge","step",".","Usage","example",":","..","code-block",":",":","python","model_stacking","=","Pipeline","(","[","ModelStacking","(","[","SKLearnWrapper","(","GradientBoostingRegressor","(",")",",","HyperparameterSpace","(","{","``","n_estimators","''",":","RandInt","(","50",",","600",")",",","``","max_depth","''",":","RandInt","(","1",",","10",")",",","``","learning_rate","''",":","LogUniform","(","0.07",",","0.7",")","}",")",")",",","SKLearnWrapper","(","KMeans","(",")",",","HyperparameterSpace","(","{","``","n_clusters","''",":","RandInt","(","5",",","10",")","}",")",")",",","]",",","joiner=NumpyTranspose","(",")",",","judge=SKLearnWrapper","(","Ridge","(",")",",","HyperparameterSpace","(","{","``","alpha","''",":","LogUniform","(","0.7",",","1.4",")",",","``","fit_intercept","''",":","Boolean","(",")","}",")",")",",",")","]",")","..","seealso",":",":",":","class",":","`","FeatureUnion","`",",",":","class",":","`","AddFeatures","`",",",":","class",":","`","~neuraxle.base.ForceHandleOnlyMixin","`",",",":","class",":","`","~neuraxle.base.TruncableSteps","`",",",":","class",":","`","~neuraxle.base.BaseStep","`"]
docstr: Perform model stacking. The steps will be merged with a FeatureUnion,
  and the judge will recombine the predictions.
  :param steps_as_tuple: the NamedStepsList of steps to process in parallel and to join.
  :param judge: a BaseStep that will learn to judge the best answer and who to trust out of every parallel steps.
  :param kwargs: Other arguments to send to ``FeatureUnion``.
docstr_tok: ["Perform","model","stacking",".","The","steps","will","be","merged","with","a","FeatureUnion",",","and","the","judge","will","recombine","the","predictions",".",":","param","steps_as_tuple",":","the","NamedStepsList","of","steps","to","process","in","parallel","and","to","join",".",":","param","judge",":","a","BaseStep","that","will","learn","to","judge","the","best","answer","and","who","to","trust","out","of","every","parallel","steps",".",":","param","kwargs",":","Other","arguments","to","send","to","``","FeatureUnion","``","."]
code: def __init__(
      self, steps_as_tuple: NamedStepsList, judge: BaseStep, **kwargs
  ):
      """
      Perform model stacking. The steps will be merged with a FeatureUnion,
      and the judge will recombine the predictions.
      :param steps_as_tuple: the NamedStepsList of steps to process in parallel and to join.
      :param judge: a BaseStep that will learn to judge the best answer and who to trust out of every parallel steps.
      :param kwargs: Other arguments to send to ``FeatureUnion``.
      """
      super().__init__(steps_as_tuple=steps_as_tuple, **kwargs)
      self.judge: BaseStep = judge
  
imports: from typing import Tuple
  from joblib import Parallel, delayed
  from neuraxle.base import CX, DACT, BaseStep, BaseTransformer, ForceHandleOnlyMixin, Identity, NamedStepsList, NonFittableMixin, TruncableSteps, _TruncableServiceWithBodyMixin
  from neuraxle.data_container import ZipDataContainer
  from neuraxle.steps.numpy import NumpyConcatenateInnerFeatures
label_desc: Use image node_id 1 to create a new ModelStacking object from inherited base classes: FeatureUnion with example: obj = ModelStacking(steps_as_tuple, judge)