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 virtual ~Classifier() 00031 { 00032 } 00033 00034 virtual void Train(Util::PropertySet* properties, TrainDataSrc* data) = 0; 00035 00036 // testing / evaluation 00037 virtual Table::ScoreTable* Predict(TrainDataSrc* data) = 0; 00038 00039 // I/O 00040 virtual void LoadModel(const std::string& name, Util::Database* db) = 0; 00041 virtual void SaveModel(const std::string& name, Util::Database* db) = 0; 00042 }; 00043 00044 00045 }//namespace Core 00046 }//namespace Training 00047 }//namespace Impala 00048 00049 #endif 00050