A MATLAB/OCTAVE library for Multi-Label Classification
Clustering-based method, CBMLC, HOMER, CLMLC SLEEC(?)
Ensemble-based method, ECC, RAkEL, RAkEL-d, fRAkEL, TREMLC, MLCEnsemble,COCOA
Feature Space Dimension Reduction (FSDR)
FSDR-unsupervised method (confirmed), PCA, NMF, LPP, NPE,
FSDR-supervised method (confirmed), MLSI, MDDM, RFS, OPLS, MHSL, FScore, MLJMI, MLMIM, MLMRMR, SVP, CCA, MLDA, MIFS,
Label Space Dimension Reduction (LSDR), CSSP,PLST,CPLST,FaIE,BMaD,LEML
Process methods, CC, Meta-Label CC, PS, triClass
MLC-base classifiers (confirmed), BR, LP, MLKNN, BR with Random Under/Over Sampling, Top-k,FastXML(confirmed only on Windows)
MLC-base classifiers (unconfirmed), BPMLL, CLR, rankSVM
Base Classifiers LIBLINEAR, LIBSVM, rigde regression, k-NN
dataname='{datasetname}'
dataset can be found dataset/matfile/
numCV = 3 or 5 or 10
3-CV or 5-CV or 10-CV we already splited training/test instance, indices can be found dataset/index/n-fold/
method.name={'{meethodname1}','{methodname2}',...}
In this library we can combine any problem transformation methods.
For example, when we want to conduct PCA for the feature selection first, and then conduct k-means to divide instances, at last, random Classifier Chain use for each cluster,
method.name={'PCA',CBMLC','rCC'}
methods are conducted on this order. So if you want to conduct k-means first and then conduct PCA for each cluster,
method.name={'CBMLC','PCA','rCC'}
NOTE: CBMLC is Clustering Based Multi-Label Classification method.
Many methods may have several parameters with different name, so we gave up to implement CLI. We use file for setting parameters.(you can also add the code on Sample.m)
Set{methodname}Parameter.m is a file to set parameter. see function/{category}/{methodname}/Set{methodname}Parameter.m
For example
function[param]=SetPCAParameter(~)
%setPCAParameter
%Dimensionality of the feature subspace
param.dim=300;
On some parameters, you can define values depends on dataset information by setting with string from like,
function[param]=SetPCAParameter(~)
%setPCAParameter
%Dimensionality of the feature subspace
param.dim= 'numF*0.5';
The method command the string line and substitute the value of the result
In this library,
numF
is the number of features
numN
is the number of instances
numL
is the number of labels
Most methods based on traditional binary/multi-class classifier to solve MLC
method.base.name='{base classifier name}
Now we support liinear_svm
from LIBLINEAR,svm
from LIBSVM, ridge
(ridge regression) and 'knn' (k-nearest neighbor)
Some methods returns not discrete 0-1 classification results but scores for labels
To obtain classification result, threshold is needed.
method.th.type='Scut' or 'Rcut' or 'Pcut'
method.th.param=parameter
Now, we support, Scut, Rcut, Pcut.
res.{criteria}
contains result
Keigo Kimura(KKimura360) and Lu Sun(futuresun912).
keikim360{at}gmail.com