一种基于遗传算法与神经网络算法(GA-BP)的新冠肺炎模型预测-含Matlab代码

一、引言

针对新冠肺炎疫情发展模型的预测问题,提出了一种基于改进遗传算法误差反向传播(Genetic Algorithms Back Propagation, GA-BP)神经网络算法。该算法通过对遗传算法中的交叉、变异、及适应度等函数进行了重新定义,在获得 GA-BP神经网络最优参数的同时, 提高了最优参数的泛化能力, 进而缩小了 GA-BP网络寻优的搜索范围, 并进一步获得新冠肺炎疫情发展的精确预测模型。最后通过仿真,验证了该GA-BP神经网络对模型拟合预测的准确性。

由于人工智能算法在数据处理上具有强的泛化能力与健壮性等特点, 被许多学者用在了新冠肺炎模型分析。王志心等将机器学习算法与最小二乘法理论相结合, 预测了新冠肺炎出现的拐点问题。而通过机器学习算法建立的数据模型,其只考虑近期试验数据的相关性, 随实验时间的推移, 预测模型误差将会逐渐增大, 进而影响后期数据分析。段瑶瑶等通过构建了一种带有时间回溯的神经网络计算模型, 对新冠肺炎疫情数据进行分析和预测。虽然该方法能有效预测新冠肺炎疫情的发展趋势, 但该方法容易受模型系数参数的影响, 一旦决定系数出现负值, 新冠肺炎模型的推测将会受影响。张学旺等基于长短期记忆人工神经网络(LSTM)对新冠肺炎疫情发展态势进行预测。但在模型预测过程中, 一旦LSTM预测时间跨度增加,预测模型的计算量与算法复杂度将会增加, 进而影响系统训练效果。

新冠肺炎疫情传播模型预测可以理解为多层反向传播过程, 即新冠肺炎模型计算误差可以理解为正传播, 而调整模型参数时为反向传播。因此, 可以利用 &> 神经网络在某地区现有新冠肺炎疫情数据的基础上, 分析找出输入与输出之间的权值关系, 进而可以确定较为准确的新冠肺炎模型。但由于BP神经网络在模型学习速度及最优解的获得具有一定的局限性。

因此, 本文研究了一种基于GA-BP神经网络的新冠肺炎模型预测算法。该算法通过在传统的BP神经网络中引入了遗传算法GA,在进行新冠肺炎网络模型训练时, 利用遗传算法对BP神经网络中的参数( 节点权值、阈值) 进行分析与优化,并重新定义了适应度等函数, 以此来缩小网络寻优的搜索范围, 提高了GA-BP网络的预测精度,进而得到准确的预测模型。

二、新冠肺炎模型构建

为验证算法的可靠性,构建一个简易的模型如图如所示。
在这里插入图片描述

图1 新冠肺炎动力学模型构建

三、遗传算法反向传播( GA-BP) 神经网络设计

3.1 GA-BP 神经网络构建

算法流程图如下图所示:

在这里插入图片描述

图2 GA-BP神经网络算法流程图

根据图1可以观察到,将GA算法与BP神经网络算法有效的结合在一起形成GA-BP神经网路算法,该算法不仅保持了传统GA算法与BP神经网络算法的长处和优点,而且也显现出了高精度的模型预测能力。在GA-BP算法实现的过程中,先用GA反复分析、学习优化BP神经网络模型参数,直到适应函数的平均不再增加为止。再用BP神经网络算法精细优化GA网络编码,这样既可以用来优选指定BP神经网络结构下的参数,也可用来优选GA网络的其他参数。

3.2 BP神经网络训练

基于BP神经网络对上述测试网络的拟合性能,结果如下,最后保存训练好的网络。从BP神经网络预测结果可以看岀,BP神经网络可以准确预测非线性函数输出,可以把网络预测输出近似看成函数实际输出。

在这里插入图片描述

图3 BP神经网络预测结果

3.3 基于遗传算法的新冠感染人数峰值预测

BP神经网络训练结束后,可以用遗传算法新冠感染人数峰值,遗传算法优化过程中最优个体适应度变化值如下图:

在这里插入图片描述

图4 适应度变化曲线

构建的模型,变量范围仅仅为(-2000, -200之间);这是一条逐渐递增的曲线,此时遗传算法预测当变量为(0, 100)范围内感染人数,GA-BP算法预测结果显示,当变量为0.0144时,感染人数达到峰值,该峰值为44.5365。当变量到达0时,感染人数将达到峰值,GA-BP神经网络预测结果与模型基本保持一致。

四、结论

本文研究了一种基于GA-BP神经网络算法,对当前新冠肺炎疫情的数学模型进行了预测及发展分析。与现有算法相比较,该算法对遗传算法中的适应度、交叉、变异等函数进行了重定义,进而获得最优网络参数,缩小了GA-BP网络寻优的搜索范围,进而可以得到准确的预测模型。最后通过仿真,验证了GA-BP神经网络对模型拟合预测的准确性。

此外,基于遗传算法与神经网络算法(GA-BP)在各种模型的预测体现了优势,例如,各种商品产量预测分析温度预测模型商品住宅需求预测等。

五、Matlab代码获取

上述演示实例与Matlab代码,可私信博主获取。


博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
GA-BP 神经网络算法一种结合了遗传算法和反向传播算法神经网络算法,常用于解决分类、回归等问题。在 MATLAB 中,可以使用 Neural Network Toolbox 工具箱来实现 GA-BP 神经网络算法。 首先,需要定义神经网络的结构,包括输入层、隐藏层和输出层的节点数、激活函数等。然后,使用 genfis 函数生成模糊推理系统,将其作为神经网络的初始化权重。接着,使用 ga 函数优化神经网络的权重和偏置,同时使用 train 函数神经网络进行训练。最后,使用 sim 函数对测试数据进行预测。 以下是一个简单的 GA-BP 神经网络算法MATLAB 代码示例: ```matlab % 定义神经网络结构 inputNodes = 4; hiddenNodes = 8; outputNodes = 3; activationFcn = 'tansig'; % 生成模糊推理系统并初始化神经网络权重 fis = genfis(data, outputNodes); net = newff(fis.input, fis.output, [hiddenNodes outputNodes], {activationFcn, 'purelin'}); % 定义优化函数和训练函数 fitnessFcn = @(w) ga_fitness(w, net, data, target); trainFcn = @(net, data, target) ga_train(net, data, target); % 优化神经网络权重和偏置 options = gaoptimset('Generations', 100, 'PopulationSize', 50); [x, fval] = ga(fitnessFcn, net.numWeightElements, options); % 训练神经网络 net = trainFcn(net, data, target); % 预测测试数据 output = sim(net, testData); ``` 其中,ga_fitness 和 ga_train 分别是自定义的优化函数和训练函数,可以根据具体问题进行修改。在实际使用中,还需要对数据进行预处理、划分训练集和测试集等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值