Class LinearMachine is a generic interface for all kinds of linear machines like classifiers.
A linear classifier computes
where are the weights assigned to each feature in training and
the bias.
To implement a linear classifier all that is required is to define the train() function that delivers above.
Note that this framework works with linear classifiers of arbitraty feature type, e.g. dense and sparse and even string based features. This is implemented by using CDotFeatures that may provide a mapping function encapsulating all the required operations (like the dot product). The decision function is thus
The following linear classifiers are implemented
Definition at line 61 of file LinearMachine.h.
Public Member Functions | |
CLinearMachine () | |
virtual | ~CLinearMachine () |
void | get_w (float64_t *&dst_w, int32_t &dst_dims) |
SGVector< float64_t > | get_w () |
void | set_w (float64_t *src_w, int32_t src_w_dim) |
void | set_bias (float64_t b) |
float64_t | get_bias () |
virtual bool | load (FILE *srcfile) |
virtual bool | save (FILE *dstfile) |
virtual void | set_features (CDotFeatures *feat) |
virtual CLabels * | apply () |
virtual CLabels * | apply (CFeatures *data) |
virtual float64_t | apply (int32_t vec_idx) |
get output for example "vec_idx" | |
virtual CDotFeatures * | get_features () |
virtual const char * | get_name () const |
Protected Member Functions | |
virtual void | store_model_features () |
Protected Attributes | |
int32_t | w_dim |
float64_t * | w |
float64_t | bias |
CDotFeatures * | features |
CLinearMachine | ( | ) |
default constructor
Definition at line 16 of file LinearMachine.cpp.
~CLinearMachine | ( | ) | [virtual] |
Definition at line 26 of file LinearMachine.cpp.
CLabels * apply | ( | ) | [virtual] |
apply linear machine to all examples
Implements CMachine.
Definition at line 46 of file LinearMachine.cpp.
apply linear machine to data
data | (test)data to be classified |
Implements CMachine.
Definition at line 61 of file LinearMachine.cpp.
virtual float64_t apply | ( | int32_t | vec_idx | ) | [virtual] |
get output for example "vec_idx"
Reimplemented from CMachine.
Definition at line 159 of file LinearMachine.h.
float64_t get_bias | ( | ) |
virtual CDotFeatures* get_features | ( | ) | [virtual] |
virtual const char* get_name | ( | void | ) | const [virtual] |
Returns the name of the SGSerializable instance. It MUST BE the CLASS NAME without the prefixed `C'.
Implements CSGObject.
Reimplemented in CAveragedPerceptron, CLDA, CPerceptron, CDomainAdaptationSVMLinear, CLibLinear, CSGDQN, CSubGradientSVM, CSVMLin, CSVMOcas, and CSVMSGD.
Definition at line 175 of file LinearMachine.h.
void get_w | ( | float64_t *& | dst_w, | |
int32_t & | dst_dims | |||
) |
get w
dst_w | store w in this argument | |
dst_dims | dimension of w |
Definition at line 73 of file LinearMachine.h.
bool load | ( | FILE * | srcfile | ) | [virtual] |
load from file
srcfile | file to load from |
Reimplemented from CMachine.
Definition at line 32 of file LinearMachine.cpp.
bool save | ( | FILE * | dstfile | ) | [virtual] |
save to file
dstfile | file to save to |
Reimplemented from CMachine.
Definition at line 39 of file LinearMachine.cpp.
void set_bias | ( | float64_t | b | ) |
virtual void set_features | ( | CDotFeatures * | feat | ) | [virtual] |
set features
feat | features to set |
Reimplemented in CLDA.
Definition at line 138 of file LinearMachine.h.
void set_w | ( | float64_t * | src_w, | |
int32_t | src_w_dim | |||
) |
set w
src_w | new w | |
src_w_dim | dimension of new w |
Definition at line 94 of file LinearMachine.h.
virtual void store_model_features | ( | ) | [protected, virtual] |
Stores feature data of underlying model. Does nothing because Linear machines store the normal vector of the separating hyperplane and therefore the model anyway
Reimplemented from CMachine.
Definition at line 182 of file LinearMachine.h.
bias
Definition at line 190 of file LinearMachine.h.
CDotFeatures* features [protected] |
features
Definition at line 192 of file LinearMachine.h.
w
Definition at line 188 of file LinearMachine.h.
int32_t w_dim [protected] |
dimension of w
Definition at line 186 of file LinearMachine.h.