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 _fit(
      self,
      train_data: EncodedDs,
      dev_data: EncodedDs,
      submodel_method="fit",
  ) -> None:
      original_train = deepcopy(train_data.data_frame)
      original_dev = deepcopy(dev_data.data_frame)
  
      for timestep in range(self.horizon):
          getattr(self.models[timestep], submodel_method)(
              train_data, dev_data
          )
  
      # restore dfs
      train_data.data_frame = original_train
      dev_data.data_frame = original_dev
  
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 2 for calling the LightGBMArray obj's underlying member method code with example usage: obj._fit(train_data, dev_data, submodel_method) without return types