scikit-multilearn


Namescikit-multilearn JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttp://scikit.ml/
SummaryScikit-multilearn is a BSD-licensed library for multi-label classification that is built on top of the well-known scikit-learn ecosystem.
upload_time2018-12-10 16:24:47
maintainer
docs_urlNone
authorPiotr Szymański
requires_python
licenseBSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # scikit-multilearn

[![PyPI version](https://badge.fury.io/py/scikit-multilearn.svg)](https://badge.fury.io/py/scikit-multilearn)
[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)
[![Build Status Linux and OSX](https://travis-ci.org/scikit-multilearn/scikit-multilearn.svg?branch=master)](https://travis-ci.org/scikit-multilearn/scikit-multilearn)
[![Build Status Windows](https://ci.appveyor.com/api/projects/status/vd4k18u1lp5btaql/branch/master?svg=true)](https://ci.appveyor.com/project/niedakh/scikit-multilearn/branch/master)

__scikit-multilearn__ is a Python module capable of performing multi-label
learning tasks. It is built on-top of various scientific Python packages
([numpy](http://www.numpy.org/), [scipy](https://www.scipy.org/)) and
follows a similar API to that of [scikit-learn](http://scikit-learn.org/).

- __Website:__ [scikit.ml](http://scikit.ml)
- __Documentation:__ [scikit-multilearn Documentation](http://scikit.ml/api/skmultilearn.html)


## Features

- __Native Python implementation.__ A native Python implementation for a variety of multi-label classification algorithms. To see the list of all supported classifiers, check this [link](http://scikit.ml/#classifiers).

- __Interface to Meka.__ A Meka wrapper class is implemented for reference purposes and integration. This provides access to all methods available in MEKA, MULAN, and WEKA — the reference standard in the field.

- __Builds upon giants!__ Team-up with the power of numpy and scikit. You can use scikit-learn's base classifiers as scikit-multilearn's classifiers. In addition, the two packages follow a similar API.

## Dependencies

In most cases you will want to follow the requirements defined in the requirements/*.txt files in the package. 

### Base dependencies
```
scipy
numpy
future
scikit-learn
liac-arff # for loading ARFF files
requests # for dataset module
networkx # for networkX base community detection clusterers
python-louvain # for networkX base community detection clusterers
keras
```

### GPL-incurring dependencies for two clusterers
```
python-igraph # for igraph library based clusterers
python-graphtool # for graphtool base clusterers
```

Note: Installing graphtool is complicated, please see: [graphtool install instructions](https://git.skewed.de/count0/graph-tool/wikis/installation-instructions)

## Installation

To install scikit-multilearn, simply type the following command:

```bash
$ pip install scikit-multilearn
```

This will install the latest release from the Python package index. If you
wish to install the bleeding-edge version, then clone this repository and
run `setup.py`:

```bash
$ git clone https://github.com/scikit-multilearn/scikit-multilearn.git
$ cd scikit-multilearn
$ python setup.py
```

## Basic Usage

Before proceeding to classification,  this library assumes that you have
a dataset with the following matrices:

- `x_train`, `x_test`: training and test feature matrices of size `(n_samples, n_features)`
- `y_train`, `y_test`: training and test label matrices of size `(n_samples, n_labels)`

Suppose we wanted to use a problem-transformation method called Binary
Relevance, which treats each label as a separate single-label classification
problem, to a Support-vector machine (SVM) classifier, we simply perform
the following tasks:

```python
# Import BinaryRelevance from skmultilearn
from skmultilearn.problem_transform import BinaryRelevance

# Import SVC classifier from sklearn
from sklearn.svm import SVC

# Setup the classifier
classifier = BinaryRelevance(classifier=SVC(), require_dense=[False,True])

# Train
classifier.fit(X_train, y_train)

# Predict
y_pred = classifier.predict(X_test)
```

More examples and use-cases can be seen in the 
[documentation](http://scikit.ml/api/classify.html). For using the MEKA
wrapper, check this [link](http://scikit.ml/api/meka.html#mekawrapper).

## Contributing

This project is open for contributions. Here are some of the ways for
you to contribute:

- Bug reports/fix
- Features requests
- Use-case demonstrations
- Documentation updates

In case you want to implement your own multi-label classifier, please 
read our [Developer's Guide](http://scikit.ml/api/base.html) to help
you integrate your implementation in our API.

To make a contribution, just fork this repository, push the changes
in your fork, open up an issue, and make a Pull Request!

We're also available in Slack! Just go to our [slack group](https://scikit-ml.slack.com/).

## Cite

If you used scikit-multilearn in your research or project, please
cite [our work](https://arxiv.org/abs/1702.01460):

```bibtex
@ARTICLE{2017arXiv170201460S,
   author = {{Szyma{\'n}ski}, P. and {Kajdanowicz}, T.},
   title = "{A scikit-based Python environment for performing multi-label classification}",
   journal = {ArXiv e-prints},
   archivePrefix = "arXiv",
   eprint = {1702.01460},
   year = 2017,
   month = feb
}
```



            

Raw data

            {
    "_id": null,
    "home_page": "http://scikit.ml/",
    "name": "scikit-multilearn",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Piotr Szyma\u0144ski",
    "author_email": "niedakh@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/fc/57/4c8951d3613c1cd569910bc3ddd5b3a755ad383297a12004eb2d61eefc06/scikit-multilearn-0.2.0.linux-x86_64.tar.gz",
    "platform": "",
    "description": "# scikit-multilearn\n\n[![PyPI version](https://badge.fury.io/py/scikit-multilearn.svg)](https://badge.fury.io/py/scikit-multilearn)\n[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)\n[![Build Status Linux and OSX](https://travis-ci.org/scikit-multilearn/scikit-multilearn.svg?branch=master)](https://travis-ci.org/scikit-multilearn/scikit-multilearn)\n[![Build Status Windows](https://ci.appveyor.com/api/projects/status/vd4k18u1lp5btaql/branch/master?svg=true)](https://ci.appveyor.com/project/niedakh/scikit-multilearn/branch/master)\n\n__scikit-multilearn__ is a Python module capable of performing multi-label\nlearning tasks. It is built on-top of various scientific Python packages\n([numpy](http://www.numpy.org/), [scipy](https://www.scipy.org/)) and\nfollows a similar API to that of [scikit-learn](http://scikit-learn.org/).\n\n- __Website:__ [scikit.ml](http://scikit.ml)\n- __Documentation:__ [scikit-multilearn Documentation](http://scikit.ml/api/skmultilearn.html)\n\n\n## Features\n\n- __Native Python implementation.__ A native Python implementation for a variety of multi-label classification algorithms. To see the list of all supported classifiers, check this [link](http://scikit.ml/#classifiers).\n\n- __Interface to Meka.__ A Meka wrapper class is implemented for reference purposes and integration. This provides access to all methods available in MEKA, MULAN, and WEKA — the reference standard in the field.\n\n- __Builds upon giants!__ Team-up with the power of numpy and scikit. You can use scikit-learn's base classifiers as scikit-multilearn's classifiers. In addition, the two packages follow a similar API.\n\n## Dependencies\n\nIn most cases you will want to follow the requirements defined in the requirements/*.txt files in the package. \n\n### Base dependencies\n```\nscipy\nnumpy\nfuture\nscikit-learn\nliac-arff # for loading ARFF files\nrequests # for dataset module\nnetworkx # for networkX base community detection clusterers\npython-louvain # for networkX base community detection clusterers\nkeras\n```\n\n### GPL-incurring dependencies for two clusterers\n```\npython-igraph # for igraph library based clusterers\npython-graphtool # for graphtool base clusterers\n```\n\nNote: Installing graphtool is complicated, please see: [graphtool install instructions](https://git.skewed.de/count0/graph-tool/wikis/installation-instructions)\n\n## Installation\n\nTo install scikit-multilearn, simply type the following command:\n\n```bash\n$ pip install scikit-multilearn\n```\n\nThis will install the latest release from the Python package index. If you\nwish to install the bleeding-edge version, then clone this repository and\nrun `setup.py`:\n\n```bash\n$ git clone https://github.com/scikit-multilearn/scikit-multilearn.git\n$ cd scikit-multilearn\n$ python setup.py\n```\n\n## Basic Usage\n\nBefore proceeding to classification,  this library assumes that you have\na dataset with the following matrices:\n\n- `x_train`, `x_test`: training and test feature matrices of size `(n_samples, n_features)`\n- `y_train`, `y_test`: training and test label matrices of size `(n_samples, n_labels)`\n\nSuppose we wanted to use a problem-transformation method called Binary\nRelevance, which treats each label as a separate single-label classification\nproblem, to a Support-vector machine (SVM) classifier, we simply perform\nthe following tasks:\n\n```python\n# Import BinaryRelevance from skmultilearn\nfrom skmultilearn.problem_transform import BinaryRelevance\n\n# Import SVC classifier from sklearn\nfrom sklearn.svm import SVC\n\n# Setup the classifier\nclassifier = BinaryRelevance(classifier=SVC(), require_dense=[False,True])\n\n# Train\nclassifier.fit(X_train, y_train)\n\n# Predict\ny_pred = classifier.predict(X_test)\n```\n\nMore examples and use-cases can be seen in the \n[documentation](http://scikit.ml/api/classify.html). For using the MEKA\nwrapper, check this [link](http://scikit.ml/api/meka.html#mekawrapper).\n\n## Contributing\n\nThis project is open for contributions. Here are some of the ways for\nyou to contribute:\n\n- Bug reports/fix\n- Features requests\n- Use-case demonstrations\n- Documentation updates\n\nIn case you want to implement your own multi-label classifier, please \nread our [Developer's Guide](http://scikit.ml/api/base.html) to help\nyou integrate your implementation in our API.\n\nTo make a contribution, just fork this repository, push the changes\nin your fork, open up an issue, and make a Pull Request!\n\nWe're also available in Slack! Just go to our [slack group](https://scikit-ml.slack.com/).\n\n## Cite\n\nIf you used scikit-multilearn in your research or project, please\ncite [our work](https://arxiv.org/abs/1702.01460):\n\n```bibtex\n@ARTICLE{2017arXiv170201460S,\n   author = {{Szyma{\\'n}ski}, P. and {Kajdanowicz}, T.},\n   title = \"{A scikit-based Python environment for performing multi-label classification}\",\n   journal = {ArXiv e-prints},\n   archivePrefix = \"arXiv\",\n   eprint = {1702.01460},\n   year = 2017,\n   month = feb\n}\n```\n\n\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Scikit-multilearn is a BSD-licensed library for multi-label classification that is built on top of the well-known scikit-learn ecosystem.",
    "version": "0.2.0",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "c23e41337785bfb7f63c637e3d5c6cb9",
                "sha256": "3179fed29b1492f6a69600696c23045b9f494d2b89d1796a8bdc43ccbb33712b"
            },
            "downloads": -1,
            "filename": "scikit-multilearn-0.2.0.linux-x86_64.tar.gz",
            "has_sig": false,
            "md5_digest": "c23e41337785bfb7f63c637e3d5c6cb9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 113675,
            "upload_time": "2018-12-10T16:24:47",
            "upload_time_iso_8601": "2018-12-10T16:24:47.310114Z",
            "url": "https://files.pythonhosted.org/packages/fc/57/4c8951d3613c1cd569910bc3ddd5b3a755ad383297a12004eb2d61eefc06/scikit-multilearn-0.2.0.linux-x86_64.tar.gz",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "fc1a5adba295e7e7c0642b2a88d76780",
                "sha256": "0a389600a6797db6567f2f6ca1d0dca30bebfaaa73f75de62d7ae40f8f03d4fb"
            },
            "downloads": -1,
            "filename": "scikit_multilearn-0.2.0-py2-none-any.whl",
            "has_sig": false,
            "md5_digest": "fc1a5adba295e7e7c0642b2a88d76780",
            "packagetype": "bdist_wheel",
            "python_version": "py2",
            "requires_python": null,
            "size": 89365,
            "upload_time": "2018-12-10T16:24:43",
            "upload_time_iso_8601": "2018-12-10T16:24:43.323201Z",
            "url": "https://files.pythonhosted.org/packages/21/82/9a5a40ac8bcf4be9662728df35d7e0a1f47454416e4d4480b8d0a1dc1a7b/scikit_multilearn-0.2.0-py2-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "d178b98b1a0320135d6b80f14058606e",
                "sha256": "068c652f22704a084ca252d05d21a655e7c9b248d0a4543847b74de5fca2b3f0"
            },
            "downloads": -1,
            "filename": "scikit_multilearn-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d178b98b1a0320135d6b80f14058606e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 89365,
            "upload_time": "2018-12-10T16:24:45",
            "upload_time_iso_8601": "2018-12-10T16:24:45.779298Z",
            "url": "https://files.pythonhosted.org/packages/bb/1f/e6ff649c72a1cdf2c7a1d31eb21705110ce1c5d3e7e26b2cc300e1637272/scikit_multilearn-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2018-12-10 16:24:47",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "scikit-multilearn"
}
        
Elapsed time: 0.03575s