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 _get_model_weights(self) -> dict:
      weights_dict = defaultdict(int)
      num_models = len(self.models)
      for model in self.models:
          model: GreedyWeightedEnsembleModel = self.load_child(
              model, verbose=False
          )
          model_weight_dict = model._get_model_weights()
          for key in model_weight_dict.keys():
              weights_dict[key] += model_weight_dict[key]
      for key in weights_dict:
          weights_dict[key] = weights_dict[key] / num_models
      weights_dict = dict(weights_dict)
      return weights_dict
  
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 3 for calling the WeightedEnsembleModel obj's underlying member method code with example usage: obj._get_model_weights() and returns: weights_dict