⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtr.h

📁 某个实验事编写粗糙集智能信息处理的程序
💻 H
字号:
// Rtr.h: interface for the Rtr class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_RTR_H__D5847115_7C7A_11D7_BFF0_000AEB107F47__INCLUDED_)
#define AFX_RTR_H__D5847115_7C7A_11D7_BFF0_000AEB107F47__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxtempl.h>
class Rtr  
{
public:
	Rtr();
	virtual ~Rtr();
protected:
    char* DataStyle;        //数据集的类型(训练集or测试集)
	int DataState;          //数据集的状态(0表示未处理,1表示经过补齐,2表示经过离散化,依此类推)
	int NumOfAttribute;     //属性数目(决策+条件)
	long NumOfRecord;       //记录数目
	int NumOfRule;          //规则数目
	int NumOfRuleAttr;      //规则的条件属性数   

	char** NameOfAttribute;   //属性名称
	char** TypeOfAttribute;   //属性类型
	int**  InfTable;    //属性表
	int**  Rule;        //规则集
    int* RuleSupport;   //每条规则的支持度
	int* RuleCover;     //每条规则的覆盖度
	double* RuleConf;       //每条规则的可信度,及上面两者的比值
    int* RuleCondition;  //每条规则的状态,1表示保留,0表示被合并

	//可辨识矩阵
	int*** DiffMatrix;
    int* AttributeReductResult;     //属性约简结果,1表示保留,0表示约去
	int NumOfReduct;                //属性约简后的个数
	CArray<int,int&> CoreAttribute;             //核属性
    

	CArray<int,int&> PosOfAttr;                 //全体条件属性的正域
	double ExpClassifyPre;                      //预期的近似分类精度
	int* NumOfMissAttribute;        //每个属性的遗失属性值的记录个数
	CArray<int,int&>* DecClass;     //决策类
	int NumOfDecClass;              //决策类的个数
	int* OrderOfAttribute;          //属性重要性的顺序
	double* ImpOfAttribute;         //每个属性的重要性
protected:
    int* Marry;

	//计算每个属性的遗失属性值的记录个数
	BOOL ComputerMissNum();
	
	//执行属性约简
	BOOL AttributeReduct();

   //记录合并(除去重复的记录)
	BOOL RecordCombine();

    //判断记录i和记录j在属性集a上是否具有限制容差关系,Number表示属性集中属性的个数
	BOOL JudgeRelation(int i,int j,int *a,int Number);

    //计算近似分类精度
	BOOL ComputerClassifyPre(int *a,int Number,double& result);

	//计算决策类
	BOOL ComputerDecClass();

	//判断集合a是否不包含于集合b之中
	BOOL Contain(CArray<int,int&>& a,CArray<int,int&>& b);

	//判断集合A和集合B是否完全相同
	BOOL IsSame(CArray<int,int&>& a,int *b);

	//计算正域
	BOOL ComputerPos(int* Set,int NumOfSet,CArray<int,int&>& Pos);

	//判断两个集合时候相等
	BOOL IsEqual(CArray<int,int&>& PosOfAttr,CArray<int,int&>& Pos);

	//从候选集中找出属性重要性最重要的属性
	BOOL  FindImp(int* Candi,int CountOfCandi,int* Reduct,int CountOfReduct,int& Result);

	//释放生成规则过程中所占内存
	void DeleteMemory();

public:
	bool WriteTable2(CString filesave);
	bool WriteTable1(CString filesave);
	//将处理结果保存到文件 识别结果

    //整个算法的执行
	void Performance();

	//读取规则集
	BOOL ReadRule(CString filename);

	//测试数据
	BOOL TestData(CString filename);

	//识别数据
	BOOL DisData(CString filename);

    //从文件中读取决策表的信息,正确返回TRUE,错误返回FALSE
	BOOL ReadTable(CString filename);

	//将处理结果保存到文件 规则
	BOOL WriteTable(CString filename);
};

#endif // !defined(AFX_RTR_H__D5847115_7C7A_11D7_BFF0_000AEB107F47__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -