code: def get_node_samples(self):
      if self.node_to_samples is not None:
          return self.node_to_samples
  
      node_to_samples = defaultdict(list)
      for i in range(self.X_train.shape[0]):
          path = self.predict_path(self.X_train[i])
          for node in path:
              node_to_samples[node.id].append(i)
  
      self.node_to_samples = node_to_samples
      return self.node_to_samples
  
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 13 for calling the ShadowLightGBMTree obj's underlying member method code with example usage: obj.get_node_samples() and returns: self, self