docs: def meta_model_fit(X_train, y_train, svm_hardness, fit_intercept, number_of_threads, regressor_type="LinearSVR"):
      """
      Trains meta-labeler for predicting number of labels for each user.
  
      Based on: Tang, L., Rajan, S., & Narayanan, V. K. (2009, April).
                Large scale multi-label classification via metalabeler.
                In Proceedings of the 18th international conference on World wide web (pp. 211-220). ACM.
      """
      if regressor_type == "LinearSVR":
          if X_train.shape[0] > X_train.shape[1]:
              dual = False
          else:
              dual = True
  
          model = LinearSVR(C=svm_hardness, random_state=0, dual=dual,
                            fit_intercept=fit_intercept)
          y_train_meta = y_train.sum(axis=1)
          model.fit(X_train, y_train_meta)
      else:
          print("Invalid regressor type.")
          raise RuntimeError
  
      return model