目录
前言
课题背景和意义
实现技术思路
一、材料与方法
二、结果
实现效果图样例
最后
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
课题背景和意义
时间序列是将某一指标在不同时间上的数值 按时间先后顺序排列而成的数列 。对传染病时间序列进行观察、研究,找寻它发展变化的规律, 并对未来准确预测,可为卫生资源合理配置提供科学依据。随着科学技术的迅猛发展和计算机的普及,ARIMA 、灰色模型、残差自回归模型等多种预测模型作为经典的预测技术,在传染病 预测中得到了广泛应用。但预测模型无法处理非线性关系的局限性限制了模型的适用性。人工神 经网络作为新兴的技术,能很好的处理的非线性关系,在人工智能领域取得了广泛成功。BP 神经 网络作为人工神经网络中最可靠、最经典的神经网络,具有学习能力强、操作简单的优点,近年来逐渐被应用于疾病监测中。但目前报道多直接 给出研究结果,关于如何整理数据、建立 BP 网络和参数设置鲜有报道。为了能及时发现流感流行趋势异常,确定流感疫情开始时间,发现流感流行株变化,流感成为了第一个实行全球监测的传染病。流感监测在了解流感疫情动态变化中起到了重要的作用,同时流威监测在也是建立流咸大流行应对计划、调整疫苗策略、和建立新病毒亚型暴发的早期预警系统的基础。
实现技术思路
一、材料与方法
资料来源
2005-01/2018-05 荆州市乙类传染病逐月发病数来源于中国疾病预防控制中心“传染病报告信息管理系统”,按现住址、发病日期统计数据。
方法
BP 神经网络是一种依据误差逆向传播算法而训练的多层前馈神经网络。BP 神经网络模型的拓扑结构可以分为输入层、隐含层和输出层3个层次。

它是按照给定的(输入、输出)样本进行学习,按照一定的训练标准(如最小均方差),计算网 络的实际输出值与期望输出值的误差,不断进行误差反向传播,从而来调整网络的各层权重,使误差达到最小,完成学习的目的。

BP 神经网络建模的基本步骤主要包括: ① 初始化网络,包括一些网络参数的选择和设定;② 训练, 训练时应尽量防止网络过度拟合; ③仿真。如何初始化网络以及提高模型泛化能力对BP 神经网络构建十分关键,下面介绍各种参数设置。
1)数据归一化和反归一化 数据归一化法能消除各维度数据间数量级差别,避免因输入输出数据数量级别差别较大造成较大的网络误差,是神经网络初始化时对数据常做的处理方法。采用最大最小法,函数形式如下:

2)传递函数的选择常用函数包括对数S型函 数、双曲正切函数和线性函数。BP神经网络的传输 函数包括输入层与隐含层间、隐含层与输出层间的 传输函数。输入层与隐含层间的传输函数选择 对数S型函数(‘logsig’),隐含层与输出层间的传输 函数选择线性函数(‘purelin’)。

3)神经网络层数及各层神经元个数的确定 由 映射存在定理可知,任意连续函数可由一个 3 层 感知器网络逼近。
4)初始化权值和阈值 一般对初始化权值及 阈值取[- 1,1]之间的随机数,在 MATLAB 中由 ‘init’函数实现,在建立BP神经网络时自动调用。 1.2.5 训练函数的选择 BP神经网络训练算法种 类较多 。其中 Levenberg_Marquardt 算法在处理 函数逼近问题的能力较强,网络收敛速度最快,是 BP神经网络最常用的算法。

MATLAB中对应函数 为‘trainlm’,选择‘trainlm’函数作为训练函 数。 1.2.6 其他参数设置 ①选取最小均方差(MSE) 作为评价指标;②期望误差最小值设为 0.000 1;③ 最大训练步长设为1 000;④学习率设为0.05;⑤训 练样本数:验证样本数:测试样本数设为10∶0∶0;⑥ 其余设置均为MATLAB神经网络工具箱默认设置。 1.3 评价指标 采用最小均方差(MSE)、R2 、平均 相对误差百分比(MAPE)、平均绝对误差(MAE)评 价神经网络的拟合和预测效果。
二、结果
数据整理
在 Excel 中录入数据,再用 MATLAB 调用 Excel文件中的数据。基于MATLAB 的神经网络建模是以矩阵的形式进行,每列为一次输入(输出)数据集,每行代表一个输入(输出)神经元数据集。
BP 神经网络模型建立
在 MATLAB R2016a中,利用神经网络工具箱中的‘feedforwardnet ’、 ‘train’、‘sim ’3 个函数完成网络的创建、训练和仿真。相应的MATLAB 程序如下:
%% 读取Excel中的数据
filename=‘Book1.xlsx’;%数据录入在‘Book1.
xlsx’文件中
sheet1=2;%输入数据放在第2个sheet表格中
xlRange=‘A1:EJ12’;%12×140矩阵的输入数
据
input_train=xlsread(filename,sheet1,xlRange);%
读取输入数据
sheet2=3;%输出数据放在第3个sheet表格中
x2Range=‘A1:EJ5’;%5×140 矩阵的输出数
据
output_train=xlsread(filename,sheet2,x2Range);
%读取输出数据
sheet3=4;%测试数据放在第4个sheet表格中
x3Range=‘A1:A12’;%12×1 矩阵的测试数
据
input_test=xlsread(filename,sheet3,x3Range);
%读取测试数据
sheet4=5;%预测数据放在第5个sheet表格中
x4Range=‘A1:A5’;%5×1矩阵的预测数据
output_test=xlsread(filename,sheet4,x4Range);
%读取预测数据
%%数据归一化
[inputn,inputps]=mapminmax(input_train);%
输入数据归一化
[outputn,outputps]=mapminmax(output_train);
%输出数据归一化
BP神经网络创建:
%% BP神经网络创建
net=feedforwardnet(10,‘trainlm’);%隐含层
神经元个数为10,训练函数为trainlm
net.layers{1}.transferFcn=‘logsig’;%设置隐含
层转换函数为logsig
net.layers{2}.transferFcn=‘purelin’;%设置输
出层转换函数为purelin
net.performFcn=‘mse’;%选择均方差(mse)作
为评价指标
net.trainParam.epochs=1 000;%最大训练步数
设为1 000
net.trainParam.max_fail=6;%最大验证失败步
数设为6
=0.05;%学习率设为0.05
net.trainParam.goal=0.000 1;%目标误差设为
0.000 1
net.divideParam.trainRatio=10;% 训 练 样 本 占
比设为100%
net.divideParam.valRatio=0;%验证样本占比
设为0%
net.divideParam.testRatio=0;%测试样本占比
设为0%
net=train(net,inputn,outputn);%开始训练
模型拟合及预测结果
在运行上述程序中,最终得到训练实际值、训练拟合值、预测值及实际值,由 此 可 计 算 出 拟 合 和 预 测 的 MSE 、 R 2 、 MAPE、 MAE,过连续 10次拟合, 拟合及预测结果见表 和图 。

BP神经网络拟合值、预测值与实际值拟合效果:

实现效果图样例
传染病暴发流行数字技术检测概念模式、探测、监测和预警示意图:

















