code: def run_dataset(model_str, no_dataset, no_track):
      model_name = model_str
      track = TRACKS[no_track]
      dataset = track.datasets[no_dataset]
      MODELS["Binary classification"].update(
          MODELS["Multiclass classification"]
      )
      model = MODELS[track.name][model_name].clone()
      print(f"Processing {model_str} on {dataset.__class__.__name__}")
  
      results = []
      track = copy.deepcopy(track)
      time = 0.0
      for i in tqdm(
          track.run(model, dataset, n_checkpoints=N_CHECKPOINTS),
          total=N_CHECKPOINTS,
          desc=f"{model_str} on {dataset.__class__.__name__}",
      ):
          time += i["Time"].total_seconds()
          res = {
              "step": i["Step"],
              "track": track.name,
              "model": model_name,
              "dataset": dataset.__class__.__name__,
          }
          for k, v in i.items():
              if isinstance(v, metrics.base.Metric):
                  res[k] = v.get()
          res["Memory in Mb"] = i["Memory"] / 1024**2
          res["Time in s"] = time
          results.append(res)
      return results
  
file_path: river/benchmarks/run.py
imports: from __future__ import annotations
  import copy
  import itertools
  import json
  import logging
  import multiprocessing
  import pandas
  from config import MODELS, N_CHECKPOINTS, TRACKS
  from tqdm import tqdm
  from river import metrics
label_desc: Use image node_id 1 for calling a global function with example usage: run_dataset(model_str, no_dataset, no_track) and returns: results