code: def get_hyper_param(self):
      param = {
          "max_depth": self.max_depth,
          "valid_features": self._valid_features,
          "l1": self.l1,
          "l2": self.l2,
          "use_missing": self.use_missing,
          "zero_as_missing": self.zero_as_missing,
          "objective": self._objective,
      }
      return param
  
imports: from fate.ml.ensemble.learner.decision_tree.tree_core.decision_tree import DecisionTree, Node, _update_sample_pos_on_local_nodes, _merge_sample_pos
  from fate.ml.ensemble.learner.decision_tree.tree_core.hist import SBTHistogramBuilder
  from fate.ml.ensemble.learner.decision_tree.tree_core.splitter import SBTSplitter
  from fate.ml.ensemble.learner.decision_tree.tree_core.loss import get_task_info
  from fate.ml.ensemble.learner.decision_tree.tree_core.decision_tree import ALL_FEAT, GUEST_FEAT_ONLY
  from fate.ml.utils.predict_tools import BINARY, MULTI, REGRESSION
  from fate.arch import Context
  from fate.arch.dataframe import DataFrame
  from typing import List
  import functools
  import logging
  import pandas
  import torch
  import math
label_desc: Use image node_id 12 for calling the HeteroDecisionTreeGuest obj's underlying member method code with example usage: obj.get_hyper_param() and returns: param