class_docstr: Tree-based GAM classifier.
  Uses cyclical boosting to fit a GAM with small trees.
  Simplified version of the explainable boosting machine described in https://github.com/interpretml/interpret
  Only works for binary classification.
  Fits a scalar bias to the mean.
code: def predict_proba(self, X):
      X = check_array(X, accept_sparse=False, dtype=None)
      check_is_fitted(self)
      probs1 = np.ones(X.shape[0]) * self.bias_
      for i, est in enumerate(self.estimators_):
          probs1 += est.predict(X) * self.learning_rate
      probs1 = np.clip(probs1, a_min=0, a_max=1)
      return np.array([1 - probs1, probs1]).T
  
imports: from copy import deepcopy
  import numpy
  import pandas
  from sklearn.base import BaseEstimator
  from sklearn.tree import DecisionTreeRegressor
  from sklearn.utils.validation import check_is_fitted
  from sklearn.utils import check_array
  from sklearn.utils.multiclass import check_classification_targets
  from sklearn.utils.validation import check_X_y
  from sklearn.utils.validation import _check_sample_weight
  from sklearn.model_selection import train_test_split
  from sklearn.metrics import accuracy_score, roc_auc_score
  from tqdm import tqdm
  import imodels
  from sklearn.base import RegressorMixin, ClassifierMixin
label_desc: Use image node_id 4 for calling the TreeGAMSimple obj's underlying member method code with example usage: obj.predict_proba(X) and returns: np