Skip to main content

Scikit-multilearn-ng is the follow up to scikit-multilearn, a BSD-licensed library for multi-label classification that is built on top of the well-known scikit-learn ecosystem.

Project description

scikit-multilearn

PyPI version License

scikit-multilearn is a Python module capable of performing multi-label learning tasks. It is built on-top of various scientific Python packages (numpy, scipy) and follows a similar API to that of scikit-learn.

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.

  • 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.

Installation & Dependencies

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

$ 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:

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

In most cases requirements are installed when you install using pip install scikit-multilearn or run python setup.py install. There are also optional dependencies pip install scikit-multilearn[gpl,keras,meka] installs the GPL-incurring igraph for for igraph library based clusterers, keras for the keras classifiers and requirements for the meka bridge respectively.

To install openNE, run:

pip install 'openne @ git+https://github.com/thunlp/OpenNE.git@master#subdirectory=src'

Note that installing the GPL licensed graphtool, for graphtool based clusters, is complicated, and must be done manually, please see: graphtool install instructions

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:

# 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. For using the MEKA wrapper, check this link.

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 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.

Cite

If you used scikit-multilearn in your research or project, please cite our work:

@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
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scikit-multilearn-ng-0.0.1.tar.gz (58.7 kB view details)

Uploaded Source

Built Distribution

scikit_multilearn_ng-0.0.1-py3-none-any.whl (88.2 kB view details)

Uploaded Python 3

File details

Details for the file scikit-multilearn-ng-0.0.1.tar.gz.

File metadata

  • Download URL: scikit-multilearn-ng-0.0.1.tar.gz
  • Upload date:
  • Size: 58.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for scikit-multilearn-ng-0.0.1.tar.gz
Algorithm Hash digest
SHA256 07ad4e1f6cac85a7a336748ad713805eb76fe46cbb3425ca0214d9ee67774904
MD5 280e0f767d000bf503ef63bbb076de0c
BLAKE2b-256 0d5baa0b04dbf5ab428473459d571b165761407101c8d13894fe45c25edec4d8

See more details on using hashes here.

File details

Details for the file scikit_multilearn_ng-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for scikit_multilearn_ng-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6d87918bb8d438b456d64d6030f3b664082b39855742e6c4207529467999dc14
MD5 412d315a90f7c8a847d61933b6656d14
BLAKE2b-256 c9f42a7928e39e790defaa0021fb303a3a18f84e7606a7dd6041f3cd485d8191

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