class_docstr: Group the objects based on dict
docstr: Init Group.
  
  Args:
      group_func (Callable, optional): Given a dict and return the group key and one of the group elements.
  
          For example: {(A,B,C1): object, (A,B,C2): object} -> {(A,B): {C1: object, C2: object}}
  
      Defaults to None.
  
      ens (Ensemble, optional): If not None, do ensemble for grouped value after grouping.
code: def __init__(self, group_func=None, ens: Ensemble = None):
      """
      Init Group.
  
      Args:
          group_func (Callable, optional): Given a dict and return the group key and one of the group elements.
  
              For example: {(A,B,C1): object, (A,B,C2): object} -> {(A,B): {C1: object, C2: object}}
  
          Defaults to None.
  
          ens (Ensemble, optional): If not None, do ensemble for grouped value after grouping.
      """
      self._group_func = group_func
      self._ens_func = ens
  
file_path: qlib/qlib/model/ens/group.py
imports: from qlib.model.ens.ensemble import Ensemble, RollingEnsemble
  from typing import Callable
  from joblib import Parallel, delayed
label_desc: Use image node_id 1 to create a new Group object  with example: obj = Group(group_func, ens)