00001 #ifndef Impala_Core_Training_ApplyConceptsHelperFeatures_h 00002 #define Impala_Core_Training_ApplyConceptsHelperFeatures_h 00003 00004 #include "Core/Training/ApplyConceptsHelper.h" 00005 //#include "Core/Table/Read.h" 00006 #include "Core/Training/TrainDataSrcFeatureTable.h" 00007 #include "Persistency/SvmRepository.h" 00008 00009 namespace Impala 00010 { 00011 namespace Core 00012 { 00013 namespace Training 00014 { 00015 00016 00017 class ApplyConceptsHelperFeatures : public ApplyConceptsHelper 00018 { 00019 public: 00020 00021 ApplyConceptsHelperFeatures() 00022 { 00023 mFeatures = 0; 00024 } 00025 00026 void 00027 Initialise(Database::RawDataSet* annoSet, const ModelLocator& modelLoc) 00028 { 00029 mFeatures = 0; 00030 } 00031 00032 FeatureTable* 00033 LoadFeatures(const FeatureLocator& featLoc) 00034 { 00035 if (mFeatures) 00036 ILOG_ERROR("programming error"); 00037 mFeatures = Persistency::FeatureTableRepository().Get(featLoc); 00038 return mFeatures; 00039 } 00040 00041 Table::ScoreTable* 00042 Predict(const ModelLocator& loc) 00043 { 00044 Training::Classifier* classifier = Persistency::SvmRepository().Get(loc); 00045 TrainDataSrcFeatureTable dataSrc(0, mFeatures); 00046 Table::ScoreTable* scores = classifier->Predict(&dataSrc); 00047 delete classifier; 00048 return scores; 00049 } 00050 00051 void 00052 UnloadFeatures() 00053 { 00054 delete mFeatures; 00055 mFeatures = 0; 00056 } 00057 00058 private: 00059 00060 FeatureTable* mFeatures; 00061 00062 ILOG_VAR_DEC; 00063 }; 00064 00065 ILOG_VAR_INIT(ApplyConceptsHelperFeatures, Impala.Core.Training); 00066 00067 } //namespace 00068 } //namespace 00069 } //namespace 00070 00071 #endif