Package: scikit-multilearn-ng
scikit-multilearn-ngscikit-multilearn-ngis a Python module capable of performing multi-label
learning tasks and is the follow-up toscikit-multilearn.
It is built on-top of various scientific Python packages
(numpy,scipy) and
follows a similar API to that ofscikit-learn.More documentation (until replaced by scikit-multilearn-ng specific ones):Website:scikit.mlDocumentation:scikit-multilearn DocumentationFeaturesNative 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 & DependenciesTo install scikit-multilearn, simply type the following command:$pipinstallscikit-multilearn-ngThis will install the latest release from the Python package index. If you
wish to install the bleeding-edge version, then clone this repository and
runsetup.py:$gitclonehttps://github.com/scikit-multilearn-ng/scikit-multilearn-ng.git
$cdscikit-multilearn-ng
$pythonsetup.pyIn most cases requirements are installed when you install usingpip install scikit-multilearn-ngor runpython setup.py install. There are also optional dependenciespip 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 installopenNE, run:pipinstall'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 instructionsBasic UsageNote: 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 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 MEKA
wrapper, check thislink.ContributingThis project is open for contributions. Here are some of the ways for
you to contribute:Bug reports/fixFeatures requestsUse-case demonstrationsDocumentation updatesIn case you want to implement your own multi-label classifier, please
read ourDeveloper's Guideto 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!CiteIf you used scikit-multilearn-ng in your research or project, please
citethe 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}