📄 reduct3.h
字号:
// Reduct3.h: interface for the CReduct3 class.
//算法见书:142页
/*-------------------------------------------------------------
文件名: reduct3.h
特征选择属性约简头文件
作者: Kylin Li
创建时间: 2000/12
2001.11.10 修改
1. 修改3个主要成员函数的可见性,把InitTable(),recudt(),
WriteFile() 由public改为 protected
----------------------------------------------------------------*/
#if !defined(AFX_REDUCT3_H__BC8A9921_CF9A_11D4_B00D_0080C84A0D59__INCLUDED_)
#define AFX_REDUCT3_H__BC8A9921_CF9A_11D4_B00D_0080C84A0D59__INCLUDED_
#include "Table.h"
#include "InfoTable.h"
#include "Set.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CReduct3 :public CTable
{
public:
CReduct3();
virtual ~CReduct3();
protected:
bool InitTable(CString txtname); //初始化数据表
bool reduct();
bool WriteFile(CString txtname);
#ifdef _DEBUG //一个临时函数,往集合的子集中添加元素
void output(); //输出,为调试用
#endif //_DEBUG
private:
InfoTable *InfoK; //存放每个属性值的信息容量
CSet<CSet<int> > devset; //保存所有的决策分类
double getVD(int attr,int i,int j); //获取值差(属性attr,样本i,j)
double getWFD(int i,int j,int KK); //样本i和j之间的加权特征差
int getK(void); //计算条件属性和决策属性的相关程度,只计算了
//正域的部分占全域的比例 计算相关程度(噪音程度为0)
double getCM(int k); // 属性k的上下文价值
void InitInfoK();//求得各属性的信息容量用以填充infoK中的内容
//根据属性AttrIndex分类,分类集合为set,每个类有一个标号用AttrIndex属性值表示,
//类内的元素为纪录号.例如某个类标号为2,类内的元素包括3,5,6,
//则说明第3,5,6条记录的AttrIndex属性值为2
void Classify(int AttrIndex,CSet<CSet<int> >& set);
//根据用户选择的条件属性对决策表进行分类,得到条件分类集合保存在set中
bool ClassifyAttr(CSet<CSet<int> >& set);
};
#endif // !defined(AFX_REDUCT3_H__BC8A9921_CF9A_11D4_B00D_0080C84A0D59__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -