Skip to main content

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

Project description

BOOMER - Gradient Boosted Multi-Label Classification Rules

License: MIT PyPI version Documentation Status

:link: Important links: Documentation | Issue Tracker | Changelog | Contributors | Code of Conduct | License

This software package provides the official implementation of BOOMER - an algorithm for learning gradient boosted multi-output rules that uses gradient boosting for learning an ensemble of rules that is built with respect to a specific multivariate loss function. It integrates with the popular scikit-learn machine learning framework.

The problem domains addressed by this algorithm include the following:

  • Multi-label classification: 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.
  • Multi-output regression: Multivariate regression problems require to predict for more than a single numerical output variable.

To provide a versatile tool for different use cases, great emphasis is put on the efficiency of the implementation. Moreover, to ensure its flexibility, it is designed in a modular fashion and can therefore easily be adjusted to different requirements. This modular approach enables implementing different kind of rule learning algorithms. For example, this project does also provide a Separate-and-Conquer (SeCo) algorithm based on traditional rule learning techniques that are particularly well-suited for learning interpretable models.

:book: 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.

:wrench: Functionalities

The algorithm that is provided by this project currently supports the following core functionalities for learning ensembles of boosted classification or regression rules.

Deliberate Loss Optimization

  • Decomposable or non-decomposable loss functions can be optimized in expectation.
  • L1 and L2 regularization can be used.
  • Shrinkage (a.k.a. the learning rate) can be adjusted for controlling the impact of individual rules on the overall ensemble.

Different Prediction Strategies

  • Various strategies for predicting scores, binary labels or probabilities are available, depending on whether a classification or regression model is used.
  • Isotonic regression models can be used to calibrate marginal and joint probabilities predicted by a classification model.

Flexible Handling of Input Data

  • Native support for numerical, ordinal, and nominal features eliminates the need for pre-processing techniques such as one-hot encoding.
  • Handling of missing feature values, i.e., occurrences of NaN in the feature matrix, is implemented by the algorithm.

Fine-grained Control over Model Characteristics

  • Rules can be constructed via a greedy search or a beam search. The latter may help to improve the quality of individual rules.
  • Single-output, partial, or complete heads can be used by rules, i.e., they can predict for a single output, a subset of the available outputs, or all of them. Predicting for multiple outputs simultaneously enables to model local dependencies between them.
  • Fine-grained control over the specificity/generality of rules is provided via hyperparameters.

Support for Post-Optimization and Pruning

  • Incremental reduced error pruning can be used for removing overly specific conditions from rules and preventing overfitting.
  • Post- and pre-pruning (a.k.a. early stopping) allows to determine the optimal number of rules to be included in an ensemble.
  • Sequential post-optimization may help improving the predictive performance of a model by reconstructing each rule in the context of the other rules.

:watch: Runtime and Memory Optimizations

In addition to the features mentioned above, several techniques that may speed up training or reduce the memory footprint are currently implemented.

Approximation Techniques

  • Unsupervised feature binning can be used to speed up the evaluation of a rule's potential conditions when dealing with numerical features.
  • Sampling techniques and stratification methods can be used for learning new rules on a subset of the available training examples, features, or output variables.
  • Gradient-based label binning (GBLB) can be used for assigning the labels included in a multi-label classification data set to a limited number of bins. This may speed up training significantly when minimizing a non-decomposable loss function using rules with partial or complete heads.

Sparse Data Structures

  • Sparse feature matrices can be used for training and prediction. This may speed up training significantly on some data sets.
  • Sparse ground truth matrices can be used for training. This may reduce the memory footprint in case of large data sets.
  • Sparse prediction matrices can be used for storing predicted labels. This may reduce the memory footprint in case of large data sets.
  • Sparse matrices for storing gradients and Hessians can be used if supported by the loss function. This may speed up training significantly on data sets with many output variables.

Parallelization

  • Multi-threading can be used for parallelizing the evaluation of a rule's potential refinements across several features, updating the gradients and Hessians of individual examples in parallel, or obtaining predictions for several examples in parallel.

:books: 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.

:scroll: 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

If you're not sure about the file name format, learn more about wheel file names.

mlrl_boomer-0.11.4-cp313-cp313-win_amd64.whl (887.2 kB view details)

Uploaded CPython 3.13Windows x86-64

mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.11.4-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mlrl_boomer-0.11.4-cp312-cp312-win_amd64.whl (897.2 kB view details)

Uploaded CPython 3.12Windows x86-64

mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.11.4-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mlrl_boomer-0.11.4-cp311-cp311-win_amd64.whl (899.3 kB view details)

Uploaded CPython 3.11Windows x86-64

mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.11.4-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mlrl_boomer-0.11.4-cp310-cp310-win_amd64.whl (905.3 kB view details)

Uploaded CPython 3.10Windows x86-64

mlrl_boomer-0.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mlrl_boomer-0.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

mlrl_boomer-0.11.4-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file mlrl_boomer-0.11.4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dd55e9194fc835760f0e736a6e84c38f224530cb48458631c224cddf12691c57
MD5 022a9c92ffddab0f228f104fcf2f4a7f
BLAKE2b-256 55be867243b7d7e1d3d5a0a3686e43ae3d3cbdf1f74ec941a2367042fdc4498d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 645f3e9106ae5e3c9d661b887496f78bd2a01a08a167fa679cbad3ce7c05546a
MD5 21d155a6d594c6c4b62288d3d3293e1e
BLAKE2b-256 81d3c049a022a90ac1d77fa86588a8c089a3201103fcc5d45f63949825b40ec1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2db3558857d4ada99c9b21376a461c3634e62577449f7eecfc84f4948e915620
MD5 d995f662a8af7fbb66f4cfa5e26c89a2
BLAKE2b-256 4c22fffdaf3e8627ef1bed06512a201a910e528552d0c73a36b2b20c7e6793d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b71b5232c750e2e8205ac1aa5361485f6b76351eb34ff9694df0fcee27845c1e
MD5 073c42e0f249b46a849df21d8b7b02c9
BLAKE2b-256 48075a078e4982aac2505e901872f15ab7bb75ddef6ae8b5405e18f82f9b921f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5ef1b3859948bd3ba2691fef8bd5dd03c37d99f035399b9cfd73778e76e77989
MD5 c8b1e126903f8d1de9374bddbbaddea0
BLAKE2b-256 6bafec7a8579d6622fd451dc9e9ecb4a7d249386e40ef8b1e8ec1ab8a382506c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba490537841d68b5a9b3ffe1528479619e3c2524cbec828cdbfece2d39b42557
MD5 fdbdae4505aaf59067cb1080f3ab74d2
BLAKE2b-256 bb695946a91ab9ce0e9e5fb9c587d3a93f8bac11a830eafe0e3196c9ef49bc70

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 267e4e0e6569bc5b6e3522c8840668eeb925900edc4afd21cd68556ddc2c1a4c
MD5 32d7467405ce6c1bd271d8923ebf622c
BLAKE2b-256 ca1d4f1d5933b91ff25a65a050e86e134771de1a817ec2bac9eacd6c7d4962c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b69e5289f34e8ec412fcd8f8117b1bf1665f82683b190b05a8b9ce453bd85ea4
MD5 1135c7cd42dcb74248d43b6b91d02e8b
BLAKE2b-256 eb51591019e77561304df6c83240dc2cadf90eae6c2a66882a30df6e3478de27

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e70b3b1167e9a94e1cf3147385b0e3e0d6cbbba8dd720e705e7ad6fa69d42836
MD5 7b42558c4600ec2c99a718a09b18a2bb
BLAKE2b-256 fc15762dac2f21c39562b59b92e7e37182dee0ef8f8c4332f1f655c6da979097

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab37231b99af9e0a38cb6e7a25a81a5b5285241b97f9dafa89490d4455a44bc4
MD5 b332585903aebe1cf9aeb688dc9779f5
BLAKE2b-256 0ed5cd76f2901f622b665d1bc2f10d49a0872cdb01bdb13901b183806c550f2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 040eb77a198823fe106ce0bccc34d9c7bcce063a17724c3fe7a9e2e35d476a05
MD5 19b8b35bb65147accf11b2354ed312b6
BLAKE2b-256 040530f1f7c55787f1f014c322a0d00bb1e09ed11430becece775d4939bf808b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d1e5eb03af8eb66ee6dbde678130044dcbec8dec2b99a91167ea3e9d11b4316a
MD5 a7539e4d4fa8c639c0308ded8c7b468b
BLAKE2b-256 38fb8385b0b65ca10581abc5cc381ebc69f8ad0ad2330b1b097702c41498d127

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5bd63d29dedd1c0ec6799b71b4fa0be6cc55ec28e429fa888832b16b2bf2587a
MD5 bcac9939c54bcab1345a69ad90b473c2
BLAKE2b-256 58d29c62cb7250a5e31bd3ded64a1656eca3c69f515b8615f71099fd31f36a44

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7528a48feff71f1944d3e6d1b89f2690ac93552d1c068f0cd99256d07c80ec67
MD5 514ddc264305c7ca9d1e6d835e79075b
BLAKE2b-256 baf54bced58218d98311386cde176796d8c7c50592dec8925e882049c3843fdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9f1b157bf7758e66cb994f1815fb98ceef810f35f8866f86647f016720c463aa
MD5 5493e0a6613c2322ada42abb83d4ff06
BLAKE2b-256 b7e81204eef0d3b5ec5c1e99b1d6beeb9feb3013503c62cbd60717c49ebd6969

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlrl_boomer-0.11.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlrl_boomer-0.11.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c5773db6446773121574827a3536521f9b88a30c18efb48ab6417491cc434f02
MD5 8666ec54e74d8266c0fc711704a190c5
BLAKE2b-256 04c19fa53bea5c93d06e5a8ecb58fbce7040edf872fe79ae4e03a0b17435b1be

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlrl_boomer-0.11.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on mrapp-ke/MLRL-Boomer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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