code: def _fit(self, **kwargs):
      params = self._get_model_params()
      if "weights" not in params:
          raise ValueError(
              'Missing required parameter "weights" to fit SimpleWeightedEnsembleModel.'
          )
      if len(params["weights"]) != len(self.base_model_names):
          raise AssertionError(
              f'Length of weights does not equal length of self.base_model_names ({len(params["weights"])}, {len(self.base_model_names)})'
          )
  
      if self.model is None:
          self.model = self.model_base(
              problem_type=self.problem_type, **params
          )
          (
              self.base_model_names,
              self.model.weights_,
          ) = self.remove_zero_weight_models(
              self.base_model_names, self.model.weights_
          )
      self.features = self._set_stack_columns(
          base_model_names=self.base_model_names
      )
      self.weights_ = self.model.weights_
  
imports: import logging
  from autogluon.common.features.types import S_STACK
  from ...constants import MULTICLASS, QUANTILE, SOFTCLASS
  from ..abstract.abstract_model import AbstractModel
  from .ensemble_selection import EnsembleSelection, SimpleWeightedEnsemble
label_desc: Use image node_id 2 for calling the SimpleWeightedEnsembleModel obj's underlying member method code with example usage: obj._fit() without return types