SHOGUN  v1.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
CLPM Class Reference

Detailed Description

Class LPM trains a linear classifier called Linear Programming Machine, i.e. a SVM using a $\ell_1$ norm regularizer.

It solves the following optimization problem using CPLEX:

\begin{eqnarray*} \min_{{\bf w}={(\bf w^+},{\bf w^-}), b, {\bf \xi}} && \sum_{i=1}^N ( {\bf w}^+_i + {\bf w}^-_i) + C \sum_{i=1}^{N} \xi_i\\ \mbox{s.t.} && -y_i(({\bf w}^+-{\bf w}^-)^T {\bf x}_i + b)-{\bf \xi}_i \leq -1\\ && \quad {\bf x}_i \geq 0\\\ && {\bf w}_i \geq 0,\quad \forall i=1\dots N \end{eqnarray*}

Note that currently CPLEX is required to solve this problem. A faster implementation is available in CLPBoost.

See Also
CLPBoost

Definition at line 43 of file LPM.h.

Public Member Functions

 CLPM ()
virtual ~CLPM ()
virtual EClassifierType get_classifier_type ()
virtual void set_features (CDotFeatures *feat)
void set_C (float64_t c_neg, float64_t c_pos)
float64_t get_C1 ()
float64_t get_C2 ()
void set_bias_enabled (bool enable_bias)
bool get_bias_enabled ()
void set_epsilon (float64_t eps)
float64_t get_epsilon ()
virtual const char * get_name () const

Protected Member Functions

virtual bool train_machine (CFeatures *data=NULL)

Protected Attributes

float64_t C1
float64_t C2
bool use_bias
float64_t epsilon

Constructor & Destructor Documentation

CLPM ( )

Definition at line 22 of file LPM.cpp.

~CLPM ( )
virtual

Definition at line 28 of file LPM.cpp.

Member Function Documentation

bool get_bias_enabled ( )

Definition at line 79 of file LPM.h.

float64_t get_C1 ( )

Definition at line 75 of file LPM.h.

float64_t get_C2 ( )

Definition at line 76 of file LPM.h.

virtual EClassifierType get_classifier_type ( )
virtual

Definition at line 49 of file LPM.h.

float64_t get_epsilon ( )

Definition at line 82 of file LPM.h.

virtual const char* get_name ( ) const
virtual
Returns
object name

Definition at line 85 of file LPM.h.

void set_bias_enabled ( bool  enable_bias)

Definition at line 78 of file LPM.h.

void set_C ( float64_t  c_neg,
float64_t  c_pos 
)

set C

Parameters
c_negnew C constant for negatively labeled examples
c_posnew C constant for positively labeled examples

Definition at line 73 of file LPM.h.

void set_epsilon ( float64_t  eps)

Definition at line 81 of file LPM.h.

virtual void set_features ( CDotFeatures feat)
virtual

set features

Parameters
featfeatures to set

Definition at line 58 of file LPM.h.

bool train_machine ( CFeatures data = NULL)
protectedvirtual

train classifier

Parameters
datatraining data (parameter can be avoided if distance or kernel-based classifiers are used and distance/kernels are initialized with train data)
Returns
whether training was successful

Definition at line 32 of file LPM.cpp.

Member Data Documentation

float64_t C1
protected

Definition at line 99 of file LPM.h.

float64_t C2
protected

Definition at line 100 of file LPM.h.

float64_t epsilon
protected

Definition at line 102 of file LPM.h.

bool use_bias
protected

Definition at line 101 of file LPM.h.


The documentation for this class was generated from the following files:

SHOGUN Machine Learning Toolbox - Documentation