GenSVM
gensvm_base.h
Go to the documentation of this file.
1 
31 #ifndef GENSVM_BASE_H
32 #define GENSVM_BASE_H
33 
34 // includes
35 #include "gensvm_sparse.h"
36 
37 // type declarations
38 
57 struct GenData {
58  long K;
60  long n;
62  long m;
64  long r;
66  long *y;
68  double *Z;
71  struct GenSparse *spZ;
73  double *RAW;
75  double *Sigma;
80  double gamma;
82  double coef;
84  double degree;
86 };
87 
92 struct GenModel {
95  long K;
97  long n;
99  long m;
101  double epsilon;
103  double p;
105  double kappa;
107  double lambda;
109  double gamma;
111  double coef;
113  double degree;
115  double *V;
117  double *Vbar;
120  double *U;
122  double *UU;
124  double *Q;
126  double *H;
128  double *rho;
134  char *data_file;
140  //eigendecomposition.
141  long max_iter;
143  int status;
145 };
146 
151 struct GenWork {
152  long n;
154  long m;
156  long K;
158 
159  double *LZ;
161  double *ZB;
163  double *ZBc;
165  double *ZAZ;
167  double *tmpZAZ;
169  double *ZV;
171  double *beta;
173 };
174 
175 // function declarations
176 struct GenModel *gensvm_init_model(void);
177 void gensvm_allocate_model(struct GenModel *model);
178 void gensvm_reallocate_model(struct GenModel *model, long n, long m);
179 void gensvm_free_model(struct GenModel *model);
180 
181 struct GenData *gensvm_init_data(void);
182 void gensvm_free_data(struct GenData *data);
183 
184 struct GenWork *gensvm_init_work(struct GenModel *model);
185 void gensvm_free_work(struct GenWork *work);
186 void gensvm_reset_work(struct GenWork *work);
187 
188 #endif
long K
number of classes for the workspace
Definition: gensvm_base.h:156
double * H
Huber weighted error matrix.
Definition: gensvm_base.h:126
double * LZ
n x (m+1) working matrix for the Z'*A*Z calculation
Definition: gensvm_base.h:159
double gamma
kernel parameter for RBF, poly, and sigmoid
Definition: gensvm_base.h:80
double epsilon
stopping criterion for the IM algorithm.
Definition: gensvm_base.h:101
double training_error
loss function value after training has finished
Definition: gensvm_base.h:130
long m
number of features for the workspace
Definition: gensvm_base.h:154
double p
parameter for the L-p norm in the loss function
Definition: gensvm_base.h:103
double * UU
simplex difference matrix
Definition: gensvm_base.h:122
long K
number of classes
Definition: gensvm_base.h:58
double * ZV
n x (K-1) working matrix for the Z * V calculation
Definition: gensvm_base.h:169
double degree
kernel parameter for poly
Definition: gensvm_base.h:84
void gensvm_free_work(struct GenWork *work)
Free an allocated GenWork instance.
Definition: gensvm_base.c:277
double * Z
Definition: gensvm_base.h:68
A structure to hold the GenSVM workspace.
Definition: gensvm_base.h:151
void gensvm_free_model(struct GenModel *model)
Free allocated GenModel struct.
Definition: gensvm_base.c:211
int status
status of the model after training
Definition: gensvm_base.h:143
double * ZBc
(K-1) x (m+1) working matrix for the Z'*B calculation
Definition: gensvm_base.h:163
Header file for gensvm_sparse.c.
int weight_idx
which weights to use (1 = unit, 2 = group)
Definition: gensvm_base.h:93
struct GenWork * gensvm_init_work(struct GenModel *model)
Initialize the workspace structure.
Definition: gensvm_base.c:245
double * V
augmented weight matrix
Definition: gensvm_base.h:115
double * Q
error matrix
Definition: gensvm_base.h:124
double * ZAZ
(m+1) x (m+1) working matrix for the Z'*A*Z calculation
Definition: gensvm_base.h:165
long * y
array of class labels, 1..K
Definition: gensvm_base.h:66
struct GenModel * gensvm_init_model(void)
Initialize a GenModel structure.
Definition: gensvm_base.c:102
A structure to represent the data.
Definition: gensvm_base.h:57
A structure to represent a single GenSVM model.
Definition: gensvm_base.h:92
void gensvm_reset_work(struct GenWork *work)
Reset all matrices of a GenWork instance.
Definition: gensvm_base.c:302
double * ZB
(m+1) x (K-1) working matrix for the Z'*B calculation
Definition: gensvm_base.h:161
KernelType kerneltype
Definition: gensvm_base.h:77
double * Vbar
Definition: gensvm_base.h:117
double * tmpZAZ
(m+1) x (m+1) temporary working matrix for the Z'*A*Z calculation
Definition: gensvm_base.h:167
double * Sigma
eigenvalues from the reduced eigendecomposition
Definition: gensvm_base.h:75
char * data_file
filename of the data
Definition: gensvm_base.h:134
long n
number of instances in the dataset
Definition: gensvm_base.h:97
long max_iter
maximum number of iterations of the algorithm
Definition: gensvm_base.h:141
void gensvm_free_data(struct GenData *data)
Free allocated GenData struct.
Definition: gensvm_base.c:73
double * rho
vector of instance weights
Definition: gensvm_base.h:128
long elapsed_iter
number of elapsed iterations in training
Definition: gensvm_base.h:132
void gensvm_allocate_model(struct GenModel *model)
Allocate memory for a GenModel.
Definition: gensvm_base.c:144
long r
number of eigenvalues (width of Z)
Definition: gensvm_base.h:64
double * U
simplex matrix
Definition: gensvm_base.h:120
double kappa
parameter for the Huber hinge function
Definition: gensvm_base.h:105
long K
number of classes in the dataset
Definition: gensvm_base.h:95
double degree
kernel parameter for poly
Definition: gensvm_base.h:113
long m
number of predictors (width of RAW)
Definition: gensvm_base.h:62
KernelType
type of kernel used in training
double coef
kernel parameter for poly and sigmoid
Definition: gensvm_base.h:111
KernelType kerneltype
type of kernel used in the model
Definition: gensvm_base.h:136
double gamma
kernel parameter for RBF, poly, and sigmoid
Definition: gensvm_base.h:109
double coef
kernel parameter for poly and sigmoid
Definition: gensvm_base.h:82
void gensvm_reallocate_model(struct GenModel *model, long n, long m)
Reallocate memory for GenModel.
Definition: gensvm_base.c:172
long n
number of instances
Definition: gensvm_base.h:60
struct GenData * gensvm_init_data(void)
Initialize a GenData structure.
Definition: gensvm_base.c:45
long n
number of instances for the workspace
Definition: gensvm_base.h:152
long m
number of predictor variables in the dataset
Definition: gensvm_base.h:99
double * RAW
augmented raw data matrix
Definition: gensvm_base.h:73
double kernel_eigen_cutoff
cutoff value for the ratio of eigenvalues in the reduced
Definition: gensvm_base.h:138
struct GenSparse * spZ
sparse representation of the augmented data matrix
Definition: gensvm_base.h:71
double * beta
K-1 working vector for a row of the B matrix.
Definition: gensvm_base.h:171
double lambda
regularization parameter in the loss function
Definition: gensvm_base.h:107
A structure to represent a sparse matrix in CSR format.
Definition: gensvm_sparse.h:55