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

Uploaded CPython 3.12 Windows x86-64

mlrl_common-0.11.0-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.0-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.0-cp312-cp312-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 Windows x86-64

mlrl_common-0.11.0-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.0-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.0-cp311-cp311-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 Windows x86-64

mlrl_common-0.11.0-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.0-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.0-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.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c1c5b046f40685711dac9799dc043e2c1adf9a7cd48e2f535025fd5c872afa41
MD5 b96430ecf40a9b53e29ce656d1239b9a
BLAKE2b-256 ad4922736d5562a2748468a051dfcb3eac44f05eb4e1b0d7dde2fa3f50de8d2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fce88e618d7735f4900fd2b6b6e5b0d83c203944371304941335a2d040856c20
MD5 3c017c6b7d98136c0cb3c3b6a1f6d85e
BLAKE2b-256 9770b200c5f5c89285ccfeb94c7142dd48c78f4961b52e0461115f40a28aa980

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e0d1c71a3ab625688bdd684ecc5e8211c15344dc091fe023e8ad117a25bcb6b9
MD5 1e0c619d18d7f19b6fa048bc0159e180
BLAKE2b-256 dee96c6d280ca7faf3ad3b1b4995b00669b3196bbb12614eb0c004871ddc1abb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 616c63be892e154238059fb1064d8c559029257e9c8018aea5a0d326cd45b931
MD5 7b07052870ac485bcd45cea5c89dd821
BLAKE2b-256 9bf0a05f2643ada248715195787a189338ddd98cd3db10a1daf7006c7f3c781b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4adec02c765870e77b932e5b6822854e92f01e3f8a96cc3efcd4c2e72ecb75b4
MD5 b13d020e0de91e363b098009d99a163e
BLAKE2b-256 ee1f61d5a1c51897ff21dabaff84b266b6f95e463daed1e1ad496db7ae67cf38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 435d15002aecb29e9531f6d4a34230bb3a87202c416b2a7c94c23544b1dd1963
MD5 685143929b9c76eeb2efc3b39873413d
BLAKE2b-256 6b214d1f8f6182b7781ec791fd1e3e52a725e4680a570fa55ab2b6018f7325a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ce795f19fc2d4d912fd3362b3ddea7c90e293ff30825da11003d7c11577a6d5a
MD5 47b047a5104591b97fc546d7cde9fa48
BLAKE2b-256 1d4090fb01732444144bcab468e77c5c82e980b228a53e451d8b056c1bcf3103

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb58f91a95abd04fdbe9cae96bc4b2eadeff81b2a0fd40dcac26d2cc3eede8a4
MD5 2a1af9668866c04db99569b5120d8b50
BLAKE2b-256 745d46018b46209ef16717f044496ad9764a09b4d58a6a8836ac1e71f3f2db92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 61ab8f2179e6a884577888a80676651d077fb11c5c17be4ac74e36154066ea33
MD5 15c1bc538a8f0a25e1731c1a198cd55c
BLAKE2b-256 3f47e97d97465f2de0e667137a358d622b147c236b23060ece1657eb6c64d76f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 488bdff93cd3ef6941a2ba0789f2902306fc416b023888d387f930b23372c28c
MD5 cd7dacbc116134c92ce371986c809099
BLAKE2b-256 5d3914fc6a230b24a3d323305bc07b4f876610dc44a9c72f23e6051a10758f18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 95127679cdcbf1f9f16085d4abe1a5d54dbdc9fc3fd265689de901ac51c9e475
MD5 0b9f41181be9b45ebccbaeb5b9f579b3
BLAKE2b-256 daa871c5026d11ab0f61006138756073ee4d8ce4c4407ac86cfb46bbc3d2da13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlrl_common-0.11.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45415ce7c4418c45750723caa1a6590c0ad31aeb9a13a84498d3657c2f5240ae
MD5 394ce622ef5b18923060f59809c28d8a
BLAKE2b-256 e5b3d4ee3550b03dc702735a914c05cca4cab76e6245b3337a4fb38bad80c584

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