class_docstr: Evaluation class for measuring Precision, Recall and F-measure based on
  2D numpy arrays with true/false positive/negative detections.
  
  Parameters
  ----------
  tp : list of tuples or numpy array, shape (num_tp, 2)
      True positive detections.
  fp : list of tuples or numpy array, shape (num_fp, 2)
      False positive detections.
  tn : list of tuples or numpy array, shape (num_tn, 2)
      True negative detections.
  fn : list of tuples or numpy array, shape (num_fn, 2)
      False negative detections.
  name : str
      Name to be displayed.
  
  Notes
  -----
  The second item of the tuples or the second column of the arrays denote
  the class the detection belongs to.
class_docstr_tok: ["Evaluation","class","for","measuring","Precision",",","Recall","and","F-measure","based","on","2D","numpy","arrays","with","true\/false","positive\/negative","detections",".","Parameters","--","--","--","--","--","tp",":","list","of","tuples","or","numpy","array",",","shape","(","num_tp",",","2",")","True","positive","detections",".","fp",":","list","of","tuples","or","numpy","array",",","shape","(","num_fp",",","2",")","False","positive","detections",".","tn",":","list","of","tuples","or","numpy","array",",","shape","(","num_tn",",","2",")","True","negative","detections",".","fn",":","list","of","tuples","or","numpy","array",",","shape","(","num_fn",",","2",")","False","negative","detections",".","name",":","str","Name","to","be","displayed",".","Notes","--","--","-","The","second","item","of","the","tuples","or","the","second","column","of","the","arrays","denote","the","class","the","detection","belongs","to","."]
code: def __init__(self, tp=None, fp=None, tn=None, fn=None, **kwargs):
      # set default values
      if tp is None:
          tp = np.zeros((0, 2))
      if fp is None:
          fp = np.zeros((0, 2))
      if tn is None:
          tn = np.zeros((0, 2))
      if fn is None:
          fn = np.zeros((0, 2))
      super(MultiClassEvaluation, self).__init__(**kwargs)
      self.tp = np.asarray(tp, dtype=float)
      self.fp = np.asarray(fp, dtype=float)
      self.tn = np.asarray(tn, dtype=float)
      self.fn = np.asarray(fn, dtype=float)
  
imports: from __future__ import absolute_import, division, print_function
  import numpy
  from .None import chords, beats, notes, onsets, tempo
  from .beats import BeatEvaluation, BeatMeanEvaluation
  from .chords import ChordEvaluation, ChordMeanEvaluation, ChordSumEvaluation
  from .key import KeyEvaluation, KeyMeanEvaluation
  from .notes import NoteEvaluation, NoteMeanEvaluation, NoteSumEvaluation
  from .onsets import OnsetEvaluation, OnsetMeanEvaluation, OnsetSumEvaluation
  from .tempo import TempoEvaluation, TempoMeanEvaluation
label_desc: Use image node_id 1 to create a new MultiClassEvaluation object from inherited base classes: Evaluation with example: obj = MultiClassEvaluation(tp, fp, tn, fn)