00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef ERROR_MEASURE_H
00019 #define ERROR_MEASURE_H
00020
00021 #include "Scaling.h"
00022
00023 class ErrorMeasureImpl;
00024 class Sym;
00025 class Dataset;
00026
00027 class ErrorMeasure {
00028
00029 ErrorMeasureImpl* pimpl;
00030
00031 public :
00032
00033 enum measure {
00034 absolute,
00035 mean_squared,
00036 mean_squared_scaled,
00037 };
00038
00039 struct result {
00040 double error;
00041 Scaling scaling;
00042
00043 result();
00044 bool valid() const;
00045 };
00046
00047 ErrorMeasure(const Dataset& data, double train_perc, measure meas = mean_squared);
00048
00049 ~ErrorMeasure();
00050 ErrorMeasure(const ErrorMeasure& that);
00051 ErrorMeasure& operator=(const ErrorMeasure& that);
00052
00053 result calc_error(Sym sym);
00054
00055 std::vector<result> calc_error(const std::vector<Sym>& sym);
00056
00057 double worst_performance() const;
00058 };
00059
00060 #endif
00061