class_docstr: Double Ensemble Model
code: def predict(
      self, dataset: DatasetH, segment: Union[Text, slice] = "test"
  ):
      if self.ensemble is None:
          raise ValueError("model is not fitted yet!")
      x_test = dataset.prepare(
          segment, col_set="feature", data_key=DataHandlerLP.DK_I
      )
      pred = pd.Series(np.zeros(x_test.shape[0]), index=x_test.index)
      for i_sub, submodel in enumerate(self.ensemble):
          feat_sub = self.sub_features[i_sub]
          pred += (
              pd.Series(
                  submodel.predict(x_test.loc[:, feat_sub].values),
                  index=x_test.index,
              )
              * self.sub_weights[i_sub]
          )
      pred = pred / np.sum(self.sub_weights)
      return pred
  
imports: import lightgbm
  import numpy
  import pandas
  from typing import Text, Union
  from ...model.base import Model
  from ...data.dataset import DatasetH
  from ...data.dataset.handler import DataHandlerLP
  from ...model.interpret.base import FeatureInt
  from ...log import get_module_logger
label_desc: Use image node_id 9 for calling the DEnsembleModel obj's underlying member method code with example usage: obj.predict(dataset, segment) and returns: pred