code: def SVM_binary_minimum(
      classifier: ActiveLearner,
      X_pool: modALinput,
      random_tie_break: bool = False,
  ) -> np.ndarray:
      """
      SVM binary minimum multilabel active learning strategy. For details see the paper
      Klaus Brinker, On Active Learning in Multi-label Classification
      (https://link.springer.com/chapter/10.1007%2F3-540-31314-1_24)
  
      Args:
          classifier: The multilabel classifier for which the labels are to be queried. Must be an SVM model
              such as the ones from sklearn.svm.
          X_pool: The pool of samples to query from.
          random_tie_break: If True, shuffles utility scores to randomize the order. This
              can be used to break the tie when the highest utility score is not unique.
  
      Returns:
          The index of the instance from X_pool chosen to be labelled;
          The instance from X_pool chosen to be labelled.
          The Minimum absolute distance metric of the chosen instance;
      """
  
      decision_function = np.array(
          [
              svm.decision_function(X_pool)
              for svm in classifier.estimator.estimators_
          ]
      ).T
  
      min_abs_dist = np.min(np.abs(decision_function), axis=1)
  
      if not random_tie_break:
          return np.argmin(min_abs_dist)
  
      return shuffled_argmax(min_abs_dist)
  
file_path: modAL/modAL/multilabel.py
imports: from typing import Optional
  import numpy
  from sklearn.multiclass import OneVsRestClassifier
  from modAL.models import ActiveLearner
  from modAL.utils.data import modALinput
  from modAL.utils.selection import multi_argmax, multi_argmin, shuffled_argmax, shuffled_argmin
label_desc: Use image node_id 2 for calling a global function with example usage: SVM_binary_minimum(classifier, X_pool, random_tie_break) and returns: shuffled_argmax, np