code: def __init__(
      self,
      bin_train_data: DataFrame,
      bin_info: dict,
      random_seed=None,
      global_random_seed=None,
      hist_sub=True,
  ) -> None:
      columns = bin_train_data.schema.columns
      self.random_seed = random_seed
      self.global_random_seed = global_random_seed
      self.feat_bin_num = [len(bin_info[feat]) for feat in columns]
      self._cache_parent_hist: typing.Optional[
          DistributedHistogram
      ] = None
      self._last_layer_node_map = None
      self._hist_sub = hist_sub
  
imports: import typing
  import torch
  from typing import Dict
  from fate.arch.histogram import HistogramBuilder, DistributedHistogram
  from fate.ml.ensemble.learner.decision_tree.tree_core.decision_tree import Node
  from typing import List
  import numpy
  from fate.arch.dataframe import DataFrame
  from fate.arch import Context
  import logging
label_desc: Use image node_id 1 to create a new SBTHistogramBuilder object from inherited base classes: object with example: obj = SBTHistogramBuilder(bin_train_data, bin_info, random_seed, global_random_seed, hist_sub)