mlrl-seco


Namemlrl-seco JSON
Version 0.10.0 PyPI version JSON
download
home_pagehttps://github.com/mrapp-ke/MLRL-Boomer
SummaryA scikit-learn implementation of a separate-and-conquer multi-label rule learning algorithm
upload_time2024-05-05 17:01:59
maintainerNone
docs_urlNone
authorMichael Rapp
requires_python>=3.9
licenseMIT
keywords machine learning scikit-learn multi-label classification rule learning separate-and-conquer
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Multi-label Separate-and-Conquer Rule Learning Algorithm

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPI version](https://badge.fury.io/py/mlrl-seco.svg)](https://badge.fury.io/py/mlrl-seco)
[![Documentation Status](https://readthedocs.org/projects/mlrl-boomer/badge/?version=latest)](https://mlrl-boomer.readthedocs.io/en/latest/?badge=latest)
[![Build](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_build.yml/badge.svg)](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_build.yml)
[![Code style](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_format.yml/badge.svg)](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_format.yml)

**Important links:** [Documentation](https://mlrl-boomer.readthedocs.io/en/latest/user_guide/seco/index.html) | [Issue Tracker](https://github.com/mrapp-ke/MLRL-Boomer/issues) | [Changelog](https://mlrl-boomer.readthedocs.io/en/latest/misc/CHANGELOG.html) | [Contributors](https://mlrl-boomer.readthedocs.io/en/latest/misc/CONTRIBUTORS.html) | [Code of Conduct](https://mlrl-boomer.readthedocs.io/en/latest/misc/CODE_OF_CONDUCT.html) | [License](https://mlrl-boomer.readthedocs.io/en/latest/misc/LICENSE.html)

This software package provides an implementation of a **Multi-label Separate-and-Conquer (SeCo) Rule Learning Algorithm** that integrates with the popular [scikit-learn](https://scikit-learn.org) machine learning framework.

The goal of [multi-label classification](https://en.wikipedia.org/wiki/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 algorithm that is provided by this package uses the SeCo paradigm for learning interpretable rule lists.

## Functionalities

The algorithm that is provided by this project currently supports the following core functionalities to learn a binary classification rules:

* **A large variety of heuristics is available** to assess the quality of candidate rules.
* **Rules may predict for a single label or multiple ones** (which enables to model local label dependencies).
* **Rules can be constructed via a greedy search or a beam search.** The latter may help to improve the quality of individual rules.
* **Sampling techniques and stratification methods** can be used to learn new rules on a subset of the available training examples, features, or labels.
* **Fine-grained control over the specificity/generality of rules** is provided via hyper-parameters.
* **Incremental reduced error pruning** can be used to remove overly specific conditions from rules and prevent overfitting.
* **Sequential post-optimization** may help to improve the predictive performance of a model by reconstructing each rule in the context of the other rules.
* **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.

## Runtime and Memory Optimizations

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

* **Sparse feature matrices** can be used for training and prediction. This may speed up training significantly on some data sets.
* **Sparse label matrices** can be used for training. This may reduce the memory footprint in case of large data sets.
* **Sparse prediction matrices** can be used to store predicted labels. This 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 several features or to obtain predictions for several examples in parallel.

## License

This project is open source software licensed under the terms of the [MIT license](https://mlrl-boomer.readthedocs.io/en/latest/misc/LICENSE.html). 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](https://mlrl-boomer.readthedocs.io/en/latest/misc/CONTRIBUTORS.html).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mrapp-ke/MLRL-Boomer",
    "name": "mlrl-seco",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "machine learning, scikit-learn, multi-label classification, rule learning, separate-and-conquer",
    "author": "Michael Rapp",
    "author_email": "michael.rapp.ml@gmail.com",
    "download_url": "https://github.com/mrapp-ke/MLRL-Boomer/releases",
    "platform": "Linux",
    "description": "# Multi-label Separate-and-Conquer Rule Learning Algorithm\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![PyPI version](https://badge.fury.io/py/mlrl-seco.svg)](https://badge.fury.io/py/mlrl-seco)\n[![Documentation Status](https://readthedocs.org/projects/mlrl-boomer/badge/?version=latest)](https://mlrl-boomer.readthedocs.io/en/latest/?badge=latest)\n[![Build](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_build.yml/badge.svg)](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_build.yml)\n[![Code style](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_format.yml/badge.svg)](https://github.com/mrapp-ke/MLRL-Boomer/actions/workflows/test_format.yml)\n\n**Important links:** [Documentation](https://mlrl-boomer.readthedocs.io/en/latest/user_guide/seco/index.html) | [Issue Tracker](https://github.com/mrapp-ke/MLRL-Boomer/issues) | [Changelog](https://mlrl-boomer.readthedocs.io/en/latest/misc/CHANGELOG.html) | [Contributors](https://mlrl-boomer.readthedocs.io/en/latest/misc/CONTRIBUTORS.html) | [Code of Conduct](https://mlrl-boomer.readthedocs.io/en/latest/misc/CODE_OF_CONDUCT.html) | [License](https://mlrl-boomer.readthedocs.io/en/latest/misc/LICENSE.html)\n\nThis software package provides an implementation of a **Multi-label Separate-and-Conquer (SeCo) Rule Learning Algorithm** that integrates with the popular [scikit-learn](https://scikit-learn.org) machine learning framework.\n\nThe goal of [multi-label classification](https://en.wikipedia.org/wiki/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 algorithm that is provided by this package uses the SeCo paradigm for learning interpretable rule lists.\n\n## Functionalities\n\nThe algorithm that is provided by this project currently supports the following core functionalities to learn a binary classification rules:\n\n* **A large variety of heuristics is available** to assess the quality of candidate rules.\n* **Rules may predict for a single label or multiple ones** (which enables to model local label dependencies).\n* **Rules can be constructed via a greedy search or a beam search.** The latter may help to improve the quality of individual rules.\n* **Sampling techniques and stratification methods** can be used to learn new rules on a subset of the available training examples, features, or labels.\n* **Fine-grained control over the specificity/generality of rules** is provided via hyper-parameters.\n* **Incremental reduced error pruning** can be used to remove overly specific conditions from rules and prevent overfitting.\n* **Sequential post-optimization** may help to improve the predictive performance of a model by reconstructing each rule in the context of the other rules.\n* **Native support for numerical, ordinal, and nominal features** eliminates the need for pre-processing techniques such as one-hot encoding.\n* **Handling of missing feature values**, i.e., occurrences of NaN in the feature matrix, is implemented by the algorithm.\n\n## Runtime and Memory Optimizations\n\nIn addition, the following features that may speed up training or reduce the memory footprint are currently implemented:\n\n* **Sparse feature matrices** can be used for training and prediction. This may speed up training significantly on some data sets.\n* **Sparse label matrices** can be used for training. This may reduce the memory footprint in case of large data sets.\n* **Sparse prediction matrices** can be used to store predicted labels. This may reduce the memory footprint in case of large data sets.\n* **Multi-threading** can be used to parallelize the evaluation of a rule's potential refinements across several features or to obtain predictions for several examples in parallel.\n\n## License\n\nThis project is open source software licensed under the terms of the [MIT license](https://mlrl-boomer.readthedocs.io/en/latest/misc/LICENSE.html). 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](https://mlrl-boomer.readthedocs.io/en/latest/misc/CONTRIBUTORS.html).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A scikit-learn implementation of a separate-and-conquer multi-label rule learning algorithm",
    "version": "0.10.0",
    "project_urls": {
        "Documentation": "https://mlrl-boomer.readthedocs.io/en/latest",
        "Download": "https://github.com/mrapp-ke/MLRL-Boomer/releases",
        "Homepage": "https://github.com/mrapp-ke/MLRL-Boomer",
        "Issue Tracker": "https://github.com/mrapp-ke/MLRL-Boomer/issues"
    },
    "split_keywords": [
        "machine learning",
        " scikit-learn",
        " multi-label classification",
        " rule learning",
        " separate-and-conquer"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "76c55a9bb33c5c037441ff03420c1a451cb159ec11e1fe87c3ee72deb057e4bf",
                "md5": "12cc35a5fdb36b944ec5ccc093e0eb05",
                "sha256": "cd575ea181a3b1de3bffa9023b06f3fbbedd538091ddd1121d3d1dae28090625"
            },
            "downloads": -1,
            "filename": "mlrl_seco-0.10.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "12cc35a5fdb36b944ec5ccc093e0eb05",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1015235,
            "upload_time": "2024-05-05T17:01:59",
            "upload_time_iso_8601": "2024-05-05T17:01:59.087280Z",
            "url": "https://files.pythonhosted.org/packages/76/c5/5a9bb33c5c037441ff03420c1a451cb159ec11e1fe87c3ee72deb057e4bf/mlrl_seco-0.10.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b78a5de2c0452d7bdfa854f9eb5707a5f6b2836b39efe2be2a582351cd006e5f",
                "md5": "c98f46aa41c13548e57729ff3b013476",
                "sha256": "e6ff1a964c1e12f04ffb7d18ec388eaa81c3ba8c94827e1999ea21b79e6fe042"
            },
            "downloads": -1,
            "filename": "mlrl_seco-0.10.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c98f46aa41c13548e57729ff3b013476",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1010525,
            "upload_time": "2024-05-05T17:02:00",
            "upload_time_iso_8601": "2024-05-05T17:02:00.646903Z",
            "url": "https://files.pythonhosted.org/packages/b7/8a/5de2c0452d7bdfa854f9eb5707a5f6b2836b39efe2be2a582351cd006e5f/mlrl_seco-0.10.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ce8217f09aad4d500f9bcd9e73198cfefe49543a9203292a82938d2faf39a569",
                "md5": "89f6b832c786c3ba8578f44d191a9475",
                "sha256": "d44ecac3cd378920705a343006f3faf2bc58c7624fabb666afb37b6e03f91cba"
            },
            "downloads": -1,
            "filename": "mlrl_seco-0.10.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "89f6b832c786c3ba8578f44d191a9475",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1013575,
            "upload_time": "2024-05-05T17:02:01",
            "upload_time_iso_8601": "2024-05-05T17:02:01.975925Z",
            "url": "https://files.pythonhosted.org/packages/ce/82/17f09aad4d500f9bcd9e73198cfefe49543a9203292a82938d2faf39a569/mlrl_seco-0.10.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9e8d77987252240723b58588c8501b2638c697fa1bb66d11ec645fe882e209f6",
                "md5": "7deb647ddd3c6bfad7a27bca758d3228",
                "sha256": "75552e52640f48d45ef055c0a76b083ac6d6122b53506f7c1ac5df6c330d5b9b"
            },
            "downloads": -1,
            "filename": "mlrl_seco-0.10.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7deb647ddd3c6bfad7a27bca758d3228",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1018427,
            "upload_time": "2024-05-05T17:02:11",
            "upload_time_iso_8601": "2024-05-05T17:02:11.689895Z",
            "url": "https://files.pythonhosted.org/packages/9e/8d/77987252240723b58588c8501b2638c697fa1bb66d11ec645fe882e209f6/mlrl_seco-0.10.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-05 17:01:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mrapp-ke",
    "github_project": "MLRL-Boomer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mlrl-seco"
}
        
Elapsed time: 0.32212s