[](https://badge.fury.io/py/scikit-multilearn)
[](https://opensource.org/licenses/BSD-2-Clause)
[](https://travis-ci.org/scikit-multilearn/scikit-multilearn)
[](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
}
```
Metadata
Release files for scikit-multilearn 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| scikit-multilearn-0.2.0.linux-x86_64.tar.gz | 113.7 kB | Without provenance | Details for scikit-multilearn-0.2.0.linux-x86_64.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| scikit_multilearn-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for scikit_multilearn-0.2.0-py3-none-any.whl |
| scikit_multilearn-0.2.0-py2-none-any.whl | Python 2 | none | any | Details for scikit_multilearn-0.2.0-py2-none-any.whl |
Total release size: 292.4 kB
Release files / scikit-multilearn-0.2.0.linux-x86_64.tar.gz
| Download URL | scikit-multilearn-0.2.0.linux-x86_64.tar.gz |
|---|---|
| Size | 113.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3179fed29b1492f6a69600696c23045b9f494d2b89d1796a8bdc43ccbb33712b
|
|
BLAKE2b-256 checksum How to use checksums |
fc574c8951d3613c1cd569910bc3ddd5b3a755ad383297a12004eb2d61eefc06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.8.1 pkginfo/1.2.1 requests/2.18.1 setuptools/36.2.7 requests-toolbelt/0.8.0 clint/0.5.1 CPython/3.6.3 Linux/4.13.0-46-generic
|
Release files / scikit_multilearn-0.2.0-py3-none-any.whl
| Download URL | scikit_multilearn-0.2.0-py3-none-any.whl |
|---|---|
| Size | 89.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
068c652f22704a084ca252d05d21a655e7c9b248d0a4543847b74de5fca2b3f0
|
|
BLAKE2b-256 checksum How to use checksums |
bb1fe6ff649c72a1cdf2c7a1d31eb21705110ce1c5d3e7e26b2cc300e1637272
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.8.1 pkginfo/1.2.1 requests/2.18.1 setuptools/36.2.7 requests-toolbelt/0.8.0 clint/0.5.1 CPython/3.6.3 Linux/4.13.0-46-generic
|
Release files / scikit_multilearn-0.2.0-py2-none-any.whl
| Download URL | scikit_multilearn-0.2.0-py2-none-any.whl |
|---|---|
| Size | 89.4 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
0a389600a6797db6567f2f6ca1d0dca30bebfaaa73f75de62d7ae40f8f03d4fb
|
|
BLAKE2b-256 checksum How to use checksums |
21829a5a40ac8bcf4be9662728df35d7e0a1f47454416e4d4480b8d0a1dc1a7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.8.1 pkginfo/1.2.1 requests/2.18.1 setuptools/36.2.7 requests-toolbelt/0.8.0 clint/0.5.1 CPython/3.6.3 Linux/4.13.0-46-generic
|
Security for scikit-multilearn 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.