code: def main(readcsv=pd_read_csv):
      nFeatures = 20
      nClasses = 5
  
      # read training data from file
      # with nFeatures features per observation and 1 class label
      data_path = Path(__file__).parent / "data" / "batch"
      train_file = data_path / "svm_multi_class_train_dense.csv"
      train_data = readcsv(train_file, range(nFeatures))
      train_labels = readcsv(
          train_file, range(nFeatures, nFeatures + 1)
      )
  
      # Create and configure algorithm object
      algorithm = d4p.multi_class_classifier_training(
          nClasses=nClasses,
          training=d4p.svm_training(method="thunder"),
          prediction=d4p.svm_prediction(),
      )
  
      # Pass data to training. Training result provides model
      train_result = algorithm.compute(train_data, train_labels)
      assert train_result.model.NumberOfFeatures == nFeatures
      assert isinstance(
          train_result.model.TwoClassClassifierModel(0), d4p.svm_model
      )
  
      # Now the prediction stage
      # Read data
      pred_file = data_path / "svm_multi_class_test_dense.csv"
      pred_data = readcsv(pred_file, range(nFeatures))
      pred_labels = readcsv(pred_file, range(nFeatures, nFeatures + 1))
  
      # Create an algorithm object to predict multi-class SVM values
      algorithm = d4p.multi_class_classifier_prediction(
          nClasses,
          training=d4p.svm_training(method="thunder"),
          prediction=d4p.svm_prediction(),
      )
      # Pass data to prediction. Prediction result provides prediction
      pred_result = algorithm.compute(pred_data, train_result.model)
      assert pred_result.prediction.shape == (train_data.shape[0], 1)
  
      return (pred_result, pred_labels)
  
imports: from pathlib import Path
  import numpy
  from readcsv import pd_read_csv
  import daal4py
label_desc: Use image node_id 1 for calling a global function with example usage: main(readcsv) and returns: pred_result,  pred_labels