72e683a1edeaa49117084796c91d04a2da67bd82
[universe.git] / approximer.h
1
2 // Written and (C) by Francois Fleuret
3 // Contact <francois.fleuret@idiap.ch> for comments & bug reports
4
5 #ifndef APPROXIMER_H
6 #define APPROXIMER_H
7
8 #include <iostream>
9 #include <cmath>
10
11 using namespace std;
12
13 #include "misc.h"
14
15 class MappingApproximer {
16   int _max_nb_weak_learners, _nb_weak_learners;
17   int *_indexes;
18   scalar_t *_thresholds;
19   scalar_t *_weights;
20   int _input_size, _nb_samples;
21   scalar_t *_input, *_sample_weights;
22   int *_input_sorted_index;
23 public:
24   scalar_t *_outputs_on_samples;
25   MappingApproximer(int size);
26   ~MappingApproximer();
27   void load(istream &is);
28   void save(ostream &os);
29   void set_learning_input(int input_size, int nb_samples, scalar_t *input, scalar_t *sample_weights);
30   void learn_one_step(scalar_t *target);
31   scalar_t predict(scalar_t *input);
32 };
33
34 void test_approximer();
35
36 #endif