code: def fit(self, X, y):
      # Check the algorithm parameters
      self._check_params()
  
      # Check that X and y have correct shape
      X, y = check_X_y(
          X, y, y_numeric=True, dtype=[np.single, np.double]
      )
  
      # Convert to 2d array
      y_ = y.reshape((-1, 1))
  
      self.n_features_in_ = X.shape[1]
  
      # Get random seed
      rs_ = check_random_state(self.random_state)
      seed_ = rs_.randint(0, np.iinfo("i").max)
  
      # Define type of data
      fptype = getFPType(X)
  
      # Fit the model
      train_algo = d4p.gbt_regression_training(
          fptype=fptype,
          splitMethod=self.split_method,
          maxIterations=self.max_iterations,
          maxTreeDepth=self.max_tree_depth,
          shrinkage=self.shrinkage,
          minSplitLoss=self.min_split_loss,
          lambda_=self.reg_lambda,
          observationsPerTreeFraction=self.observations_per_tree_fraction,
          featuresPerNode=self.features_per_node,
          minObservationsInLeafNode=self.min_observations_in_leaf_node,
          memorySavingMode=self.memory_saving_mode,
          maxBins=self.max_bins,
          minBinSize=self.min_bin_size,
          engine=d4p.engines_mcg59(seed=seed_),
      )
      train_result = train_algo.compute(X, y_)
  
      # Store the model
      self.daal_model_ = train_result.model
  
      # Return the classifier
      return self
  
imports: import numbers
  import numpy
  from sklearn import preprocessing
  from sklearn.base import BaseEstimator, ClassifierMixin, RegressorMixin
  from sklearn.utils import check_random_state
  from sklearn.utils.multiclass import check_classification_targets
  from sklearn.utils.validation import check_array, check_is_fitted, check_X_y
  import daal4py
  from .._utils import control_n_jobs, getFPType, run_with_n_jobs
label_desc: Use image node_id 1 for calling the GBTDAALRegressor obj's underlying member method code with example usage: obj.fit(X, y) and returns: self