Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A scikit-learn based module for multi-label et. al. classification

License

NotificationsYou must be signed in to change notification settings

scikit-multilearn/scikit-multilearn

Repository files navigation

PyPI versionLicense

scikit-multilearn is a Python module capable of performing multi-labellearning tasks. It is built on-top of various scientific Python packages(numpy,scipy) andfollows a similar API to that ofscikit-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 thislink.

  • 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 youwish to install the bleeding-edge version, then clone this repository andrunsetup.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 usingpip install scikit-multilearn or runpython setup.py install. There are also optional dependenciespip 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 installopenNE, 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 havea 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 BinaryRelevance, which treats each label as a separate single-label classificationproblem, to a Support-vector machine (SVM) classifier, we simply performthe following tasks:

# Import BinaryRelevance from skmultilearnfromskmultilearn.problem_transformimportBinaryRelevance# Import SVC classifier from sklearnfromsklearn.svmimportSVC# Setup the classifierclassifier=BinaryRelevance(classifier=SVC(),require_dense=[False,True])# Trainclassifier.fit(X_train,y_train)# Predicty_pred=classifier.predict(X_test)

More examples and use-cases can be seen in thedocumentation. For using the MEKAwrapper, check thislink.

Contributing

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

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

In case you want to implement your own multi-label classifier, pleaseread ourDeveloper's Guide to helpyou integrate your implementation in our API.

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

We're also available in Slack! Just go to ourslack group.

Cite

If you used scikit-multilearn in your research or project, pleaseciteour 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}

[8]ページ先頭

©2009-2025 Movatter.jp