📄 qualityrulefilter.h
字号:
//-------------------------------------------------------------------
// Author........: Thomas 舋otnes/Aleksander 豩rn
// Date..........: 981110
// Description...:
// Revisions.....:
//===================================================================
#ifndef __QUALITYRULEFILTER_H__
#define __QUALITYRULEFILTER_H__
#include <copyright.h>
#include <kernel/algorithms/rulefilter.h>
#include <kernel/algorithms/ruleevaluator.h>
#include <kernel/structures/rules.h>
//-------------------------------------------------------------------
// Class.........: QualityRuleFilter
// Author........: Thomas 舋otnes/Aleksander 豩rn
// Date..........: 981110
// Description...: Filters away rules according to selected
// quality measures.
// Comments......:
// Revisions.....:
//===================================================================
class QualityRuleFilter : public RuleFilter {
public:
//- Enumerated types...............................................
enum Filtering {FILTERING_MICHALSKI, FILTERING_TORGO, FILTERING_BRAZDIL,
FILTERING_PEARSON, FILTERING_G2, FILTERING_J,
FILTERING_COHEN, FILTERING_COLEMAN, FILTERING_KONONENKO};
//- Textual representations........................................
static String GetString(Filtering filtering);
protected:
//- Parameters.....................................................
Filtering filtering_; // Pruning strategy/criterion.
float weight_; // For Michalski measure.
ColemanRuleEvaluator::Normalization normalization_; // For Coleman measure.
bool use_upper_;
bool use_lower_;
float upper_;
float lower_;
bool remove_undefined_;
Handle<RuleEvaluator> evaluator_;
protected:
//- Methods inherited from Filter..................................
virtual bool Remove(const Structures &structures, int i) const;
public:
//- Constructors/destructor........................................
QualityRuleFilter();
virtual ~QualityRuleFilter();
//- Methods inherited from Identifier..............................
DECLAREIDMETHODS()
//- Methods inherited from Algorithm...............................
virtual String GetParameters() const;
virtual bool SetParameter(const String &keyword, const String &value);
virtual Structure *Apply(Structure &structure) const;
//- Parameter management...........................................
Filtering GetFilteringStrategy() const {return filtering_;}
bool SetFilteringStrategy(Filtering filtering) {filtering_ = filtering; return true;}
float GetMichalskiWeight() const {return weight_;}
bool SetMichalskiWeight(float weight) {weight_ = weight; return true;}
ColemanRuleEvaluator::Normalization GetColemanNormalization() const {return normalization_;}
bool SetColemanNormalization(ColemanRuleEvaluator::Normalization normalization) {normalization_ = normalization; return true;}
bool UseUpper() const {return use_upper_;}
bool UseUpper(bool use) {use_upper_ = use; return true;}
bool UseLower() const {return use_lower_;}
bool UseLower(bool use) {use_lower_ = use; return true;}
float GetUpper() const {return upper_;}
bool SetUpper(float value) {upper_ = value; return true;}
float GetLower() const {return lower_;}
bool SetLower(float value) {lower_ = value; return true;}
bool RemoveUndefinedRules() const {return remove_undefined_;}
bool RemoveUndefinedRules(bool remove) {remove_undefined_ = remove; return true;}
//- Evaluator creation.............................................
Handle<RuleEvaluator> CreateEvaluator(const Structure &structure) const;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -