class_docstr: Weighted ensemble meta-model that implements Ensemble Selection: https://www.cs.cornell.edu/~alexn/papers/shotgun.icml04.revised.rev2.pdf
  
  A :class:`autogluon.core.models.GreedyWeightedEnsembleModel` must be specified as the `model_base` to properly function.
code: def _fit(self, X, y, **kwargs):
      super()._fit(X, y, **kwargs)
      stack_columns = []
      for model in self.models:
          model = self.load_child(model, verbose=False)
          stack_columns = stack_columns + [
              stack_column
              for stack_column in model.base_model_names
              if stack_column not in stack_columns
          ]
      self.stack_column_prefix_lst = [
          stack_column
          for stack_column in self.stack_column_prefix_lst
          if stack_column in stack_columns
      ]
      (
          self.stack_columns,
          self.num_pred_cols_per_model,
      ) = self.set_stack_columns(
          stack_column_prefix_lst=self.stack_column_prefix_lst
      )
      min_stack_column_prefix_to_model_map = {
          k: v
          for k, v in self.stack_column_prefix_to_model_map.items()
          if k in self.stack_column_prefix_lst
      }
      self.base_model_names = [
          base_model_name
          for base_model_name in self.base_model_names
          if base_model_name
          in min_stack_column_prefix_to_model_map.values()
      ]
      self.stack_column_prefix_to_model_map = (
          min_stack_column_prefix_to_model_map
      )
      return self
  
file_path: autogluon/core/src/autogluon/core/models/ensemble/weighted_ensemble_model.py
imports: import logging
  from collections import defaultdict
  import numpy
  import pandas
  from ..greedy_ensemble.greedy_weighted_ensemble_model import GreedyWeightedEnsembleModel
  from .stacker_ensemble_model import StackerEnsembleModel
label_desc: Use image node_id 2 for calling the WeightedEnsembleModel obj's underlying member method code with example usage: obj._fit(X, y) and returns: self