Skip to main content

Provides common modules to be used by different types of multi-label rule learning algorithms

Project description

"MLRL-Common": Building-Blocks for Multi-Output Rule Learning Algorithms

License: MIT PyPI version Documentation Status

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

This software package provides common modules to be used by different types of multi-output rule learning (MLRL) algorithms that integrate with the popular scikit-learn machine learning framework.

The problem domains addressed by this software 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.

The library serves as the basis for the implementation of the following rule learning algorithms:

  • BOOMER (Gradient Boosted Multi-Output Rules): A state-of-the art algorithm that uses gradient boosting to learn an ensemble of rules that is built with respect to a given multivariate loss function.
  • Multi-label Separate-and-Conquer (SeCo) Rule Learning Algorithm: A heuristic rule learning algorithm based on traditional rule learning techniques that are particularly well-suited for learning interpretable models.

Functionalities

This package follows a unified and modular framework for the implementation of different types of rule learning algorithms. In the following, we provide an overview of the individual modules an instantiation of the framework must implement.

Rule Induction

A module for rule induction that is responsible for the construction of individual rules. Currently, the following modules of this kind are implemented:

  • A module for greedy rule induction that conducts a top-down search, where rules are constructed by adding one condition after the other and adjusting its prediction accordingly.
  • Rule induction based on a beam search, where a top-down search is conducted as described above. However, instead of focusing on the best solution at each step, the algorithm keeps track of a predefined number of promising solutions and picks the best one at the end.

All of the above modules support numerical, ordinal, and nominal features and can handle missing feature values. They can also be combined with methods for unsupervised feature binning, where training examples with similar features values are assigned to bins in order to reduce the training complexity. Moreover, multi-threading can be used to speed up training.

Model Assemblage

A module for the assemblage of a rule model that consists of several rules. Currently, the following strategies can be used for constructing a model:

  • Sequential assemblage of rule models, where one rule is learned after the other.

Sampling Methods

A wide variety of sampling methods, including sampling with and without replacement, as well as stratified sampling techniques, is provided by this package. They can be used to learn new rules on a subset of the available training examples, features, or labels.

(Output Space) Statistics

So-called output space statistics serve as the basis for assessing the quality of potential rules and determining their predictions. The notion of the statistics heavily depend on the rule learning algorithm at hand. For this reason, no particular implementation is currently included in this package.

Post-Processing

Post-processing methods can be used to alter the predictions of a rule after it has been learned. Whether this is desirable or not heavily depends on the rule learning algorithm at hand. For this reason, no post-processing methods are currently provided by this package.

Pruning Methods

Rule pruning techniques can optionally be applied to a rule after its construction to improve its generalization to unseen data and prevent overfitting. The following pruning techniques are currently supported by this package:

  • Incremental reduced error pruning (IREP) removes overly specific conditions from a rule if this results in an increase of predictive performance (measured on a holdout set of the training data).

Stopping Criteria

One or several stopping criteria can be used to decide whether additional rules should be added to a model or not. Currently, the following criteria are provided out-of-the-box:

  • A size-based stopping criterion that ensures that a certain number of rules is not exceeded.
  • A time-based stopping criterion that stops training as soon as a predefined runtime was exceeded.
  • Pre-pruning (a.k.a. early stopping) aims at terminating the training process as soon as the performance of a model stagnates or declines (measured on a holdout set of the training data).

Post-Optimization

Post-optimization methods can be employed to further improve the predictive performance of a model after it has been assembled. Currently, the following post-optimization techniques can be used:

  • Sequential post-optimization reconstructs each rule in a model in the context of the other rules.

  • Post-pruning may remove trailing rules from a model in this increases the models performance (as measured on a holdout set of the training data).

Prediction algorithm

A prediction algorithm is needed to derive predictions from the rules in a previously assembled model. As prediction methods heavily depend on the rule learning algorithm and problem domain at hand, no implementation is provided by this package out-of-the-box. However, it defines interfaces for the prediction of scores, binary predictions, or probability estimates.

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.

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_common-0.11.1-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12 Windows x86-64

mlrl_common-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mlrl_common-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

mlrl_common-0.11.1-cp312-cp312-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

mlrl_common-0.11.1-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

mlrl_common-0.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mlrl_common-0.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

mlrl_common-0.11.1-cp311-cp311-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mlrl_common-0.11.1-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

mlrl_common-0.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlrl_common-0.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

mlrl_common-0.11.1-cp310-cp310-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

File details

Details for the file mlrl_common-0.11.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c7979dad77222ae5ff238f2369279cd235ec7139fab2b732089c9d245dc22537
MD5 642ff3e1985d8af572f8d0e41ee80a80
BLAKE2b-256 5d6b1a61b7bd5a4c892ac1fecd881bbb9a006142df2b1fff700dec90797a7261

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a24eb6262b72d3c172e11cecf96cb4b74282f2c684a75240288306e92f08338
MD5 1045f60d0071275c58e332f9a21e7189
BLAKE2b-256 ffaf3a07e74472b5c12cbec8475290ac3cbcaa2c0636e1ff8ea922c6867c69b1

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3643fe77d2dbd376d2c6d754ed8edba39cf877c3809210e49aab6f7f6bf9082d
MD5 8781e87a7a89349b8d2bd012887030c0
BLAKE2b-256 fe19e393205681616b2cc424384c7b2d3c1f42dd05c638e923c2b41cff2aea57

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2504cb3284fecd14ef1b88e0826850287fb3988c55ebedcf770864b662909fa3
MD5 ba37667f435274f7fbd1c02d44b0add8
BLAKE2b-256 6b601ae1449e58d5f02f78094bedc91ba7bb8f288dc6d67d8c898369c9156b24

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 89704be855e6eb1bf348690d54c319ddd765871329c6670089bdbbf4e7d861c1
MD5 39ce29e5ef4347bcddfce4594851df7b
BLAKE2b-256 892032efbc9ae24e54672406b4ba131d873b5a075fb90cf36f60cef97e75e5fd

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4900c5632cee6e8557ab1193e55de385cf91a5fd08d2fe62ae7540ebef821777
MD5 fbd4e038c2c5313350d6541b6a8c73a1
BLAKE2b-256 07c7280d99a1f2d0e09240f47a6a837d664efccfd21b40b17a2a47271aa5f202

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d11505915b63c4d2083256c0603a4d8133ec03be924faa9b222b22428ae5273c
MD5 9b0ad102d3caa8e7363a841cf383b3f9
BLAKE2b-256 da4f02b84647df84507af8554218c9069b7e404dcb529533fef4f2958f67a1ae

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1309d3943b5bab7eaec368d4185948c428b3cfca76f152cbb535484efd5732c1
MD5 e6c89747d8732c6fac5d337408a6476b
BLAKE2b-256 5759535c961639347e1e683e628300089664ad33fe686949107c41d095e870f8

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9e06ca94dfb58249efc64aa284f147189b134e6c6c931114d072f852021cfe2d
MD5 442c401e4b4838369a414c52945baa18
BLAKE2b-256 a22e9458be867c7d0eab79ceac0f919f77fcb86a6b6905cad4f4f7da115d73ec

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 beb85fba524e75246cea661548552c6ad201b404ac0e6411dd9d9c79feed9145
MD5 cc362af62d6a874408233178182f752e
BLAKE2b-256 d23b45cad10f8f88e7706100a5b494f9c7672bfb09a07bdf454380d7e20a08ec

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 365213df59a1aa20de7250467fad61e869be16c28b9651c2761cd8ab447e8ff5
MD5 458c8b14a47f7d274fd926fc8bf05128
BLAKE2b-256 d739183b2351b0d4e2ea3375c93c9dc0a7fc4d5fc3bd2594c6209160cbf9d28f

See more details on using hashes here.

File details

Details for the file mlrl_common-0.11.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b83f9f17ea56bffbf680759a11212d75f07e66435337290a2f16b65d84c696d
MD5 77c32fd99fe607efc127170039a83cc8
BLAKE2b-256 13073efe1b9a299d8cb95858621b678d87587ef39858430cac1235967b61734a

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