文章目录
前言
首先需要安装一下遗传算法工具箱,可参考这篇博客
MATLAB遗传算法工具箱安装包及安装方法(图解)_周杰伦今天喝奶茶了吗的博客-CSDN博客_matlab遗传算法工具箱安装
本模型可以结合自己的数据集进行预测,需要自行修改的地方均会使用【】进行标注。
一、遗传算法描述
遗传算法(GeneticAlgorithm,GA)的理论是根据达尔文进化论而设计出来的算法,是一种通过模拟自然进化过程搜索最优解的方法。大体意思是生物是朝着好的方向进化的,在进化的过程中会自动选择优良基因淘汰劣等基因。向好的方向进化就是最优解的方向,优良的基因是符合当前条件的样本基因,可以得到充分的选择。遗传学机理中的生物进化过程中生物的一连串过程包括选择、交叉和变异三个主要的行为机制。因此遗传算法也主要分为选择、交叉和变异这三类操作完成淘汰机制,使训练后的自我进化按照条件朝着有力的方向进行,最终取得最优个体和解集合。作为一种算法的形成还需要编码、遗传变异计算适应度和解码等。
二、优化思路
BP神经网络主要由三个层次组成,包括BP神经网络的输入层,BP神经网络的隐含层以及BP神经网络的输出层。来自外部的各种信息通过BP神经网络的输入层传输进入到其隐含层进行网络运算处理,并通过输出层输出得到最终的处理结果。当BP神经网络的输出层输出结果和其预先设置的输入值的误差较大的时候,则进入BP神经网络的反向传播阶段,并进行网络权值的更新,直到输出结果和期望结果误差满足一定条件为止。
BP神经网络预测用遗传算法得到最优个体,并对网络进行初始权值和阈值的赋值,网络经训练后预测样本输出。遗传算法优化BP神经网络的要素包括种群初始化、适应度函数、选择算子、交叉算子和变异算子。
三、完整代码
1、main.m
包括导入数据、定义节点个数、定义算法参数、进行遗传操作和画预测对比图等部分,最后输出MAE、MAPE、RMSE、R2等评价指标。需要注意的是这里是以行为一各样本,若数据集以列为样本的话要注意转置。