docstr: Initialize hyper parameters
  :param check_optional_config:
  :param future_seq_len:
docstr_tok: ["Initialize","hyper","parameters",":","param","check_optional_config",":",":","param","future_seq_len",":"]
code: def __init__(self, model_type="regressor", config=None):
      """
      Initialize hyper parameters
      :param check_optional_config:
      :param future_seq_len:
      """
      # models
      if not config:
          config = {}
  
      valid_model_type = ("regressor", "classifier")
      if model_type not in valid_model_type:
          raise ValueError(
              f"model_type must be between {valid_model_type}. Got {model_type}"
          )
      self.model_type = model_type
      self.n_estimators = config.get("n_estimators", 1000)
      self.max_depth = config.get("max_depth", 5)
      self.tree_method = config.get("tree_method", "hist")
      self.n_jobs = config.get("n_jobs", -1)
      self.random_state = config.get("random_state", 2)
      self.learning_rate = config.get("learning_rate", 0.1)
      self.min_child_weight = config.get("min_child_weight", 1)
      self.seed = config.get("seed", 0)
      self.subsample = config.get("subsample", 0.8)
      self.colsample_bytree = config.get("colsample_bytree", 0.8)
      self.gamma = config.get("gamma", 0)
      self.reg_alpha = config.get("reg_alpha", 0)
      self.reg_lambda = config.get("reg_lambda", 1)
      self.verbosity = config.get("verbosity", 0)
      self.metric = config.get("metric")
      self.model = None
      self.model_init = False
      self.config = config
  
imports: import pickle
  import pandas
  from xgboost.sklearn import XGBRegressor
  from xgboost.sklearn import XGBClassifier
  from zoo.orca.automl.metrics import Evaluator
  from zoo.orca.automl.model.abstract import BaseModel, ModelBuilder
  import logging
label_desc: Use image node_id 1 to create a new XGBoost object from inherited base classes: BaseModel with example: obj = XGBoost(model_type, config)