class_docstr: A collector to collect the results of other Collectors
  
  For example:
  
      We have 2 collector, which named A and B.
      A can collect {"prediction": pd.Series} and B can collect {"IC": {"Xgboost": pd.Series, "LSTM": pd.Series}}.
      Then after this class's collect, we can collect {"A_prediction": pd.Series, "B_IC": {"Xgboost": pd.Series, "LSTM": pd.Series}}
  
      ...
class_docstr_tok: ["A","collector","to","collect","the","results","of","other","Collectors","For","example",":","We","have","2","collector",",","which","named","A","and","B",".","A","can","collect","{","``","prediction","''",":","pd.Series","}","and","B","can","collect","{","``","IC","''",":","{","``","Xgboost","''",":","pd.Series",",","``","LSTM","''",":","pd.Series","}","}",".","Then","after","this","class","'s","collect",",","we","can","collect","{","``","A_prediction","''",":","pd.Series",",","``","B_IC","''",":","{","``","Xgboost","''",":","pd.Series",",","``","LSTM","''",":","pd.Series","}","}","..."]
docstr: Collect all results of collector_dict and change the outermost key to a recombination key.
  
  Returns:
      dict: the dict after collecting.
docstr_tok: ["Collect","all","results","of","collector_dict","and","change","the","outermost","key","to","a","recombination","key",".","Returns",":","dict",":","the","dict","after","collecting","."]
code: def collect(self) -> dict:
      """
      Collect all results of collector_dict and change the outermost key to a recombination key.
  
      Returns:
          dict: the dict after collecting.
      """
      collect_dict = {}
      for collector_key, collector in self.collector_dict.items():
          tmp_dict = collector()
          for key, value in tmp_dict.items():
              if self.merge_func is not None:
                  collect_dict[
                      self.merge_func(collector_key, key)
                  ] = value
              else:
                  collect_dict[(collector_key, key)] = value
      return collect_dict
  
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 MergeCollector obj's underlying member method code with example usage: obj.collect() and returns: collect_dict