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

📄 neuralnetwork.h

📁 利用matlab编写的神经网络算法
💻 H
字号:
// NeuralNetwork.h: interface for the NeuralNetwork class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_NEURALNETWORK_H__FAE72EAF_7576_449C_BD7F_771F57FCFB53__INCLUDED_)
#define AFX_NEURALNETWORK_H__FAE72EAF_7576_449C_BD7F_771F57FCFB53__INCLUDED_

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

#define max_layer   3 //网络层数
#define max_node    30 //层中最大的节点数
#define max_sample  45//最大样本数
#define NUM_HIDDEN  10//最大样本数


class NeuralNetwork  
{
public:
	int sample_num_temp;
	double data_norm_temp[45][45];
	double data_out_temp[45];
	GetBinary();
	double min[10][2];
	int data_out_test[10];
	int test_character_num;
	int test_num;
	double data_norm_test[10][45];
	int epoch;
	void normnofile();
	double right_ratio;
	CString LoadInfo(CString filename, int num);
	int output_num_test;
	int character_num_test;
	int sample_num_test;
	BOOL GetTestData(CString filename);
	void LoadDatanorm(CString filename);
	BOOL SaveDatanormAsFile(CString filename);
	int output_com[45];
	output_combine();
	void feed_muta();
	train();

	int number_sample;
	Init_weight(double a, double b);
	BOOL SaveWeightAsFile(CString file_w1,CString file_w2);
	BOOL LoadWeight(CString file_w1,CString file_w2);
	void feed();
	double err[max_sample];//计算每组样本的输出误差,均方差
	double err_sum;//总的误差
	double err_sum_muta[10];//总的误差
	double mrand(double a,double b);
	double sigmoid(double input);

	NeuralNetwork();
	virtual ~NeuralNetwork();
	int number_input;//输入层节点数
    int number_hidden;//隐层节点数
	int number_output;//输出层节点数

	double output_of_output[max_sample][max_node];//输出层节点的输出
	double output_of_output_muta[max_sample][max_node][10];//输出层节点的输出

    double weight_1[max_node][max_node];//权值
    double weight_2[max_node][max_node];//权值
	double weight_1_muta[max_node][max_node][10];//权值
    double weight_2_muta[max_node][max_node][10];//权值

    int count_of_correct_test;//测试正确样本数量


	double data_out_binary[45][10];
	MinDis();
	datapretreat();
	norm(CString filename);
	Getdata(CString filename);
	void Empty();
    int sample_num;//样本数
	int character_num;//原始属性个数
	int output_num;//输出神经元个数
	int treated_char_num;//处理后属性个数;
	double data_file[45][45];//原始文件中的数据,包括输入和输出
	double data_in[45][45];//输入数据;
	double data_out[45];//输出数据
	double data_norm[45][45];//归一化后数据
	double max_out;//输出的最大数
	int total_training_epoch;//CSA训练步骤
	double alpha;//变异因子
	void Clonal_Muta();
	double max_pos[2];//记录亲和力最大的抗体的亲和力以及位置max_pos[0]为最大值,max[1]为最大值位置



};

#endif // !defined(AFX_NEURALNETWORK_H__FAE72EAF_7576_449C_BD7F_771F57FCFB53__INCLUDED_)

⌨️ 快捷键说明

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