00001 #ifndef _theplu_yat_classifier_supervisedclassifier_
00002 #define _theplu_yat_classifier_supervisedclassifier_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <cstddef>
00029
00030 namespace theplu {
00031 namespace yat {
00032
00033 namespace utility {
00034 class Matrix;
00035 }
00036
00037 namespace classifier {
00038
00039 class MatrixLookup;
00040 class MatrixLookupWeighted;
00041 class Target;
00042
00056 class SupervisedClassifier
00057 {
00058
00059 public:
00063 SupervisedClassifier(void);
00064
00065
00069 virtual ~SupervisedClassifier(void);
00070
00071
00087 virtual SupervisedClassifier*
00088 make_classifier() const =0;
00089
00090
00108 virtual void predict(const MatrixLookup& data, utility::Matrix& result) const =0;
00109
00110
00117 virtual void predict(const MatrixLookupWeighted& data, utility::Matrix& result) const =0;
00118
00119
00130 virtual void train(const MatrixLookup& data, const Target& targets)=0;
00131
00139 virtual void train(const MatrixLookupWeighted& data, const Target& targets)=0;
00140
00141 };
00142
00143 }}}
00144
00145 #endif