我不是大神。但可以给给意见。1,遗传算法不能改变BP神经网络准确率低的本质问题的。只能在一定程度上优化BP神经网络。2,你的数据是怎么增加的?由原来的80组数据基础上随意组合的?
还有你的输出结果是3个等级。期望输出是什么类型?预测输出是什么类型?你判断正确率的标准是什么?这些都会对正确率有影响。3,BP神经网络的正确率的提高可以通过:一,改变隐层的节点数。或增减隐层的层数。
最少一个隐层,最多2个。二,改变传递函数,一般隐层用tansig,输出层用linear或者tansig。4,最后的方法是不怎么重要的,就是数据的归一化,一般是归一化或不归一化都可以的,都试试。
我都是书本学过,做过点题目,只能给这些建议。
谷歌人工智能写作项目:小发猫
跟你的预测对象有很大关系rfid。1.根据你的预测对象的特性选取合适的输入层、输出层和隐层神经元数目。2.选择合适的神经网络训练函数。
3.保证足够的训练样本数据,并且确保这个训练样本数据有足够的精度能够反映需要预测的对象的特性。
优化神经网络结构。如BP神经网络改变隐层神经元数量、训练算法等;使用其他神经网络。如Elman神经网络考虑了前一时刻的输出,比较适合用于预测,预测效果往往更好。
RBF神经网络的训练速度很快,训练效果也很好。改进的神经网络算法。例如BP神经网络增加动量项、自适应学习率等措施,防止陷入局部极小影响预测效果。组合神经网络。
取长补短,将全局搜索能力强的算法与局部逼近快的算法组合起来,如遗传算法优化初始权值,再训练。这种方法比较灵活,可以和许多算法融合。全面考虑影响因素。
未来的预测值受许多因素影响,所以应该在基于历史数据的基础上,充分考虑各种因素,考虑得越周全,预知信息越多,预测效果一般更好。
建议用RBP神经网络进行训练。
使用方法:x=-1:0.1:5;y=-1:0.1:5;z=x.^2.*y-0.1*x+2*y;net=newrbe([x;y],z);%创建一个RBF网络t=sim(net,[x;y]);%仿真未经训练的网络netplot3(x,y,z,'rd');holdonplot3(x,y,t,'b-');。
预测数据的话BP不是特别好用,最好用Elman反馈神经网络或者RNN循环神经网络,这些有记忆功能的网络比较好用。bp主要和你选择的隐含层数,和误差范围,学习率有关。
你可以调节相关参数来改变神经网络,获得更精确的结果。
你好,误差大,第一步需要尝试的是做归一化处理。有线性归一化,有对数函数归一化等等,这个你可以去网上搜索数据归一化方法,有相关的代码,应该。
第二部需要做出的改动是隐层节点数量,如果节点数量太多,那么结果的随机性就会很大,如果太少,那么复杂数据的规律计算不出来。多少层节点最合适,这个目前除了一个一个试没有更好的办法。
但是你会发现每一个相同的结构计算出的结果却不尽相同,这个时候就需要考虑后续的问题。第三步尝试,变换transferfunction。麻烦你查查字典,因为我不是用中文学的神经网络。
我姑且翻译成传输函数。传输函数在matlab中内建了3中purelinelogsigtansig。分别有不同的应用范围。因为没看到你的数据,我也不清楚具体应该推荐你用哪一种。
不过你可以去网上搜索一下三种传输函数的特点。如果有用请给“采纳”谢谢。