一、模糊神经网络FNN
模糊神经网络(Fuzzy Neural Networks,FNN)结合了神经网络系统和模糊系统 的长处,它在处理非线性、 模糊性 等问题上有很大的优越性,在 智能信息处理 方面存在巨大的潜力。原理参考:
MATLAB模糊神经网络的预测算法–预测水质 - 知乎 (zhihu.com)
二、数值实验
2.1数据集
部分训练数据的输入:
0.801499834205762 0.300052789546401 0.712116159712819 0.505173934489597 0.269835216203487 0.422017860908468
0.0516597970433677 0.397536044532510 0.0151697773789505 0.460433400042667 0.762743292603788 0.787061088410531
0.876548940360682 0.861935185177851 0.365093892273949 0.586135598958022 0.224778494620540 0.554578995436846
0.246802240967180 0.504672972047652 0.517263056590366 0.480155815993260 0.581145169406963 0.439724657458223
0.928675298279742 0.443945610172776 0.297280153519398 0.132303727939171 0.908331033075810 0.173794595353632
0.155807975574710 0.421339426233055 0.221580739115531 0.570859307105269 0.244208433889960 0.462680953115857
0.704383036475527 0.252586415032097 0.880889720695085 0.926975320852575 0.0421364860577934 0.230255790744651
0.110273664462481 0.404074774597367 0.677437223450409 0.542624949025558 0.846719552471635 0.322927110310954
0.457177561657580 0.739687566392357 0.102169031429699 0.562815431816357 0.414986272001247 0.732646838748673
0.814911621227010 0.645402608172197 0.234587040994029 0.166490923821976 0.239119513251256 0.754343218035203
0.364996869445925 0.929409726789514 0.979183083218568 0.0610701336247865 0.550293957186352 0.858071763476749
0.0653370020845937 0.440853948016098 0.423981415097073 0.139659189943151 0.351052466083421 0.639386810344331
0.218247302810337 0.271623465358596 0.856788400129757 0.211393449430560 0.472942312758183 0.628091161779686
0.437913381443522 0.766924416223352 0.441882207117645 0.676983313003730 0.378731030390615 0.238794185601831
0.164603954891793 0.848715851105942 0.867338659089672 0.523844553068402 0.0994431222624692 0.0150701286034250
0.984040792193594 0.594653599766814 0.00754175178879557 0.685482011367251 0.0526790460949391 0.385616709828973
0.770958267581421 0.151411684925103 0.979200362026872 0.691357892456176 0.840335927151864 0.849810973659949
0.966885759974211 0.0367530854791714 0.914701092787034 0.646854011951423 0.292005937222423 0.578030193450552
0.745127788131901 0.698284826846266 0.746040771384821 0.325916064411913 0.867845934873125 0.663570693012045
0.992018500597616 0.602791735976413 0.353123357790269 0.537137294887897 0.741214148151178 0.439961577423509
部分训练数据的输出:
0.130523381100251
0.618623287834938
-0.321656510750489
0.363319811700566
0.254433843325185
0.874845036859242
0.104176523887105
0.235307927198731
0.131726000057133
0.282824656959602
-0.565824500365298
0.882580048430309
0.464001029736403
0.199026179272292
0.583130093729442
0.418305305227949
-0.909251562181937
-0.289435868130322
-0.786544616117274
-0.500913539045167
部分代码如下:最大训练次数为10000次。
close all
clear
clc
inputn=rand(200,6);%训练集输入
outputn=sin(sum(inputn,2));%训练集输出
maxgen=10000;%最大训练次数
m=size(inputn,1);%训练样本数目
I=6;%输入维度
M=6;%神经元
xite=0.001;%可以自己修改
alfa=0.001;%可以自己修改
ErrorP=NaN;
2.2在训练集上的结果:训练集共200组数据
2.2.1预测值与真实值(红色为预测值,绿色为真实值)
2.2.2预测值与真实值的绝对误差
2.2.3绝对误差MAE随着训练次数的变化图
最终在训练集上的平均绝对误差MAE为0.01688,由此可见,训练效果显著。
2.3在测试集上的结果:测试集共100组数据
2.3.1预测值与真实值(红色为预测值,绿色为真实值)
2.3.2预测值与真实值的绝对误差
最终在测试集的平均绝对误差MAE为0.02578。