📄 qualityrulefilterloop.h
字号:
//-------------------------------------------------------------------
// Author........: Aleksander 豩rn/Thomas 舋otnes
// Date..........: 981026
// Description...:
// Revisions.....:
//===================================================================
#ifndef __QUALITYRULEFILTERLOOP_H__
#define __QUALITYRULEFILTERLOOP_H__
#include <copyright.h>
#include <kernel/algorithms/qualityrulefilter.h>
#include <kernel/algorithms/voter.h>
#include <kernel/basic/set.h>
//-------------------------------------------------------------------
// Class.........: QualityRuleFilterLoop
// Author........: Aleksander 豩rn/Thomas 舋otnes
// Date..........:
// Description...: Performs a simple filter-evaluate loop and logs
// the performance results at each iteration.
// Revisions.....:
//===================================================================
class QualityRuleFilterLoop : public QualityRuleFilter {
public:
//- Type definitions...............................................
typedef Map(float, Vector(int)) QualityMap;
//- Enumerated types...............................................
enum Resolution {RESOLUTION_FIXED, RESOLUTION_DYNAMIC};
//- Textual representations........................................
static String GetString(Resolution resolution);
protected:
//- Parameters.....................................................
String filename_; // Location of log file.
Handle<DecisionTable> table_; // Decision table to apply rules to.
Handle<Voter> classifier_; // The algorithm that actually applies the rules.
String focus_class_; // Focus class for ROC curve generation.
float certainty_; // Certainty for fallback.
Resolution resolution_; // Resolution type.
int fixed_resolution_; // Value for fixed resolution.
float dynamic_resolution_; // Percentage for dynamic resolution.
int resolution_limit_; // Maximum rule step.
protected:
//- Helper methods.................................................
bool SaveLogHeader(ofstream &stream, const Rules &rules, const QualityMap &qualitymap, const STLSet(int) &undefined) const;
bool SaveLogEntry(ofstream &stream, const Vector(float) &entry) const;
int GetRuleStep(int no_rules) const;
bool InitializeClassifier(const Rules *rules);
bool InitializeFireMatrix(const Rules &rules, bool masked, Vector(Vector(int)) &matrix) const;
bool InitializeQualityMap(const Vector(float) &qualities, QualityMap &qualitymap, STLSet(int) &undefined) const;
bool ComputeFireIntersection(const STLSet(int) ¤t, const Vector(int) &fires, Vector(int) &intersection) const;
public:
//- Constructors/destructor........................................
QualityRuleFilterLoop();
virtual ~QualityRuleFilterLoop();
//- Methods inherited from Identifier..............................
DECLAREIDMETHODS()
//- Methods inherited from Algorithm...............................
virtual String GetParameters() const;
virtual bool SetParameter(const String &keyword, const String &value);
virtual bool GetOutputFilenames(Vector(String) &filenames) const;
virtual Structure *Apply(Structure &structure) const;
//- Parameter methods..............................................
const Handle<DecisionTable> GetDecisionTable() const {return table_;}
Handle<DecisionTable> GetDecisionTable() {return table_;}
bool SetDecisionTable(const Handle<DecisionTable> table) {table_ = table; return true;}
const Handle<Voter> GetClassifier() const {return classifier_;}
Handle<Voter> GetClassifier() {return classifier_;}
bool SetClassifier(const Handle<Voter> classifier) {classifier_ = classifier; return true;}
const String &GetFilename() const {return filename_;}
bool SetFilename(const String &filename) {filename_ = filename; return true;}
const String &GetROCFocusClass() const {return focus_class_;}
bool SetROCFocusClass(const String &focus_class) {focus_class_ = focus_class; return true;}
float GetROCFallbackCertainty() const {return certainty_;}
bool SetROCFallbackCertainty(float certainty) {certainty_ = certainty; return true;}
Resolution GetResolution() const {return resolution_;}
bool SetResolution(Resolution resolution) {resolution_ = resolution; return true;}
float GetDynamicResolution() const {return dynamic_resolution_;}
bool SetDynamicResolution(float resolution) {dynamic_resolution_ = resolution; return true;}
int GetFixedResolution() const {return fixed_resolution_;}
bool SetFixedResolution(int resolution) {fixed_resolution_ = resolution; return true;}
int GetResolutionLimit() const {return resolution_limit_;}
bool SetResolutionLimit(int limit) {resolution_limit_ = limit; return true;}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -