GithubHelp home page GithubHelp logo

zuoan123 / mlc_toolbox Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kkimura360/mlc_toolbox

0.0 0.0 0.0 314.89 MB

A MATLAB/OCTAVE library for Multi-Label Classification

License: GNU General Public License v3.0

MATLAB 40.45% M 0.06% Makefile 0.70% C++ 17.32% C 20.81% Mercury 0.03% HTML 5.46% Java 6.62% M4 4.15% Python 4.05% Objective-C 0.02% Batchfile 0.17% Shell 0.15%

mlc_toolbox's Introduction

MLC_toolbox

A MATLAB/OCTAVE library for Multi-Label Classification

Current available functions:

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

How to run Sample Code (Sample.m)

Dataset

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

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.


Parameters for each 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


Base Line Classifier

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)


Threshold

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.


Results

res.{criteria} contains result

Contributors

Keigo Kimura(KKimura360) and Lu Sun(futuresun912).

Contacts

keikim360{at}gmail.com

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.