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
CLPBoost Class Reference

Detailed Description

Class LPBoost 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 Boosting on the input features:

\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. This implementation is faster than solving the linear program directly in CPLEX (as was done in CLPM).

See Also
CLPM

Definition at line 48 of file LPBoost.h.

Public Member Functions

 CLPBoost ()
virtual ~CLPBoost ()
virtual EClassifierType get_classifier_type ()
bool init (int32_t num_vec)
void cleanup ()
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 ()
float64_t find_max_violator (int32_t &max_dim)
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
float64_tu
CDynamicArray< int32_t > * dim
int32_t num_sfeat
int32_t num_svec
SGSparseVector< float64_t > * sfeat

Constructor & Destructor Documentation

CLPBoost ( )

Definition at line 25 of file LPBoost.cpp.

~CLPBoost ( )
virtual

Definition at line 36 of file LPBoost.cpp.

Member Function Documentation

void cleanup ( )

Definition at line 57 of file LPBoost.cpp.

float64_t find_max_violator ( int32_t &  max_dim)

Definition at line 69 of file LPBoost.cpp.

bool get_bias_enabled ( )

Definition at line 87 of file LPBoost.h.

float64_t get_C1 ( )

Definition at line 83 of file LPBoost.h.

float64_t get_C2 ( )

Definition at line 84 of file LPBoost.h.

virtual EClassifierType get_classifier_type ( )
virtual

Definition at line 54 of file LPBoost.h.

float64_t get_epsilon ( )

Definition at line 90 of file LPBoost.h.

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

Definition at line 95 of file LPBoost.h.

bool init ( int32_t  num_vec)

Definition at line 41 of file LPBoost.cpp.

void set_bias_enabled ( bool  enable_bias)

Definition at line 86 of file LPBoost.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 81 of file LPBoost.h.

void set_epsilon ( float64_t  eps)

Definition at line 89 of file LPBoost.h.

virtual void set_features ( CDotFeatures feat)
virtual

set features

Parameters
featfeatures to set

Definition at line 66 of file LPBoost.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 104 of file LPBoost.cpp.

Member Data Documentation

float64_t C1
protected

Definition at line 109 of file LPBoost.h.

float64_t C2
protected

Definition at line 110 of file LPBoost.h.

CDynamicArray<int32_t>* dim
protected

Definition at line 115 of file LPBoost.h.

float64_t epsilon
protected

Definition at line 112 of file LPBoost.h.

int32_t num_sfeat
protected

Definition at line 117 of file LPBoost.h.

int32_t num_svec
protected

Definition at line 118 of file LPBoost.h.

SGSparseVector<float64_t>* sfeat
protected

Definition at line 119 of file LPBoost.h.

float64_t* u
protected

Definition at line 114 of file LPBoost.h.

bool use_bias
protected

Definition at line 111 of file LPBoost.h.


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

SHOGUN Machine Learning Toolbox - Documentation