赞
踩
- %% 清空环境变量
- warning off % 关闭报警信息
- close all % 关闭开启的图窗
- clear % 清空变量
- clc % 清空命令行
-
- %% 导入数据
- P_train = xlsread('data','training set','B2:G191')';
- T_train= xlsread('data','training set','H2:H191')';
- % 测试集——44个样本
- P_test=xlsread('data','test set','B2:G45')';
- T_test=xlsread('data','test set','H2:H45')';
-
- %% 划分训练集和测试集
- M = size(P_train, 2);
- N = size(P_test, 2);
-
- %% 数据归一化
- [p_train, ps_input] = mapminmax(P_train,0,1);
- p_test = mapminmax('apply',P_test,ps_input);
-
- [t_train, ps_output] = mapminmax(T_train,0,1);
- t_test = mapminmax('apply',T_test,ps_output);
-
- %% 节点个数
- inputnum = size(p_train, 1); % 输入层节点数
- hiddennum = 15; % 隐藏层节点数
- outputnum = size(t_train, 1); % 输出层节点数
-
- %% 构建网络
- net = newff(p_train, t_train, hiddennum);
-
- %% 设置训练参数
- net.trainParam.epochs = 50; % 训练次数
- net.trainParam.goal = 1e-4; % 目标误差
- net.trainParam.lr = 0.01; % 学习率
- net.trainParam.showWindow = 0; % 关闭窗口
-
- %% 麻雀参数设置
- fun = @getObjValue; % 目标函数
- dim = inputnum * hiddennum + hiddennum * outputnum + ...
- hiddennum + outputnum; % 优化参数个数
- lb = -1 * ones(1, dim); % 优化参数目标下限
- ub = 1 * ones(1, dim); % 优化参数目标上限
- pop = 30; % 数量
- Max_iteration = 50; % 最大迭代次数
-
- %% 优化算法
- [Best_pos, Best_score, curve] = AO(pop, Max_iteration, lb, ub, dim, fun);
-
- %% 把最优初始阀值权值赋予网络预测
- w1 = Best_pos(1 : inputnum * hiddennum);
- B1 = Best_pos(inputnum * hiddennum + 1 : inputnum * hiddennum + hiddennum);
- w2 = Best_pos(inputnum * hiddennum + hiddennum + 1 : inputnum * hiddennum + hiddennum + hiddennum*outputnum);
- B2 = Best_pos(inputnum * hiddennum + hiddennum + hiddennum * outputnum + 1 : ...
- inputnum * hiddennum + hiddennum + hiddennum * outputnum + outputnum);
关注:智能算法及其模型预测
获取代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。