code: def __init__(
      self,
      booster: Booster,
      tree_index: int,
      X_train: (pd.DataFrame, np.ndarray),
      y_train: (pd.Series, np.ndarray),
      feature_names: List[str] = None,
      target_name: str = None,
      class_names: (List[str], Mapping[int, str]) = None,
  ):
      utils.check_tree_index(tree_index, booster.num_trees())
      self.booster = booster
      self.tree_index = tree_index
      (
          self.tree_nodes,
          self.children_left,
          self.children_right,
      ) = self._get_nodes_info()
      self.thresholds = None  # lazy evaluation
      self.features = None  # lazy evaluation
      self.node_to_samples = None
  
      super().__init__(
          booster,
          X_train,
          y_train,
          feature_names,
          target_name,
          class_names,
      )
  
imports: from collections import defaultdict
  from typing import List, Mapping
  import numpy
  import pandas
  from lightgbm.basic import Booster
  from dtreeviz.models.shadow_decision_tree import ShadowDecTree, VisualisationNotYetSupportedError
  from dtreeviz import utils
label_desc: Use image node_id 1 to create a new ShadowLightGBMTree object from inherited base classes: ShadowDecTree with example: obj = ShadowLightGBMTree(booster, tree_index, X_train, y_train, feature_names, target_name, class_names)