code: def create_info_dict_tree(x, y, ml_model, fit_algorithm, pred_cols):
      """Creates a information dictionary for tree model results.
  
      Only basic information will be created in this function.
      A series of these functions are used in a flow to get all information needed
      in tree model summary. The flow is
      `~greykite.algo.common.model_summary_utils.create_info_dict_tree`,
      `~greykite.algo.common.model_summary_utils.add_model_params_tree`,
      `~greykite.algo.common.model_summary_utils.add_model_coef_df_tree`.
      For flow implementation, see
      `~greykite.algo.common.model_summary_utils.get_info_dict_tree`.
  
      Parameters
      ----------
      x : `numpy.array`
          The design matrix.
      y : `numpy.array`
          The response vector.
      ml_model : `class`
          The trained machine learning model class, see
          `~greykite.algo.common.ml_models.fit_model_via_design_matrix`.
      fit_algorithm : `str`
          The name of fit algorithm, see
          `~greykite.algo.common.ml_models.fit_model_via_design_matrix`.
      pred_cols : `list` [ `str` ]
          A list of predictor names.
  
      Returns
      -------
      info_dict : `dict`
          A dictionary of basic information with the following keys:
  
              "x" : `numpy.array`
                  The design matrix.
              "y" : `numpy.array`
                  The response vector.
              "ml_model" : `class`
                  The trained machine learning model class, see
                  `~greykite.algo.common.ml_models.fit_model_via_design_matrix`.
              "fit_algorithm" : `str`
                  The name of fit algorithm, see
                  `~greykite.algo.common.ml_models.fit_model_via_design_matrix`.
              "pred_cols" : `list` [ `str` ]
                  A list of predictor names.
              "degenerate_index" : `numpy.array`
                  The indices where the x columns are degenerate.
              "n_sample" : `int`
                  Number of observations.
              "n_feature" : `int`
                  Number of features.
              "y_pred" : `numpy.array`
                  The predicted values.
              "y_mean" : `float`
                  The mean of response.
              "residual" : `numpy.array`
                  Residuals.
              "residual_summary" : `numpy.array`
                  Five number summary of residuals.
      """
      info_dict = dict()
      # Passes through the given information
      info_dict["x"] = x
      info_dict["y"] = y
      info_dict["ml_model"] = ml_model
      info_dict["fit_algorithm"] = fit_algorithm
      info_dict["pred_cols"] = pred_cols
      # Derives simple information
      info_dict["n_sample"] = x.shape[0]
      info_dict["n_feature"] = x.shape[1]
      info_dict["y_pred"] = ml_model.predict(x)
      info_dict["y_mean"] = np.mean(y)
      info_dict["residual"] = info_dict["y"] - info_dict["y_pred"]
      info_dict["residual_summary"] = np.percentile(
          info_dict["residual"], [0, 25, 50, 75, 100]
      )
      return info_dict
  
imports: import numpy
  import pandas
  import statsmodels
  import statsmodels.api
  from scipy.stats import f
  from scipy.stats import norm
  from scipy.stats import t
  from sklearn.base import clone
  from sklearn.linear_model import Ridge
  from sklearn.model_selection import train_test_split
  from greykite.algo.common.col_name_utils import INTERCEPT
  from greykite.algo.common.col_name_utils import simplify_pred_cols
label_desc: Use image node_id 19 for calling a global function with example usage: create_info_dict_tree(x, y, ml_model, fit_algorithm, pred_cols) and returns: info_dict