aboutsummaryrefslogtreecommitdiff
path: root/include/msvmmaj_train_dataset.h
blob: fdcdb4c6144d4d48b3503345d7f391f439728a5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef MSVMMAJ_TRAIN_DATASET_H
#define MSVMMAJ_TRAIN_DATASET_H

#include "globals.h"
#include "types.h"

struct Task {
	KernelType kerneltype;
	int weight_idx;
	long folds;
	long ID;
	double p;
	double kappa;
	double lambda;
	double epsilon;
	double *kernel_param;
	struct MajData *train_data;
	struct MajData *test_data;
	double performance;
};

struct Queue {
	struct Task **tasks;
	long N;
	long i;
};

struct Training {
	TrainType traintype;
	long repeats;
	long folds;
	long Np;
	long Nl;
	long Nk;
	long Ne;
	long Nw;
	int *weight_idxs;
	double *ps;
	double *lambdas;
	double *kappas;
	double *epsilons;
	char *train_data_file;
	char *test_data_file;
};

void make_queue(struct Training *training, struct Queue *queue,
		struct MajData *train_data, struct MajData *test_data);

struct Task *get_next_task(struct Queue *q);
void start_training_tt(struct Queue *q);
void start_training_cv(struct Queue *q);
void free_queue(struct Queue *q);

void consistency_repeats(struct Queue *q, long repeats, TrainType traintype);

double cross_validation(struct MajModel *model, struct MajModel *seed_model,
		struct MajData *data, long folds);

void make_model_from_task(struct Task *task, struct MajModel *model);
void copy_model(struct MajModel *from, struct MajModel *to);
#endif