global.h

来自「该程序包实现了几个常用的模式识别分类器算法」· C头文件 代码 · 共 159 行

H
159
字号
#ifndef _GLOBAL_H
#define _GLOBAL_H 1
#include "svm.h"
#include "Matrix.h"

enum   states{error,noerror,nosamesize,nopdataspace};
typedef double DOUBLE; 

class   CMatrix
{
	public:
	CMatrix();
	~CMatrix();
	void getnumber();                    //输入矩阵
	void shownumber();                   //输出矩阵
	states issamesize1();                //方阵的值与方阵的幂还有逆判断
	states issamesize2(CMatrix &b);      //矩阵加法与矩阵减法的判断
	states issamesize3(CMatrix &b);      //矩阵乘法的判断 
	states issamesize4(CMatrix &b);      //矩阵除法的判断
	states isempty();                    //指针的判断
	DOUBLE det();                           //方阵的值
	states pow(CMatrix &c,int n);        //方阵的幂
	states inv(CMatrix &c);              //方阵的逆
	states tran(CMatrix &c);             //矩阵的转置
	states add(CMatrix &b, CMatrix &c); //矩阵的加法
	states sub(CMatrix &b, CMatrix &c); //矩阵的减法
	states mul(CMatrix &b, CMatrix &c); //矩阵的乘法
	states divi(CMatrix &b, CMatrix &c);//矩阵的除法
	public:
	DOUBLE *pdata;
	int nline;
	int ncol;
	int flag_det;// 为了正确输出det
};

class   CSampleData
{
	public:
		CSampleData();
		~CSampleData();
		bool readFile(char* fileName);
		bool normalize();
		bool writeFile(char* fileName);
		int searchClassName(char* className);
	public:
		int numClass;
		int numFeature;
		int numSample;
		char** nameClass;
		DOUBLE* xdata;
		int* ydata;
		DOUBLE* maxValue;
		DOUBLE* minValue;
};

class   CLdf
{
	public:
		CLdf();
		~CLdf();
		bool train(char* fileName);
		bool test(char* fileName);
	public:
		CSampleData sdata;
		DOUBLE* paramU;
		DOUBLE* paramSigma0;
		DOUBLE* paramW;
		DOUBLE* paramW0;
		DOUBLE* resultTotal;
		DOUBLE* resultRight;
};

class   CQdf
{
	public:
		CQdf();
		~CQdf();
		bool train(char* fileName);
		bool test(char* fileName);
	public:
		CSampleData sdata;
		DOUBLE* paramU;
		DOUBLE* paramSigma;
		DOUBLE* paramInvSigma;
		DOUBLE* paramLogSigma;
		DOUBLE* resultTotal;
		DOUBLE* resultRight;
};

class   CMQdf
{
	public:
		CMQdf();
		~CMQdf();
		bool train(char* fileName);
		bool test(char* fileName);
	public:
		CSampleData sdata;
		DOUBLE* paramU;
		DOUBLE* paramSigma;
		DOUBLE* paramInvSigma;
		DOUBLE* paramLogSigma;
		DOUBLE* resultTotal;
		DOUBLE* resultRight;
};

class   CRda
{
	public:
		CRda();
		~CRda();
		bool train(char* fileName);
		DOUBLE crossValidation(char* fileName);
		bool test(char* fileName);
	public:
		CSampleData sdata;
		DOUBLE paramBeta;
		DOUBLE paramGamma;
		DOUBLE* paramU;
		DOUBLE* paramSigma;
		DOUBLE* paramInvSigma;
		DOUBLE* paramLogSigma;
		DOUBLE* resultTotal;
		DOUBLE* resultRight;
};

class   CKnn
{
	public:
		CKnn();
		~CKnn();
		bool train(char* fileName);
		DOUBLE crossValidation(char* fileName);
		bool test(char* fileName);
	public:
		CSampleData sdata;
		int paramK;
		DOUBLE* resultTotal;
		DOUBLE* resultRight;
};

class   CSvm
{
	public:
		CSvm();
		~CSvm();
		bool train(char* fileName);
		bool test(char* fileName);
	public:
		CSampleData sdata;
		struct svm_model *model;
		struct svm_node *x_space;
		DOUBLE paramC;
		DOUBLE paramGamma;
		DOUBLE* resultTotal;
		DOUBLE* resultRight;
};

#endif

⌨️ 快捷键说明

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