ClassifierToolbox : A Matlab toolbox for classifier.
Authors: Hiroyuki Kasai
Last page update: Seo. 11, 2017
Latest library version: 1.0.7 (see Release notes for more info)
Introduction
This package provides various tools for classification, e.g., image classification, face recogntion, and related applicaitons.
List of algorithms
-
Basis
-
PCA (Principal component analysis)
-
ICA (Independent component analysis)
-
LDA (Linear discriminant analysis)
-
SVM (Support vector machine)
- See wikipedia
- Use Matlab built-in library (svmfitcsvm and predict).
-
LRC variant
-
LRC (Linear regression classification)
-
LDRC (Linear discriminant regression classificatoin)
-
LCDRC (Linear collaborative discriminant regression classificatoin)
-
CRC (Collaborative representation based classification)
-
LSR variant
-
LSR (Least squares regression)
-
DERLR (Discriminative elastic-net regularized linear regression)
-
Low-rank matrix factorization based
-
NMF (Non-negative matrix factorization)
-
Robust PCA classifier
-
RCM based
-
RCM+kNN (Region covariance matrix algorithm)
-
GRCM+kNN (Gabor-wavelet-based region covariance matrix algorithm)
-
SRC variant
-
SRC (Sparse representation based classifcation)
- J. Wright, A. Yang, A. Ganesh, S. Sastry, and Y. Ma, "Robust face recognition via sparse representation," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.31, no.2, pp.210-227, 2009.
-
ESRC (Extended sparse representation based classifcation)
-
SSRC (Superposed sparse representation based classifcation)
-
SRC-RLS
-
SDR-SLR (Sparse- and dense-hybrid representation and supervised low-rank)
-
Dictionary learning based
-
K-SVD
-
LC-KSVD (Label Consistent K-SVD)
- Z. Jiang, Z. Lin, L. S. Davis, "Learning a discriminative dictionary for sparse coding via label consistent K-SVD," IEEE Conference on Computer Vision and Pattern Recognition (CVPR2011), 2011.
- Z. Jiang, Z. Lin, L. S. Davis, "Label consistent K-SVD: learning A discriminative dictionary for recognition," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.35, no.11, pp.2651-2664, 2013.
-
FDDL (Fisher Discriminative Dictionary Learning)
-
JDDRDL
-
Geometry-aware
-
R-SRC and R-DL-SC (Riemannian dictionary learning and sparse coding for positive definite matrices)
-
R-KSRC (Stein kernel) (a.k.a. RSR) (Riemannian kernelized sparse representation classification)
- M. Harandi, R. Hartley, B. Lovell and C. Sanderson, "Sparse coding on symmetric positive definite manifolds using bregman divergences," IEEE Transactions on Neural Networks and Learning Systems (TNNLS), 2016.
- M. Harandi, C. Sanderson, R. Hartley and B. Lovell, "Sparse coding and dictionary learning for symmetric positive definite matrices: a kernel approach," European Conference on Computer Vision (ECCV), 2012.
-
R-KSRC (Log-Euclidean kernel) (Riemannian kernelized sparse representation classification)
- P. Li, Q. Wang, W. Zuo, and L. Zhang, "Log-Euclidean kernels for sparse representation and dictionary learning," IEEE International Conference on Computer Vision (ICCV), 2013.
- S. Jayasumana, R. Hartley, M. Salzmann, H. Li, and M. Harandi, "Kernel methods on the Riemannian manifold of symmetric positive definite matrices," IEEE Conference on Computer Vision and Pattern Recognition (CVPR2013), 2013.
- S. Jayasumana, R. Hartley, M. Salzmann, H. Li, and M. Harandi, "Kernel methods on the Riemannian manifold with Gaussian RBF Kernels," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.37, no.12, 2015.
- [Reference] R-KSRC (Deta-dependent kernel) [Not included in this package]
-
R-DR (Riemannian dimensinality reduction)
Folders and files
./ - Top directory.
./README.md - This readme file.
./run_me_first.m - The scipt that you need to run first.
./demo.m - Demonstration script to check and understand this package easily.
|algorithm/ - Algorithms for classifcations.
|auxiliary/ - Some auxiliary tools for this project.
|demo_examples/ - Some demonstration files.
|lib/ - 3rd party tools.
|dataset/ - Folder where datasets are stored.
Run run_me_first
for path configurations.
%% First run the setup script
run_me_first;
Second to do: download datasets and external libraries
Run download
for downloading datasets and external libraries.
%% Run the downloading script
download;
- If your computer is behind a proxy server, please configure your Matlab setting. See this.
Usage example: ORL face dateset demo: 3 steps!
Now, just execute demo
for demonstration of this package.
%% Execute the demonstration script
demo;
The "demo.m" file contains below.
%% load data
load('./dataset/AR_Face_img_60x43.mat');
%% set option
options.verbose = true;
%% LSR
[accuracy_lsr, ~, ~] = lsr(TrainSet, TestSet, train_num, test_num, class_num, 0.001, options);
%% LRC
accuracy_lrc = lrc(TrainSet, TestSet, test_num, class_num, options);
%% show recognition accuracy
fprintf('# LSR: Accuracy = %5.5f\n', accuracy_lsr);
fprintf('# LRC: Accuracy = %5.5f\n', accuracy_lrc);
Let take a closer look at the code above bit by bit. The procedure has only 3 steps!
Step 1: Load data
First, we load datasets including train set and test set.
load('./dataset/AR_Face_img_60x43.mat');
Step 2: Perform solver
Now, you can perform optimization solvers, i.e., LSR and LRC with appropriate paramters.
%% LSR
[accuracy_lsr, ~, ~] = lsr(TrainSet, TestSet, train_num, test_num, class_num, 0.001, options);
%% LRC
accuracy_lrc = lrc(TrainSet, TestSet, test_num, class_num, options);
Step 3: Show recognition accuracy
Finally, the final recognition accuracis are shown.
fprintf('# LSR: Accuracy = %5.5f\n', accuracy_lsr);
fprintf('# LRC: Accuracy = %5.5f\n', accuracy_lrc);
That's it!
License
- This toobox is free, non-commercial and open source.
- The code provided in this toobox should only be used for academic/research purposes.
- Third party files are included.
- Note that please see the corresponding license for each.
Problems or questions
If you have any problems or questions, please contact the author: Hiroyuki Kasai (email: hiroyuki dot kasai at waseda dot jp)
Release Notes
- Version 1.0.7 (Sep. 11, 2017)
- Version 1.0.6 (Aug. 03, 2017)
- Version 1.0.5 (July 27, 2017)
- Version 1.0.4 (July 11, 2017)
- Version 1.0.3 (July 10, 2017)
- Add and modify SDR-SLR etc.
- Version 1.0.2 (July 07, 2017)
- Add and modify RSR, SVM etc.
- Version 1.0.1 (July 06, 2017)
- Add and modify many items.
- Version 1.0.0 (July 01, 2017)