zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【智能算法】基于BP的神经网络变量筛选实现

变量神经网络 实现 基于 筛选 bp 智能算法
2023-09-14 09:05:31 时间

神经网络变量筛选—基于BP的神经网络变量筛选

%% 清空环境变量
clc
clear
%% 产生输入 输出数据

% 设置步长
interval=0.01;

% 产生x1 x2
x1=-1.5:interval:1.5;
x2=-1.5:interval:1.5;

% 产生x3 x4(噪声)
x=rand(1,301);
x3=(x-0.5)*1.5*2;
x4=(x-0.5)*1.5*2;

% 按照函数先求得相应的函数值,作为网络的输出。
F =20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);

%设置网络输入输出值
p=[x1;x2;x3;x4];
t=F;


%% 变量筛选 MIV算法的初步实现(增加或者减少自变量)

p=p';
[m,n]=size(p);
yy_temp=p;

% p_increase为增加10%的矩阵 p_decrease为减少10%的矩阵
for i=1:n
    p=yy_temp;
    pX=p(:,i);
    pa=pX*1.1;
    p(:,i)=pa;
    aa=['p_increase'  int2str(i) '=p;'];
    eval(aa);
end


for i=1:n
    p=yy_temp;
    pX=p(:,i);
    pa=pX*0.9;
    p(:,i)=pa;
    aa=['p_decrease' int2str(i) '=p;'];
    eval(aa);
end


%% 利用原始数据训练一个正确的神经网络
nntwarn off;

p=p';
% bp网络建立
net=newff(minmax(p),[8,1],{'tansig