Skip to main content

A scikit-learn implementation of BOOMER - an algorithm for learning gradient boosted multi-label classification rules

Project description

BOOMER - Gradient Boosted Multi-Label Classification Rules

License: MIT PyPI version Documentation Status

This software package provides an implementation of BOOMER - an algorithm for learning gradient boosted multi-label classification rules that integrates with the popular scikit-learn machine learning framework.

The goal of multi-label classification is the automatic assignment of sets of labels to individual data points, for example, the annotation of text documents with topics. The BOOMER algorithm uses gradient boosting to learn an ensemble of rules that is built with respect to a given multivariate loss function. To provide a versatile tool for different use cases, great emphasis is put on the efficiency of the implementation. To ensure its flexibility, it is designed in a modular fashion and can therefore easily be adjusted to different requirements.

References

The algorithm was first published in the following paper. A preprint version is publicly available here.

Michael Rapp, Eneldo Loza Mencía, Johannes Fürnkranz Vu-Linh Nguyen and Eyke Hüllermeier. Learning Gradient Boosted Multi-label Classification Rules. In: Proceedings of the European Conference on Machine Learning and Knowledge Discovery in Databases (ECML-PKDD), 2020, Springer.

If you use the algorithm in a scientific publication, we would appreciate citations to the mentioned paper. An overview of publications that are concerned with the BOOMER algorithm, together with information on how to cite them, can be found in the section References of the documentation.

Features

The algorithm that is provided by this project currently supports the following core functionalities to learn an ensemble of boosted classification rules:

  • Different label-wise or example-wise loss functions can be minimized during training (optionally using L1 or L2 regularization).
  • The rules may predict for a single label or for all labels (which enables to model local label dependencies).
  • When learning a new rule, random samples of the training examples, features or labels may be used (including different techniques such as sampling with or without replacement or stratification methods).
  • The impact of individual rules on the ensemble can be controlled using shrinkage.
  • Hyper-parameters that provide fine-grained control over the specificity/generality of rules are available.
  • The conditions of rules can be pruned based on a hold-out set.
  • The algorithm can natively handle numerical, ordinal and nominal features (without the need for pre-processing techniques such as one-hot encoding).
  • The algorithm is able to deal with missing feature values, i.e., occurrences of NaN in the feature matrix.
  • Different strategies for prediction, which can be tailored to the used loss function, are available.

In addition, the following features that may speed up training or reduce the memory footprint are currently implemented:

  • Approximate methods for evaluating potential conditions of rules, based on unsupervised binning methods, can be used.
  • Gradient-based label binning (GBLB) can be used to assign the available labels to a limited number of bins. The use of label binning may speed up training significantly when using rules that predict for multiple labels to minimize a non-decomposable loss function.
  • Dense or sparse feature matrices can be used for training and prediction. The use of sparse matrices may speed up training significantly on some data sets.
  • Dense or sparse label matrices can be used for training. The use of sparse matrices may reduce the memory footprint in case of large data sets.
  • Dense or sparse matrices can be used to store predictions. The use of sparse matrices may reduce the memory footprint in case of large data sets.
  • Multi-threading can be used to parallelize the evaluation of a rule's potential refinements across multiple CPU cores.

Documentation

An extensive user guide, as well as an API documentation for developers, is available at https://mlrl-boomer.readthedocs.io. If you are new to the project, you probably want to read about the following topics:

A collection of benchmark datasets that are compatible with the algorithm are provided in a separate repository.

For an overview of changes and new features that have been included in past releases, please refer to the changelog.

License

This project is open source software licensed under the terms of the MIT license. We welcome contributions to the project to enhance its functionality and make it more accessible to a broader audience. A frequently updated list of contributors is available here.

All contributions to the project and discussions on the issue tracker are expected to follow the code of conduct.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

mlrl_boomer-0.8.0-cp310-cp310-win_amd64.whl (314.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

mlrl_boomer-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl (941.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

mlrl_boomer-0.8.0-cp39-cp39-win_amd64.whl (314.1 kB view details)

Uploaded CPython 3.9 Windows x86-64

mlrl_boomer-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl (941.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

mlrl_boomer-0.8.0-cp38-cp38-win_amd64.whl (314.1 kB view details)

Uploaded CPython 3.8 Windows x86-64

mlrl_boomer-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl (941.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

mlrl_boomer-0.8.0-cp37-cp37m-win_amd64.whl (314.1 kB view details)

Uploaded CPython 3.7m Windows x86-64

mlrl_boomer-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl (941.8 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file mlrl_boomer-0.8.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 314.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for mlrl_boomer-0.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 952e907d14cc405d153860b74b2881bdc7827c4330586ea803032cdf162735fa
MD5 6319109eddbb0f101300470fefbe59bd
BLAKE2b-256 74239dbe0b246c1dcda66fca33b47db63adaaa3b1f92171d4520c3172947838e

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4518eaf5fa00ebb09a7bb07620e97aa625b8df79e868c8d1e271c3d3a6431913
MD5 f2d6dacd7c6cfd85ac551f08f9ebd1db
BLAKE2b-256 f18cd64e69b034a9464721dcead26097b3a10f224bd590ca555234fb5fe6a8aa

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 06e348882d08cd016be18369ee44412aa10c5b94082cd56d31bdc3a3954a54d6
MD5 7a1daee5e555e7c8d57cad5b5c7990ab
BLAKE2b-256 707c89be60ac520727df0b04ff41f3f4a4ecf9d7cc1de68ae48b224ab01b50e9

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 941.8 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for mlrl_boomer-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55d958a348979df78ee14f8248ac97fa29efe645d1efe95e48a6c2970d0667c4
MD5 233cd67a5b70ea38aeb1aa255a4f9adc
BLAKE2b-256 f116cb8cb84d902ec8563b9d387b85769b51c2aec348984739346892239d0c1b

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 314.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for mlrl_boomer-0.8.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 79836c764f258a60df8bf9d39762f991c30a152e791822c2664fb837dd59efbe
MD5 f9288cc100ca5c49b26ecbdfedca8c87
BLAKE2b-256 b5bf0a7e5992cd571bfb95ba6a89d6dc3debb5c0018b37bab7744f111f4044a9

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 055b16fb20b0896e1dcf302ee0c4869d219118513282a69d98bae1b796fe461a
MD5 c2c02e74dba480271632d4d0030cc081
BLAKE2b-256 78ed282cf87176baef980aa55597ed6ce522ac5bb503781a09115f5097f40143

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e80c5581580b1ad3dc54bd2016748cea97b555f8ae9d03446648bf7937870c76
MD5 2a2888987776248367d214534281706f
BLAKE2b-256 7fe51627ff2b98a9190e97344b3b78852a236df3c4a290765ebdeeef7e06d56b

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 941.8 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for mlrl_boomer-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f306715818d5f75fca24f86816af16debbf912c3ec2788554be38fdf2e15971f
MD5 dbb98c296cdd1ebd0afa2b73837ec9e3
BLAKE2b-256 6a501895fff4166f37724ea33cc6211631e5f56ea0a6aae5861358e3ead942ef

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 314.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for mlrl_boomer-0.8.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1dca5d10bddb4aac2cf405b298e0af15036039ec1fb58512d9ea762eae37d7e1
MD5 53bcfceb30e4b2c6c262e03fc36de99e
BLAKE2b-256 09afea034416d76d5eab3a013ff7beb2c121041814202d5d74d63a8d46723d72

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bf8a34613ce0b3633b409cf63e44a3b49865ae44fe5d9276da9f317c7088967
MD5 a0e393e8aa24714fd1a1aab98f2d9390
BLAKE2b-256 8dba9698172c7527ef0316e4ff93b0254839d9fd36e0625105d704f4e5b3717e

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8fe1a6772936922a916398b2b6772337dcedee869eb4ea65352dddee942305c2
MD5 ba57b0a00e9b7565a418096d0a3aa14f
BLAKE2b-256 1e6b29382d3f03339ee9818201f4de8d5399537421779cc182d373e34ac36207

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 941.8 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for mlrl_boomer-0.8.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f01dd4abe6cf78daded3ef27629140fde4eb6ca44bce637a155c365a460d1dbf
MD5 745e4e16455f1b5221bdbcd3c7627f1d
BLAKE2b-256 a7bada65cc122bd4a4e66ec01317aa1dfe36b7fa47c7fe116a58f4528d1ccca3

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 314.1 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for mlrl_boomer-0.8.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ba244369b3bc6248dd26f1f57ab6f995adf378c2ecd70304edbe527c619b0aac
MD5 4fe097d93bd551ec10674f15bceaa5c2
BLAKE2b-256 46762cc17ae4cd1a3319b57d114512814cc3bbb42bda133c9ce9140fcf0db033

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6d1df45915d9731745508107a4fd3072d5b87e02e7093a71c733efc28f30169b
MD5 9a5ca2276236875a7996e8544dd460c8
BLAKE2b-256 8b6261b3763524dafdca95fdf435b32c6e5cb0a571d89c008c6cbdff267d7fd4

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 75894ab3ce81d82b0e021fa4f3e541a11473b070fe89362a111bde2021553375
MD5 0f40a96049065c1c5d555c8c5b2380fa
BLAKE2b-256 e657beedaec8f6183ec49cd9fb3a90b3ad10c08af52d6cd24f1b5e02695bca2b

See more details on using hashes here.

File details

Details for the file mlrl_boomer-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: mlrl_boomer-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 941.8 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for mlrl_boomer-0.8.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f0c76f833bc20bcecb0d0ddda21a9543f49c1c56e99d546565ea55d4d671a308
MD5 41cd06f0deceeeff547790f8304f04ec
BLAKE2b-256 48f22225ebbbe16d7fe8ff723efeed360963a55a75ebdbb718f736028e94e1e6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page