code: def consensus_entropy(
      committee: BaseCommittee, X: modALinput, **predict_proba_kwargs
  ) -> np.ndarray:
      """
      Calculates the consensus entropy for the Committee. First it computes the class probabilties of X for each learner
      in the Committee, then calculates the consensus probability distribution by averaging the individual class
      probabilities for each learner. The entropy of the consensus probability distribution is the vote entropy of the
      Committee, which is returned.
  
      Args:
          committee: The :class:`modAL.models.BaseCommittee` instance for which the consensus entropy is to be calculated.
          X: The data for which the consensus entropy is to be calculated.
          **predict_proba_kwargs: Keyword arguments for the :meth:`predict_proba` of the Committee.
  
      Returns:
          Consensus entropy of the Committee for the samples in X.
      """
      try:
          proba = committee.predict_proba(X, **predict_proba_kwargs)
      except NotFittedError:
          return np.zeros(shape=(X.shape[0],))
  
      entr = np.transpose(entropy(np.transpose(proba)))
      return entr
  
file_path: modAL/modAL/disagreement.py
imports: from collections import Counter
  import numpy
  from scipy.stats import entropy
  from sklearn.base import BaseEstimator
  from sklearn.exceptions import NotFittedError
  from modAL.models.base import BaseCommittee
  from modAL.utils.data import modALinput
  from modAL.utils.selection import multi_argmax, shuffled_argmax
label_desc: Use image node_id 2 for calling a global function with example usage: consensus_entropy(committee, X) and returns: entr, np