code: def libact_QBC(X, y, n_queries):
      y_train = np.array([None for _ in range(len(y))])
      y_train[0], y_train[50], y_train[100] = 0, 1, 2
      libact_train_dataset = Dataset(X, y_train)
      libact_full_dataset = Dataset(X, y)
      libact_learner_list = [
          LogisticRegressionLibact(
              solver="liblinear", n_jobs=1, multi_class="ovr"
          ),
          LogisticRegressionLibact(
              solver="liblinear", n_jobs=1, multi_class="ovr"
          ),
      ]
      libact_qs = QueryByCommittee(
          libact_train_dataset, models=libact_learner_list, method="lc"
      )
      libact_labeler = IdealLabeler(libact_full_dataset)
      for libact_learner in libact_learner_list:
          libact_learner.train(libact_train_dataset)
  
      for _ in range(n_queries):
          query_idx = libact_qs.make_query()
          query_label = libact_labeler.label(X[query_idx])
          libact_train_dataset.update(query_idx, query_label)
          for libact_learner in libact_learner_list:
              libact_learner.train(libact_train_dataset)
  
imports: from time import time
  import numpy
  from acton.acton import main
  from alp.active_learning.active_learning import ActiveLearner
  from libact.base.dataset import Dataset
  from libact.labelers import IdealLabeler
  from libact.models.logistic_regression import LogisticRegression
  from libact.query_strategies import QueryByCommittee, UncertaintySampling
  from libact.query_strategies.multiclass.expected_error_reduction import EER
  from modAL.expected_error import expected_error_reduction
  from modAL.models import ActiveLearner, Committee
  from sklearn.datasets import load_iris
  from sklearn.linear_model import LogisticRegression
label_desc: Use image node_id 4 for calling a global function with example usage: libact_QBC(X, y, n_queries) without return types