class_docstr: The collector to collect different results
class_docstr_tok: ["The","collector","to","collect","different","results"]
docstr: Collect the results and return a dict like {key: things}
  
  Returns:
      dict: the dict after collecting.
  
      For example:
  
      {"prediction": pd.Series}
  
      {"IC": {"Xgboost": pd.Series, "LSTM": pd.Series}}
  
      ...
docstr_tok: ["Collect","the","results","and","return","a","dict","like","{","key",":","things","}","Returns",":","dict",":","the","dict","after","collecting",".","For","example",":","{","``","prediction","''",":","pd.Series","}","{","``","IC","''",":","{","``","Xgboost","''",":","pd.Series",",","``","LSTM","''",":","pd.Series","}","}","..."]
code: def collect(self) -> dict:
      """
      Collect the results and return a dict like {key: things}
  
      Returns:
          dict: the dict after collecting.
  
          For example:
  
          {"prediction": pd.Series}
  
          {"IC": {"Xgboost": pd.Series, "LSTM": pd.Series}}
  
          ...
      """
      raise NotImplementedError(
          f"Please implement the `collect` method."
      )
  
imports: from collections import defaultdict
  from qlib.log import TimeInspector
  from typing import Callable, Dict, Iterable, List
  from qlib.log import get_module_logger
  from qlib.utils.serial import Serializable
  from qlib.utils.exceptions import LoadObjectError
  from qlib.workflow import R
  from qlib.workflow.exp import Experiment
  from qlib.workflow.recorder import Recorder
label_desc: Use image node_id 2 for calling the Collector obj's underlying member method code with example usage: obj.collect() without return types