00001 #ifndef Impala_Core_Training_Classifier_h 00002 #define Impala_Core_Training_Classifier_h 00003 00004 #include "Util/PropertySet.h" 00005 #include "Core/Table/SimilarityTableSet.h" 00006 #include "Core/Table/ScoreTable.h" 00007 00008 namespace Impala 00009 { 00010 namespace Core 00011 { 00012 namespace Training 00013 { 00014 00015 class TrainDataSrc; 00016 00027 class Classifier 00028 { 00029 public: 00030 00031 virtual 00032 ~Classifier() 00033 { 00034 } 00035 00036 virtual void 00037 Train(Util::PropertySet* properties, TrainDataSrc* data) = 0; 00038 00039 // testing / evaluation 00040 virtual Table::ScoreTable* 00041 Predict(TrainDataSrc* data) = 0; 00042 00043 // Only needed for Svm, but the boundary with Svm is not clear anyway... 00044 virtual void 00045 OverrideModelOptions(Util::PropertySet* properties) 00046 { 00047 } 00048 00049 }; 00050 00051 00052 }//namespace Core 00053 }//namespace Training 00054 }//namespace Impala 00055 00056 #endif 00057