code: def get_node_samples(self):
      if self.node_to_samples is not None:
          return self.node_to_samples
  
      dec_paths = self.tree_model.decision_path(self.X_train)
  
      # each sample has path taken down tree
      node_to_samples = defaultdict(list)
      for sample_i, dec in enumerate(dec_paths):
          _, nz_nodes = dec.nonzero()
          for node_id in nz_nodes:
              node_to_samples[node_id].append(sample_i)
  
      self.node_to_samples = node_to_samples
      return node_to_samples
  
imports: from collections import defaultdict
  from typing import List, Mapping
  import numpy
  from sklearn.utils import compute_class_weight
  from dtreeviz.models.shadow_decision_tree import ShadowDecTree
  from dtreeviz.utils import criterion_remapping
label_desc: Use image node_id 11 for calling the ShadowSKDTree obj's underlying member method code with example usage: obj.get_node_samples() and returns: node_to_samples, self