Skip to main content

scikit-multilearn-ng

PyPI version License

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

More documentation:

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

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-ng/scikit-multilearn-ng.git
$ cd scikit-multilearn-ng
$ python setup.py

In most cases requirements are installed when you install using pip install scikit-multilearn-ng or run python setup.py install. There are also optional dependencies pip install scikit-multilearn-ng[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

Note: You should use the same import statement as previously with scikit-multilearn (import skmultilearn), after installation. This allows for quicker switching to this follow-up version.

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.

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!

Cite

If you used scikit-multilearn-ng in your research or project, please cite the original package scikit-multilearn:

@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-ng 0.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scikit-multilearn-ng 0.0.8
File Size Uploaded Provenance Actions
scikit-multilearn-ng-0.0.8.tar.gz 70.9 kB Without provenance Details for scikit-multilearn-ng-0.0.8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for scikit-multilearn-ng 0.0.8
File Interpreter ABI Platform Actions
scikit_multilearn_ng-0.0.8-py3-none-any.whl Python 3 none any Details for scikit_multilearn_ng-0.0.8-py3-none-any.whl

Total release size: 180.6 kB

Release files / scikit-multilearn-ng-0.0.8.tar.gz

Download URL scikit-multilearn-ng-0.0.8.tar.gz
Size 70.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c93791e94832f4ff07dee1d81593373c967fd82d167a775b41a2c222ddce6a64
BLAKE2b-256 checksum
How to use checksums
2d63f36cde21bbce21e6ff3991f94f5bb184dc72ad8f9b601a6bcb04d01ddb2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / scikit_multilearn_ng-0.0.8-py3-none-any.whl

Download URL scikit_multilearn_ng-0.0.8-py3-none-any.whl
Size 109.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
23ffffcba8fd0ef791c35f893e0dbfbc9d7e49412b75583af1e01e181908ebb4
BLAKE2b-256 checksum
How to use checksums
0adb22a867ef696b074231b7cf1c33181ebc5da2eb43b7024e84f57986b713a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.5

Security for scikit-multilearn-ng 0.0.8

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page