📄 ruleevaluator.h
字号:
//-------------------------------------------------------------------
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Revisions.....:
//===================================================================
#ifndef __RULEEVALUATOR_H__
#define __RULEEVALUATOR_H__
#include <copyright.h>
#include <kernel/basic/referent.h>
#include <kernel/basic/macros.h>
#include <kernel/basic/vector.h>
//-------------------------------------------------------------------
// Class prototypes.
//===================================================================
class DecisionTable;
class Rule;
//-------------------------------------------------------------------
// Class.........: RuleEvaluator
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Abstract helper class.
// Computes the "quality" of a rule.
// Revisions.....:
//===================================================================
class RuleEvaluator : public Referent {
protected:
//- Members variables for internal use.............................
Vector(int) decisions_; // Decision classes in originating table. For computing coverage.
Vector(int) cardinalities_; // Cardinalities for each decision class. For computing coverage.
int table_cardinality_; // |U|, cardinality of originating table. For computing contingency table.
protected:
//- Constructors/destructor........................................
RuleEvaluator();
//- Helper methods.................................................
float GetAccuracy(const Rule &rule, int i) const;
float GetCoverage(const Rule &rule, int i) const;
bool GetContingencyTable(const Rule &rule, int position, int &a, int &b, int &c, int &d, int &B, int &A, int &K) const;
//- New virtual methods............................................
virtual float Evaluate(const Rule &rule, int i) const = 0;
virtual float EvaluateDominating(const Rule &rule) const;
virtual float EvaluateBest(const Rule &rule) const;
public:
//- Constructors/destructor........................................
RuleEvaluator(const DecisionTable &table);
virtual ~RuleEvaluator();
//- Rule evaluation................................................
virtual float Evaluate(const Rule &rule) const;
};
//-------------------------------------------------------------------
// Class.........: MichalskiRuleEvaluator
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Helper class.
// Revisions.....:
//===================================================================
class MichalskiRuleEvaluator : public RuleEvaluator {
protected:
//- Constructors/destructor........................................
MichalskiRuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule, int i) const;
//- Parameters.....................................................
float w1_; // Accuracy weighting.
float w2_; // Coverage weighting.
public:
//- Constructors/destructor........................................
MichalskiRuleEvaluator(const DecisionTable &table, float w1, float w2);
virtual ~MichalskiRuleEvaluator();
};
//-------------------------------------------------------------------
// Class.........: TorgoRuleEvaluator
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Helper class.
// Revisions.....:
//===================================================================
class TorgoRuleEvaluator : public RuleEvaluator {
protected:
//- Constructors/destructor........................................
TorgoRuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule, int i) const;
public:
//- Constructors/destructor........................................
TorgoRuleEvaluator(const DecisionTable &table);
virtual ~TorgoRuleEvaluator();
};
//-------------------------------------------------------------------
// Class.........: BrazdilRuleEvaluator
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Helper class.
// Revisions.....:
//===================================================================
class BrazdilRuleEvaluator : public RuleEvaluator {
protected:
//- Constructors/destructor........................................
BrazdilRuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule, int i) const;
public:
//- Constructors/destructor........................................
BrazdilRuleEvaluator(const DecisionTable &table);
virtual ~BrazdilRuleEvaluator();
};
//-------------------------------------------------------------------
// Class.........: PearsonRuleEvaluator
// Author........: Thomas 舋otnes
// Date..........: 1998-10-29
// Description...: Helper class.
// Revisions.....:
//===================================================================
class PearsonRuleEvaluator : public RuleEvaluator {
protected:
//- Constructors/destructor........................................
PearsonRuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule, int i) const;
public:
//- Constructors/destructor........................................
PearsonRuleEvaluator(const DecisionTable &table);
virtual ~PearsonRuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule) const;
};
//-------------------------------------------------------------------
// Class.........: G2RuleEvaluator
// Author........: Thomas 舋otnes
// Date..........: 981029
// Description...: Helper class.
// Revisions.....:
//===================================================================
class G2RuleEvaluator : public RuleEvaluator {
protected:
//- Constructors/destructor........................................
G2RuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule, int i) const;
public:
//- Constructors/destructor........................................
G2RuleEvaluator(const DecisionTable &table);
virtual ~G2RuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule) const;
};
//-------------------------------------------------------------------
// Class.........: JRuleEvaluator
// Author........: Thomas 舋otnes/Aleksander 豩rn
// Date..........: 981029
// Description...: Helper class.
// Revisions.....:
//===================================================================
class JRuleEvaluator : public G2RuleEvaluator {
protected:
//- Constructors/destructor........................................
JRuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule, int i) const;
public:
//- Constructors/destructor........................................
JRuleEvaluator(const DecisionTable &table);
virtual ~JRuleEvaluator();
};
//-------------------------------------------------------------------
// Class.........: CohenRuleEvaluator
// Author........: Thomas 舋otnes
// Date..........: 981029
// Description...: Helper class.
// Revisions.....:
//===================================================================
class CohenRuleEvaluator : public RuleEvaluator {
protected:
//- Constructors/destructor........................................
CohenRuleEvaluator();
//- Methods inherited from RuleEvaluator...........................
virtual float Evaluate(const Rule &rule, int i) const;
public:
//- Constructors/destructor........................................
CohenRuleEvaluator(const DecisionTable &table);
virtual ~CohenRuleEvaluator();
};
//-------------------------------------------------------------------
// Class.........: ColemanRuleEvaluator
// Author........: Thomas 舋otnes
// Date..........: 981029
// Description...: Helper class.
// Revisions.....: A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -