The utiml Package: Multi-label Classification in R

Learning classification tasks in which each instance is associated with one or more labels are known as multi-label learning. The implementation of multi-label algorithms, performed by different researchers, have several specificities, like input/output format, different internal functions, distinct programming language, to mention just some of them. As a result, current machine learning tools include only a small subset of multi-label decomposition strategies. The utiml package is a framework for the application of classification algorithms to multi-label data. Like the well known MULAN used with Weka, it provides a set of multi-label procedures such as sampling methods, transformation strategies, threshold functions, pre-processing techniques and evaluation metrics. The package was designed to allow users to easily perform complete multi-label classification experiments in the R environment. This paper describes the utiml API and illustrates its use in different multi-label classification scenarios.

Adriano Rivolli , Andre C. P. L. F. de Carvalho

Supplementary materials

Supplementary materials are available in addition to this article. It can be downloaded at

CRAN packages used

mldr, mlr, MLPUGS, utiml, randomForest, C50, e1071, parallel

CRAN Task Views implied by cited packages

MachineLearning, Environmetrics, Cluster, Distributions, MissingData, Multivariate, Psychometrics


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".


For attribution, please cite this work as

Rivolli & Carvalho, "The R Journal: The utiml Package: Multi-label Classification in R", The R Journal, 2018

BibTeX citation

  author = {Rivolli, Adriano and Carvalho, Andre C. P. L. F. de},
  title = {The R Journal: The utiml Package: Multi-label Classification in R},
  journal = {The R Journal},
  year = {2018},
  note = {},
  doi = {10.32614/RJ-2018-041},
  volume = {10},
  issue = {2},
  issn = {2073-4859},
  pages = {24-37}