📄 myrulefilter.h
字号:
//-------------------------------------------------------------------
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Revisions.....:
//===================================================================
#ifndef __MYRULEFILTER_H__
#define __MYRULEFILTER_H__
#include <copyright.h>
#include <kernel/algorithms/rulefilter.h>
//-------------------------------------------------------------------
// Class.........: MyRuleFilter
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Description...: Filters away rules based on a compound
// criterion of support, accuracy and decision.
// Comments......:
// Revisions.....:
//===================================================================
class MyRuleFilter : public RuleFilter {
public:
//- Enumerated types...............................................
enum Filtering {FILTERING_RHS_SUPPORT = 1, FILTERING_RHS_ACCURACY = 2,
FILTERING_DECISION = 4, FILTERING_LHS_LENGTH = 8,
FILTERING_CONDITION = 16, FILTERING_RHS_STABILITY = 32,
FILTERING_RHS_COVERAGE = 64};
enum Connective {CONNECTIVE_OR, CONNECTIVE_AND};
//- Textual representations........................................
static String GetString(Filtering filtering);
static String GetString(Connective connective);
protected:
//- Parameters.....................................................
int filtering_; // Pruning strategy/criterion.
Connective connective_; // Connective between terms.
int decision_; // Remove rules with this decision value.
bool is_dominating_; // The decision value must be the dominating one.
int lower_rhs_support_threshold_; // Remove rule if support not above this threshold and..
int upper_rhs_support_threshold_; // ...not below this threshold.
float lower_rhs_acc_threshold_; // Remove rule if accuracy not above this threshold and..
float upper_rhs_acc_threshold_; // ...not below this threshold.
float lower_rhs_cov_threshold_; // Remove rule if coverage not above this threshold and..
float upper_rhs_cov_threshold_; // ...not below this threshold.
double lower_rhs_stab_threshold_; // Remove rule if stability not above this threshold and..
double upper_rhs_stab_threshold_; // ...not below this threshold.
int lower_lhs_length_threshold_; // Remove rule if length not above this threshold and..
int upper_lhs_length_threshold_; // ...not below this threshold.
int value_; // Remove rule if it has this value...
int attribute_; // ...for this condition attribute.
protected:
//- Methods inherited from Filter..................................
virtual bool Remove(const Structures &structures, int i) const;
public:
//- Constructors/destructor........................................
MyRuleFilter();
virtual ~MyRuleFilter();
//- Methods inherited from Identifier..............................
DECLAREIDMETHODS()
//- Methods inherited from Algorithm...............................
virtual String GetParameters() const;
virtual bool SetParameter(const String &keyword, const String &value);
//- Parameter management...........................................
int GetFilteringStrategy() const {return filtering_;}
bool SetFilteringStrategy(int filtering) {filtering_ = filtering; return true;}
Connective GetFilteringConnective() const {return connective_;}
bool SetFilteringConnective(Connective connective) {connective_ = connective; return true;}
int GetDecision() const {return decision_;}
bool SetDecision(int decision) {decision_ = decision; return true;}
bool IsDominatingDecision() const {return is_dominating_;}
bool IsDominatingDecision(bool is_dominating) {is_dominating_ = is_dominating; return true;}
int GetLowerRHSSupportThreshold() const {return lower_rhs_support_threshold_;}
bool SetLowerRHSSupportThreshold(int lower_rhs_support_threshold) {lower_rhs_support_threshold_ = lower_rhs_support_threshold; return true;}
int GetUpperRHSSupportThreshold() const {return upper_rhs_support_threshold_;}
bool SetUpperRHSSupportThreshold(int upper_rhs_support_threshold) {upper_rhs_support_threshold_ = upper_rhs_support_threshold; return true;}
float GetLowerRHSAccuracyThreshold() const {return lower_rhs_acc_threshold_;}
bool SetLowerRHSAccuracyThreshold(float lower_rhs_acc_threshold) {lower_rhs_acc_threshold_ = lower_rhs_acc_threshold; return true;}
float GetUpperRHSAccuracyThreshold() const {return upper_rhs_acc_threshold_;}
bool SetUpperRHSAccuracyThreshold(float upper_rhs_acc_threshold) {upper_rhs_acc_threshold_ = upper_rhs_acc_threshold; return true;}
float GetLowerRHSCoverageThreshold() const {return lower_rhs_cov_threshold_;}
bool SetLowerRHSCoverageThreshold(float lower_rhs_cov_threshold) {lower_rhs_cov_threshold_ = lower_rhs_cov_threshold; return true;}
float GetUpperRHSCoverageThreshold() const {return upper_rhs_cov_threshold_;}
bool SetUpperRHSCoverageThreshold(float upper_rhs_cov_threshold) {upper_rhs_cov_threshold_ = upper_rhs_cov_threshold; return true;}
double GetLowerRHSStabilityThreshold() const {return lower_rhs_stab_threshold_;}
bool SetLowerRHSStabilityThreshold(double lower_rhs_stab_threshold) {lower_rhs_stab_threshold_ = lower_rhs_stab_threshold; return true;}
double GetUpperRHSStabilityThreshold() const {return upper_rhs_stab_threshold_;}
bool SetUpperRHSStabilityThreshold(double upper_rhs_stab_threshold) {upper_rhs_stab_threshold_ = upper_rhs_stab_threshold; return true;}
int GetLowerLHSLengthThreshold() const {return lower_lhs_length_threshold_;}
bool SetLowerLHSLengthThreshold(int lower_lhs_length_threshold) {lower_lhs_length_threshold_ = lower_lhs_length_threshold; return true;}
int GetUpperLHSLengthThreshold() const {return upper_lhs_length_threshold_;}
bool SetUpperLHSLengthThreshold(int upper_lhs_length_threshold) {upper_lhs_length_threshold_ = upper_lhs_length_threshold; return true;}
int GetAttribute() const {return attribute_;}
bool SetAttribute(int attribute) {attribute_ = attribute; return true;}
int GetAttributeValue() const {return value_;}
bool SetAttributeValue(int value) {value_ = value; return true;}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -