Multi-view Learning with Vector-valued RKHS - ICML 2013
Matlab M
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


In this package, you find a updated version of the MATLAB code for following paper:

A unifying framework for vector-valued manifold regularization and multi-view learning, Minh, H. Q., Bazzani, L., and Murino, V., In Proceedings of the 30th International Conference on Machine Learning (ICML-13) (pp. 100-108)

Please, cite our paper if you use our code:

  title={A unifying framework for vector-valued manifold regularization and multi-view learning},
  author={Minh, Ha Quang and Bazzani, Loris and Murino, Vittorio},
  booktitle={Proceedings of the 30th International Conference on Machine Learning (ICML-13)},

##REPLICATE EXPERIMENTS With the toolbox that can be used in combination with your data and kernels, we provide the demo code that replicates the experiment on the Caltech-101 dataset. It is very simple:

  1. download the kernels and metadata provided here (the 15-sample files):
  2. put the uncompressed folders in the folder named kernels
  3. open DEMO_caltech101.m
  4. modify the TOOLBOXPATH and the KERNELPATH (if needed)
  5. run the code

##USE THE CODE AS BLACKBOX You can also use the code using your data with the following steps:

  1. Load the toolbox and additional libs for the experiment
TOOLBOXPATH = './';   % absolute path where the toolbox is located
addpath([TOOLBOXPATH 'MV_leastsquare/']) % load the toolbox
params_mv.gA =   % RKHS regularization
params_mv.gB =   % between-view regularization
params_mv.gW =   % within-view regularization
params_mv.c  =   % vector to build the matrix C (length of the list of views)
params_mv.Laplacian.GraphNormalize = % parameter to compute the laplacian
  1. Load your data and compute the following quantities

l = % # labeled samples u = % # unlabeled samples m = % # of views P = % # of classes, i.e., length of the output vector K_trn = % training kernel, size = (#views, #samplestrain, #samplestrain) -> labeled first, unlabeled at the end K_tst = % testing kernel, size = (#views, #samplestrain, #samplestest) Ytrain = % vector-value representation of the labels of the training samples (use labels2vec.m) % NOTE: it has to have zeros corresponding to the unlabeled samples YGT = % labels of the testing samples

3. Training
[bG_trn, L]  = make_boldG_Laplacian(K_trn,params_mv,l,u,m,'training');
% [bG_trn, L]  = make_boldG_Laplacian(K_trn,params_mv,l,u,m,'training', Lapl); % in the case you have you Laplacian
[At, C]  = MV_MC_leastsquare_training(bG_trn,L,Ytrain,params_mv,P,l,u,m);

4. Testing
[bG_tst, ~] = make_boldG_Laplacian(K_tst,params_mv,l,u,m,'testing');
[estimatedLabels, conf, Y_est] = MV_MC_leastsquare_testing(bG_tst,At,C,P,m);
  1. Compute classification statistics
[error_t, errorC] = performance_Y(Y_est,YGT);