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

📄 zssentropyscaler.h

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

#if !defined(AFX_ZSSENTROPYSCALER_H__74E15F4D_20EC_4B7E_8E52_5F8D90F3AE7A__INCLUDED_)
#define AFX_ZSSENTROPYSCALER_H__74E15F4D_20EC_4B7E_8E52_5F8D90F3AE7A__INCLUDED_

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

#include "ZssScaler.h"

class CZssEntropyScaler : public CZssScaler
{
private:
	typedef struct
	{
		double d_value;//属性值
		int i_num;//该属性值出现次数
	}TAGSTATINFO;
public:
	BOOL EntropyScaler(CString str_s_file, CString str_d_file);
	CZssEntropyScaler();
	virtual ~CZssEntropyScaler();
	void AddToArray(double d_val,CArray<TAGSTATINFO,TAGSTATINFO>&statinfo);
	//将一个属性值加入到统计信息的数组中在加入的过程中已经排序(从小到大)

private:
    void GetStatInfo(int i_attr, CArray<TAGSTATINFO,TAGSTATINFO> &statinfo, FILE *pfile, fpos_t file_pos);
     //得到一个指定属性的统计信息即属性的值和该属性值出现的次数
     //i_attr:是第几个属性
     //statinfo:保存统计信息
	void GetBreakPoint_InNonStrAttr(CArray<float,float> &breakpoint_array,CArray<TAGSTATINFO,TAGSTATINFO> &statinfo, 
		int low, int high);//基于信息熵来求断点,采用递归的方法来求
	float GetEntopy(CArray<TAGSTATINFO,TAGSTATINFO> &statinfo, int i_break,int low, int high, int total);
    //计算信息以i_break位置为断点时的信息熵值
	BOOL CanStop(CArray<TAGSTATINFO,TAGSTATINFO> &statinfo,int i_break,int low, int high);
    //看是否满足递归停止条件(stop criteria)
	int GetTotal(CArray<TAGSTATINFO,TAGSTATINFO> &statinfo, int low, int high);
	//计算实例个数
	float GetEnt(CArray<TAGSTATINFO,TAGSTATINFO> &statinfo, int low, int high,int total);
	//计算Ent(熵)

};

#endif // !defined(AFX_ZSSENTROPYSCALER_H__74E15F4D_20EC_4B7E_8E52_5F8D90F3AE7A__INCLUDED_)

⌨️ 快捷键说明

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