code: def do_exps():
      # xgb_model_cpu = XGboostModel()
      # xgb_model_cpu.use_gpu = False
      # xgb_model_cpu.use_exact = True
      df = pd.DataFrame()
  
      # model = XGboostModel()
      model = LightGBMModel()
      # model = CatboostModel()
      # model.use_gpu = False
  
      result_file = open(model.model_name() + ".result", "a")
      for exp in exp_datasets:
          used_times = []
          metrics = []
          for i in range(1, 6, 1):
              result_str = (
                  "## Model: "
                  + model.model_name()
                  + " ##\n## Dataset: "
                  + exp.name
                  + " ##\n"
              )
              ut, mc = r_model(exp, model, df)
              fu.write_results(df, "result.csv", "csv")
              used_times.append(ut)
              metrics.append(mc)
              result_str += (
                  ", ".join([str(x) for x in used_times]) + "\n"
              )
              result_str += (
                  ", ".join([str(x) for x in metrics]) + "\n\n\n"
              )
              print(result_str)
          result_file.write(result_str)
      result_file.close()
  
file_path: thundergbm/python/benchmarks/experiments.py
imports: import utils.data_utils
  from model.catboost_model import CatboostModel
  from model.lightgbm_model import LightGBMModel
  from model.xgboost_model import XGboostModel
  from model.thundergbm_model import ThunderGBMModel
  from model.datasets import Dataset
  import utils.file_utils
  import pandas
  import math
  import sys
label_desc: Use image node_id 6 for calling a global function with example usage: do_exps() without return types