prtClassRvm Relevance vector machine classifier
CLASSIFIER = prtClassRvm returns a relevance vector machine classifier
CLASSIFIER = prtClassRvm(PROPERTY1, VALUE1, ...) constructs a
prtClassRvm object CLASSIFIER with properties as specified by
PROPERTY/VALUE pairs.
A prtClassRvm object inherits all properties from the abstract class
prtClass. In addition is has the following properties:
kernels - A cell array of prtKernel objects specifying
the kernels to use
verbosePlot - Flag indicating whether or not to plot during
training
verboseText - Flag indicating whether or not to output
verbose updates during training
learningMaxIterations - The maximum number of iterations
A prtClassRvm also has the following read-only properties:
learningConverged - Flag indicating if the training converged
beta - The regression weights, estimated during training
sparseBeta - The sparse regression weights, estimated during
training
sparseKernels - The sparse regression kernels, estimated during
training
For information on relevance vector machines, please
refer to the following URL:
http://en.wikipedia.org/wiki/Relevance_vector_machine
By default, prtClassRvm uses the Laplacian approximation as found
in the paper:
Michael E. Tipping. 2001. Sparse bayesian learning and the
relevance vector machine. J. Mach. Learn. Res. 1 (September 2001),
The code is based on the algorithm in:
Herbrich, Learning Kernel Classifiers, The MIT Press, 2002
http://www.learning-kernel-classifiers.org/
A prtClassRvm object inherits the TRAIN, RUN, CROSSVALIDATE and
KFOLDS methods from prtAction. It also inherits the PLOT method
from prtClass.
Example:
TestDataSet = prtDataGenUnimodal; % Create some test and
TrainingDataSet = prtDataGenUnimodal; % training data
classifier = prtClassRvm; % Create a classifier
classifier = classifier.train(TrainingDataSet); % Train
classified = run(classifier, TestDataSet); % Test
% Plot the results
subplot(2,1,1);
classifier.plot;
subplot(2,1,2);
[pf,pd] = prtScoreRoc(classified,TestDataSet);
h = plot(pf,pd,'linewidth',3);
title('ROC'); xlabel('Pf'); ylabel('Pd');
% Example 2, using a different kernel
TestDataSet = prtDataGenUnimodal; % Create some test and
TrainingDataSet = prtDataGenUnimodal; % training data
classifier = prtClassRvm; % Create a classifier
% Create a prtKernelSet object with a different pair of
% prtKernels and assign them to the classifier
kernSet = prtKernelDirect & prtKernelRbf;
classifier.kernels = kernSet;
classifier = classifier.train(TrainingDataSet); % Train
classified = run(classifier, TestDataSet); % Test
% Plot
subplot(2,1,1);
classifier.plot;
subplot(2,1,2);
[pf,pd] = prtScoreRoc(classified,TestDataSet);
h = plot(pf,pd,'linewidth',3);
title('ROC'); xlabel('Pf'); ylabel('Pd');