class_docstr: Stacking for binary classification.
  
  Parameters
  ----------
  models
  meta_classifier
  include_features
      Indicates whether or not the original features should be provided to the meta-model along
      with the predictions from each model.
  
  Examples
  --------
  
  >>> from river import compose
  >>> from river import datasets
  >>> from river import ensemble
  >>> from river import evaluate
  >>> from river import linear_model as lm
  >>> from river import metrics
  >>> from river import preprocessing as pp
  
  >>> dataset = datasets.Phishing()
  
  >>> model = compose.Pipeline(
  ...     ('scale', pp.StandardScaler()),
  ...     ('stack', ensemble.StackingClassifier(
  ...         [
  ...             lm.LogisticRegression(),
  ...             lm.PAClassifier(mode=1, C=0.01),
  ...             lm.PAClassifier(mode=2, C=0.01),
  ...         ],
  ...         meta_classifier=lm.LogisticRegression()
  ...     ))
  ... )
  
  >>> metric = metrics.F1()
  
  >>> evaluate.progressive_val_score(dataset, model, metric)
  F1: 88.14%
  
  References
  ----------
  [^1]: [A Kaggler's Guide to Model Stacking in Practice](http://blog.kaggle.com/2016/12/27/a-kagglers-guide-to-model-stacking-in-practice/)
code: def __init__(
      self,
      models: list[base.Classifier],
      meta_classifier: base.Classifier,
      include_features=True,
  ):
      super().__init__(models)  # type: ignore
      self.meta_classifier = meta_classifier
      self.include_features = include_features
  
file_path: river/river/ensemble/stacking.py
imports: from __future__ import annotations
  from river import base, linear_model, naive_bayes, tree
label_desc: Use image node_id 1 to create a new StackingClassifier object from inherited base classes: base, base with example: obj = StackingClassifier(models, meta_classifier, include_features)