class_docstr: LightGBM-based model, intended for usage in time series tasks.
class_docstr_tok: ["LightGBM-based","model",",","intended","for","usage","in","time","series","tasks","."]
code: def __call__(
      self,
      ds: Union[EncodedDs, ConcatedEncodedDs],
      args: PredictionArguments = PredictionArguments(),
  ) -> pd.DataFrame:
      if args.predict_proba:
          log.warning(
              "This model does not output probability estimates"
          )
  
      original_df = deepcopy(ds.data_frame)
      length = (
          sum(ds.encoded_ds_lengths)
          if isinstance(ds, ConcatedEncodedDs)
          else len(ds)
      )
      ydf = pd.DataFrame(
          0,  # zero-filled
          index=np.arange(length),
          columns=[f"prediction_{i}" for i in range(self.horizon)],
      )
  
      for timestep in range(self.horizon):
          ydf[f"prediction_{timestep}"] = self.models[timestep](
              ds, args
          )["prediction"].values
  
      if self.models[0].positive_domain:
          ydf = ydf.clip(0)
  
      ydf["prediction"] = ydf.values.tolist()
      ds.data_frame = original_df
      return ydf[["prediction"]]
  
file_path: lightwood/lightwood/mixer/lightgbm_array.py
imports: from copy import deepcopy
  from typing import Dict, List, Union, Optional
  import numpy
  import pandas
  from lightwood.helpers.log import log
  from lightwood.encoder.base import BaseEncoder
  from lightwood.mixer.base import BaseMixer
  from lightwood.mixer.lightgbm import LightGBM
  from lightwood.api.types import PredictionArguments, TimeseriesSettings
  from lightwood.data.encoded_ds import EncodedDs, ConcatedEncodedDs
label_desc: Use image node_id 5 for calling the LightGBMArray obj's underlying member method code with example usage: obj.__call__(ds, args) and returns: ydf