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

📄 global.h

📁 该程序包实现了几个常用的模式识别分类器算法
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -