code: def make_multilabel_data(
      means=[[-5, 2], [0, 2], [-3, 6]],
      covs=[
          [[3, -1.5], [-1.5, 1]],
          [[5, -1.5], [-1.5, 1]],
          [[3, -1.5], [-1.5, 1]],
      ],
      boxes_coordinates=[
          [-3.5, 0, -1.5, 1.7],
          [-1, 3, 2, 4],
          [-5, 2, -3, 4],
          [-3, 2, -1, 4],
      ],
      box_multilabels=[[0, 1], [1, 2], [0, 2], [0, 1, 2]],
      sizes=[100, 80, 100],
      avg_trace=0.9,
      seed=1,
  ):
      np.random.seed(seed=seed)
      num_classes = len(means)
      m = num_classes + len(
          box_multilabels
      )  # number of classes by treating each multilabel as 1 unique label
      n = sum(sizes)
      local_data = []
      labels = []
      test_data = []
      test_labels = []
      for i in range(0, len(means)):
          local_data.append(
              np.random.multivariate_normal(
                  mean=means[i], cov=covs[i], size=sizes[i]
              )
          )
          test_data.append(
              np.random.multivariate_normal(
                  mean=means[i], cov=covs[i], size=sizes[i]
              )
          )
          test_labels += [[i]] * sizes[i]
          labels += [[i]] * sizes[i]
  
      def make_multi(X, Y, bx1, by1, bx2, by2, label_list):
          ll = np.array([bx1, by1])  # lower-left
          ur = np.array([bx2, by2])  # upper-right
  
          inidx = np.all(
              np.logical_and(X.tolist() >= ll, X.tolist() <= ur), axis=1
          )
          for i in range(0, len(Y)):
              if inidx[i]:
                  Y[i] = label_list
          return Y
  
      X_train = np.vstack(local_data)
      X_test = np.vstack(test_data)
  
      for i in range(0, len(box_multilabels)):
          bx1, by1, bx2, by2 = boxes_coordinates[i]
          multi_label = box_multilabels[i]
          labels = make_multi(
              X_train, labels, bx1, by1, bx2, by2, multi_label
          )
          test_labels = make_multi(
              X_test, test_labels, bx1, by1, bx2, by2, multi_label
          )
  
      d = {}
      for i in labels:
          if str(i) not in d:
              d[str(i)] = len(d)
      inv_d = {v: k for k, v in d.items()}
  
      labels_idx = [d[str(i)] for i in labels]
  
      py = np.bincount(labels_idx) / float(len(labels_idx))
  
      noise_matrix = generate_noise_matrix_from_trace(
          m,
          trace=avg_trace * m,
          py=py,
          valid_noise_matrix=True,
          seed=seed,
      )
      noisy_labels_idx = generate_noisy_labels(labels_idx, noise_matrix)
      noisy_labels = [eval(inv_d[i]) for i in noisy_labels_idx]
      ps = np.bincount(labels_idx) / float(len(labels_idx))
      inv = compute_inv_noise_matrix(py, noise_matrix, ps=ps)
  
      y_train = int2onehot(noisy_labels, K=num_classes)
      clf = MultiOutputClassifier(LogisticRegression())
      pyi = cross_val_predict(
          clf, X_train, y_train, method="predict_proba"
      )
      pred_probs = np.zeros(y_train.shape)
      for i, p in enumerate(pyi):
          pred_probs[:, i] = p[:, 1]
      cj = count.compute_confident_joint(
          labels=noisy_labels, pred_probs=pred_probs, multi_label=True
      )
      return {
          "X_train": X_train,
          "true_labels_train": labels,
          "X_test": X_test,
          "true_labels_test": test_labels,
          "labels": noisy_labels,
          "noise_matrix": noise_matrix,
          "inverse_noise_matrix": inv,
          "cj": cj,
          "pred_probs": pred_probs,
          "m": m,
          "n": n,
      }
  
imports: import cleanlab.multilabel_classification.dataset
  from cleanlab import count, filter
  from cleanlab.count import get_confident_thresholds, estimate_py_and_noise_matrices_from_probabilities
  from cleanlab.internal.latent_algebra import compute_inv_noise_matrix
  from cleanlab.benchmarking.noise_generation import generate_noise_matrix_from_trace
  from cleanlab.benchmarking.noise_generation import generate_noisy_labels
  from cleanlab.internal.util import value_counts
  from cleanlab.internal.multilabel_utils import int2onehot
  from cleanlab.experimental.label_issues_batched import find_label_issues_batched
  import numpy
  import scipy
  import pytest
  from sklearn.multioutput import MultiOutputClassifier
  from sklearn.linear_model import LogisticRegression
  from sklearn.model_selection import cross_val_predict
  from tempfile import mkdtemp
  import os.path
label_desc: Use image node_id 2 for calling a global function with example usage: make_multilabel_data(means, covs, boxes_coordinates, box_multilabels, sizes, avg_trace, seed) and returns: dict, Y