code: def fit(self, X, y, *args, **kwargs):
      self.scores_ = [[] for _ in self.reg_param_list]
      scorer = kwargs.get("scoring", log_loss)
      kf = KFold(n_splits=self.cv)
      for train_index, test_index in kf.split(X):
          X_out, y_out = X[test_index, :], y[test_index]
          X_in, y_in = X[train_index, :], y[train_index]
          base_est = deepcopy(self.estimator_)
          base_est.fit(X_in, y_in)
          for i, reg_param in enumerate(self.reg_param_list):
              est_hs = HSTreeClassifier(base_est, reg_param)
              est_hs.fit(X_in, y_in, *args, **kwargs)
              self.scores_[i].append(
                  scorer(y_out, est_hs.predict_proba(X_out))
              )
      self.scores_ = [np.mean(s) for s in self.scores_]
      cv_criterion = _get_cv_criterion(scorer)
      self.reg_param = self.reg_param_list[cv_criterion(self.scores_)]
      super().fit(X=X, y=y, *args, **kwargs)
  
imports: import time
  from copy import deepcopy
  from typing import List
  import numpy
  from sklearn import datasets
  from sklearn.base import BaseEstimator, RegressorMixin, ClassifierMixin
  from sklearn.metrics import r2_score, mean_squared_error, log_loss
  from sklearn.model_selection import cross_val_score, KFold
  from sklearn.model_selection import train_test_split
  from sklearn.tree import DecisionTreeRegressor, DecisionTreeClassifier, export_text
  from sklearn.ensemble import GradientBoostingClassifier, GradientBoostingRegressor, RandomForestRegressor
  from imodels.util import checks
  from imodels.util.arguments import check_fit_arguments
  from imodels.util.tree import compute_tree_complexity
label_desc: Use image node_id 2 for calling the HSTreeClassifierCV obj's underlying member method code with example usage: obj.fit(X, y) without return types