神经网络|广义回归神经网络GRNN(Matlab实现多输入多输出广义回归神经网络GRNN (含例子及代码))

创建5输入,2输出的GRNN,随机产生1000个5维数据x作为输入,输出值为y:

%net = newgrnn(P,T,spread) %参数P为输入向量; %T为输出向量; %spread 为径向基函数的分布密度,参数spread的大小对网络的逼近精度有较大影响,需不断的调整spread的值。 %spread的值越小,函数的比较越精确,但逼近过程就越粗糙; %spread的值越大,逼近过程就比较平滑,但逼近的误差会比较大。 x=2*rand(5,1000)-1; %输入为5维度 共1000个数据 y(1,:)=sin(5*sum(x,1)); %输出的第一维数据 y(2,:)=cos(4*sum(x,1)); %输出的第二维数据 %% 训练网络 P=x; %输入数据 T=y; %输出数据 net = newgrnn(P,T,0.02); %建立grnn 训练网络 %% 测试网络 A = sim(net,P); %% 画出图像 figure plot(A(1,:),'r*'); hold on plot(T(1,:),'bo'); legend('预测值','真实值') xlabel('n') ylabel('y1')figure plot(A(2,:),'r*'); hold on plot(T(2,:),'bo'); legend('预测值','真实值') xlabel('n') ylabel('y2')figure plot(A(1,:),A(2,:),'r*'); hold on plot(T(1,:),T(2,:),'bo'); legend('预测值','真实值') xlabel('y1') ylabel('y2')figure plot(abs(A(1,:)-T(1,:)),'r-o'); hold on plot(abs(A(2,:)-T(2,:)),'b-+'); xlabel('n') ylabel('MAE') legend('y1','y2')

结果:
目标1真实值和预测值:
神经网络|广义回归神经网络GRNN(Matlab实现多输入多输出广义回归神经网络GRNN (含例子及代码))
文章图片

目标2真实值和预测值:
神经网络|广义回归神经网络GRNN(Matlab实现多输入多输出广义回归神经网络GRNN (含例子及代码))
文章图片

目标1与目标2的真实值和预测值:
神经网络|广义回归神经网络GRNN(Matlab实现多输入多输出广义回归神经网络GRNN (含例子及代码))
文章图片

【神经网络|广义回归神经网络GRNN(Matlab实现多输入多输出广义回归神经网络GRNN (含例子及代码))】预测值和真实值的绝对误差:
神经网络|广义回归神经网络GRNN(Matlab实现多输入多输出广义回归神经网络GRNN (含例子及代码))
文章图片

    推荐阅读