class_docstr: Aggregates label quality scores across different classes to produce one score per example in multi-label classification tasks.
  
  Parameters
  ----------
  base_scorer:
      The method to compute the label quality scores for each class.
  
      See the documentation for the ClassLabelScorer enum for more details.
  
  aggregator:
      The method to aggregate the label quality scores for each class into a single score for each datapoint.
  
      Defaults to the EMA (exponential moving average) aggregator with forgetting factor ``alpha=0.8``.
  
      See the documentation for the Aggregator class for more details.
  
      See also
      --------
      exponential_moving_average
  
  strict:
      Flag for performing strict validation of the input data.
class_docstr_tok: ["Aggregates","label","quality","scores","across","different","classes","to","produce","one","score","per","example","in","multi-label","classification","tasks",".","Parameters","--","--","--","--","--","base_scorer",":","The","method","to","compute","the","label","quality","scores","for","each","class",".","See","the","documentation","for","the","ClassLabelScorer","enum","for","more","details",".","aggregator",":","The","method","to","aggregate","the","label","quality","scores","for","each","class","into","a","single","score","for","each","datapoint",".","Defaults","to","the","EMA","(","exponential","moving","average",")","aggregator","with","forgetting","factor","``","alpha=0.8","``",".","See","the","documentation","for","the","Aggregator","class","for","more","details",".","See","also","--","--","--","--","exponential_moving_average","strict",":","Flag","for","performing","strict","validation","of","the","input","data","."]
code: def __init__(
      self,
      base_scorer: ClassLabelScorer = ClassLabelScorer.SELF_CONFIDENCE,
      aggregator: Union[Aggregator, Callable] = Aggregator(
          exponential_moving_average, alpha=0.8
      ),
      *,
      strict: bool = True,
  ):
      self.base_scorer = base_scorer
      if not isinstance(aggregator, Aggregator):
          self.aggregator = Aggregator(aggregator)
      else:
          self.aggregator = aggregator
      self.strict = strict
  
imports: from enum import Enum
  from typing import Callable, Dict, Optional, Union
  import numpy
  from sklearn.model_selection import cross_val_predict
  from cleanlab.internal.multilabel_utils import _is_multilabel, stack_complement
  from cleanlab.internal.label_quality_utils import _subtract_confident_thresholds
  from cleanlab.internal.numerics import softmax
  from cleanlab.rank import get_self_confidence_for_each_label, get_normalized_margin_for_each_label, get_confidence_weighted_entropy_for_each_label
label_desc: Use image node_id 1 to create a new MultilabelScorer object  with example: obj = MultilabelScorer(base_scorer, aggregator)