GenSVM
gensvm_task.c
Go to the documentation of this file.
1 
27 #include "gensvm_task.h"
28 
39 {
40  struct GenTask *t = Malloc(struct GenTask, 1);
41 
42  t->kerneltype = K_LINEAR;
43  t->weight_idx = 1;
44  t->folds = 10;
45  t->ID = -1;
46  t->p = 1.0;
47  t->kappa = 0.0;
48  t->lambda = 1.0;
49  t->epsilon = 1e-6;
50  t->gamma = 1.0;
51  t->coef = 0.0;
52  t->degree = 2.0;
53  t->train_data = NULL;
54  t->test_data = NULL;
55  t->performance = 0.0;
56  t->max_iter = 1000000000;
57 
58  return t;
59 }
60 
71 void gensvm_free_task(struct GenTask *t)
72 {
73  free(t);
74  t = NULL;
75 }
76 
88 struct GenTask *gensvm_copy_task(struct GenTask *t)
89 {
90  struct GenTask *nt = gensvm_init_task();
91  nt->weight_idx = t->weight_idx;
92  nt->folds = t->folds;
93  nt->ID = t->ID;
94  nt->p = t->p;
95  nt->kappa = t->kappa;
96  nt->lambda = t->lambda;
97  nt->epsilon = t->epsilon;
98  nt->train_data = t->train_data;
99  nt->test_data = t->test_data;
100  nt->performance = t->performance;
101 
102  nt->kerneltype = t->kerneltype;
103  nt->gamma = t->gamma;
104  nt->coef = t->coef;
105  nt->degree = t->degree;
106 
107  nt->max_iter = t->max_iter;
108 
109  return nt;
110 }
111 
122 void gensvm_task_to_model(struct GenTask *task, struct GenModel *model)
123 {
124  // copy basic model parameters
125  model->weight_idx = task->weight_idx;
126  model->epsilon = task->epsilon;
127  model->p = task->p;
128  model->kappa = task->kappa;
129  model->lambda = task->lambda;
130 
131  // copy kernel parameters
132  model->kerneltype = task->kerneltype;
133  model->gamma = task->gamma;
134  model->coef = task->coef;
135  model->degree = task->degree;
136 
137  // copy other parameters
138  model->max_iter = task->max_iter;
139 }
long folds
number of folds in cross validation
Definition: gensvm_task.h:60
double coef
coef parameter for the GenModel
Definition: gensvm_task.h:74
double epsilon
stopping criterion for the IM algorithm.
Definition: gensvm_base.h:101
long ID
numeric id of the task in the queue
Definition: gensvm_task.h:62
void gensvm_task_to_model(struct GenTask *task, struct GenModel *model)
Copy parameters from GenTask to GenModel.
Definition: gensvm_task.c:122
double p
parameter for the L-p norm in the loss function
Definition: gensvm_base.h:103
void gensvm_free_task(struct GenTask *t)
Free the GenTask struct.
Definition: gensvm_task.c:71
double performance
performance after cross validation
Definition: gensvm_task.h:84
int weight_idx
which weights to use (1 = unit, 2 = group)
Definition: gensvm_base.h:93
#define Malloc(type, size)
Definition: gensvm_memory.h:48
double gamma
gamma parameter for the GenModel
Definition: gensvm_task.h:72
KernelType kerneltype
kerneltype parameter for the GenModel
Definition: gensvm_task.h:56
struct GenData * test_data
pointer to the test data (if any)
Definition: gensvm_task.h:82
A structure to represent a single GenSVM model.
Definition: gensvm_base.h:92
struct GenTask * gensvm_copy_task(struct GenTask *t)
Deepcopy a GenTask struct.
Definition: gensvm_task.c:88
long max_iter
maximum number of iterations of the algorithm
Definition: gensvm_base.h:141
double degree
degree parameter for the GenModel
Definition: gensvm_task.h:76
double lambda
lambda parameter for the GenModel
Definition: gensvm_task.h:68
A structure for a single task in the queue.
Definition: gensvm_task.h:55
double kappa
parameter for the Huber hinge function
Definition: gensvm_base.h:105
long max_iter
maximum number of iterations of the algorithm
Definition: gensvm_task.h:78
double degree
kernel parameter for poly
Definition: gensvm_base.h:113
struct GenTask * gensvm_init_task(void)
Initialize a GenTask structure.
Definition: gensvm_task.c:38
double kappa
kappa parameter for the GenModel
Definition: gensvm_task.h:66
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
Header file for gensvm_task.c.
double gamma
kernel parameter for RBF, poly, and sigmoid
Definition: gensvm_base.h:109
double epsilon
epsilon parameter for the GenModel
Definition: gensvm_task.h:70
double p
p parameter for the GenModel
Definition: gensvm_task.h:64
double lambda
regularization parameter in the loss function
Definition: gensvm_base.h:107
struct GenData * train_data
pointer to the training data
Definition: gensvm_task.h:80
int weight_idx
weight_idx parameter for the GenModel
Definition: gensvm_task.h:58