class_docstr: Randomly divides the label space into equally-sized clusters
  
  This method divides the label space by drawing without replacement a desired number of
  equally sized subsets of label space, in a partitioning or overlapping scheme.
  
  Parameters
  ----------
  cluster_size : int
      desired size of a single cluster, will be automatically
      put under :code:`self.cluster_size`.
  cluster_count: int
      number of clusters to divide into, will be automatically
      put under :code:`self.cluster_count`.
  allow_overlap : bool
      whether to allow overlapping clusters or not, will be automatically
      put under :code:`self.allow_overlap`.
  
  Examples
  --------
  
  The following code performs random label space partitioning.
  
  .. code :: python
  
      from skmultilearn.cluster import RandomLabelSpaceClusterer
  
      # assume X,y contain the data, example y contains 5 labels
      cluster_count = 2
      cluster_size = y.shape[1]//cluster_count # == 2
      clr = RandomLabelSpaceClusterer(cluster_size, cluster_count, allow_overlap=False)
      clr.fit_predict(X,y)
      # Result:
      # array([list([0, 4]), list([2, 3]), list([1])], dtype=object)
  
  
  Note that the leftover labels that did not fit in `cluster_size` x `cluster_count` classifiers will be appended
  to an additional last cluster of size at most `cluster_size` - 1.
  
  You can also use this class to get a random division of the label space, even with multiple overlaps:
  
  .. code :: python
  
      from skmultilearn.cluster import RandomLabelSpaceClusterer
  
      cluster_size = 3
      cluster_count = 5
      clr = RandomLabelSpaceClusterer(cluster_size, cluster_count, allow_overlap=True)
      clr.fit_predict(X,y)
  
      # Result
      # array([[2, 1, 3],
      #        [3, 0, 4],
      #        [2, 3, 1],
      #        [2, 3, 4],
      #        [3, 4, 0],
      #        [3, 0, 2]])
  
  
  Note that you will never get the same label subset twice.
code: def __init__(self, cluster_size, cluster_count, allow_overlap):
      super(RandomLabelSpaceClusterer, self).__init__()
  
      self.cluster_size = cluster_size
      self.cluster_count = cluster_count
      self.allow_overlap = allow_overlap
  
file_path: scikit-multilearn/skmultilearn/cluster/random.py
imports: from __future__ import absolute_import
  import random
  import numpy
  from .base import LabelSpaceClustererBase
label_desc: Use image node_id 1 to create a new RandomLabelSpaceClusterer object from inherited base classes: LabelSpaceClustererBase with example: obj = RandomLabelSpaceClusterer(cluster_size, cluster_count, allow_overlap)