MKLMultiClass is a class for L1-norm multiclass MKL.
It is based on the GMNPSVM Multiclass SVM. Its own parameters are the L2 norm weight change based MKL Its termination criterion set by void set_mkl_epsilon(float64_t eps ); and the maximal number of MKL iterations set by void set_max_num_mkliters(int32_t maxnum); It passes the regularization constants C1 and C2 to GMNPSVM.
Definition at line 32 of file MKLMultiClass.h.
CMKLMultiClass | ( | ) |
Class default Constructor
Definition at line 17 of file MKLMultiClass.cpp.
CMKLMultiClass | ( | float64_t | C, | |
CKernel * | k, | |||
CLabels * | lab | |||
) |
Class Constructor commonly used in Shogun Toolbox
C | constant C | |
k | kernel | |
lab | labels |
Definition at line 28 of file MKLMultiClass.cpp.
~CMKLMultiClass | ( | ) | [virtual] |
Class default Destructor
Definition at line 40 of file MKLMultiClass.cpp.
CMKLMultiClass | ( | const CMKLMultiClass & | cm | ) | [protected] |
Class Copy Constructor protected to avoid its usage
Definition at line 48 of file MKLMultiClass.cpp.
void addingweightsstep | ( | const std::vector< float64_t > & | curweights | ) | [protected] |
adds a constraint to the LP used in MKL
curweights | are the current MKL weights |
it uses void addingweightsstep( const std::vector<float64_t> & curweights); and float64_t getsumofsignfreealphas();
Definition at line 205 of file MKLMultiClass.cpp.
bool evaluatefinishcriterion | ( | const int32_t | numberofsilpiterations | ) | [protected, virtual] |
checks MKL for convergence
numberofsilpiterations | is the number of currently done iterations |
Definition at line 129 of file MKLMultiClass.cpp.
virtual EClassifierType get_classifier_type | ( | ) | [virtual] |
get classifier type
Reimplemented from CMachine.
Definition at line 56 of file MKLMultiClass.h.
float64_t getsquarenormofprimalcoefficients | ( | const int32_t | ind | ) | [protected] |
computes the second svm-dependent part used for generating MKL constraints
ind | is the index of the kernel for which to compute ![]() |
Definition at line 289 of file MKLMultiClass.cpp.
float64_t * getsubkernelweights | ( | int32_t & | numweights | ) |
returns MKL weights for the different kernels
numweights | is output parameter, is set to zero if no weights have been computed or to the number of MKL weights which is equal to the number of kernels |
Definition at line 403 of file MKLMultiClass.cpp.
float64_t getsumofsignfreealphas | ( | ) | [protected] |
computes the first svm-dependent part used for generating MKL constraints it is
Definition at line 241 of file MKLMultiClass.cpp.
void initlpsolver | ( | ) | [protected] |
performs some sanity checks (on the provided kernel), inits the GLPK-based LP solver
Definition at line 90 of file MKLMultiClass.cpp.
void initsvm | ( | ) | [protected] |
inits the underlying Multiclass SVM
Definition at line 67 of file MKLMultiClass.cpp.
CMKLMultiClass operator= | ( | const CMKLMultiClass & | cm | ) | [protected] |
Class Assignment operator protected to avoid its usage
Definition at line 58 of file MKLMultiClass.cpp.
void set_max_num_mkliters | ( | int32_t | maxnum | ) |
sets maximal number of MKL iterations
maxnum | is the desired maximal number of MKL iterations; when it is reached the MKL terminates irrespective of the MKL progress set it to a nonpositive value in order to turn it off |
Definition at line 424 of file MKLMultiClass.cpp.
void set_mkl_epsilon | ( | float64_t | eps | ) |
sets MKL termination threshold
eps | is the desired threshold value the termination criterion is the L2 norm between the current MKL weights and their counterpart from the previous iteration |
Definition at line 419 of file MKLMultiClass.cpp.
void set_mkl_norm | ( | float64_t | norm | ) | [virtual] |
bool train_machine | ( | CFeatures * | data = NULL |
) | [protected, virtual] |
train Multiclass MKL classifier
data | training data (parameter can be avoided if distance or kernel-based classifiers are used and distance/kernels are initialized with train data) |
Reimplemented from CMachine.
Definition at line 325 of file MKLMultiClass.cpp.
MKLMultiClassOptimizationBase* lpw [protected] |
the solver wrapper
Definition at line 174 of file MKLMultiClass.h.
int32_t max_num_mkl_iters [protected] |
maximal number of MKL iterations is set by void set_max_num_mkliters(int32_t maxnum);
Definition at line 187 of file MKLMultiClass.h.
MKL termination threshold is set void set_mkl_epsilon(float64_t eps );
Definition at line 183 of file MKLMultiClass.h.
std::vector<float64_t> normweightssquared [protected] |
stores the term \| w_l \|^2 ~~~ "alpha o Y K_l Y o alpha"
Definition at line 195 of file MKLMultiClass.h.
MKL norm >=1
Definition at line 191 of file MKLMultiClass.h.
the multiclass svm for fixed MKL weights
Definition at line 170 of file MKLMultiClass.h.
::std::vector< std::vector< float64_t> > weightshistory [protected] |
stores the last two mkl iteration weights
Definition at line 178 of file MKLMultiClass.h.