本发明属于血糖预测技术领域,尤其涉及一种基于VMD-PACF-BP模型的动态血糖在线预测方法。

背景技术:

目前,中国患有糖尿病人数已成为在世界上拥有糖尿病患者最多的国家。为了降低糖尿病患者长期处于高于正常血糖的波动范围的状态和高血糖并发症的发生率,对患者的血糖值进行更有效的血糖控制,就需要克服其时滞性。因此,建立血糖预测模型是血糖控制如今发展的趋势。

人体是个十分复杂的生理结构。血糖时间序列时滞性、非线性、不确定性。胰岛素从注射、吸收再到血糖被连续血糖监控仪(CGM)检测出数据都会出现时间的滞后性。人体激素的系统效应以及生化反应的复杂性,造成人体葡萄糖-胰岛素代谢动态过程是一个典型的非线性过程。因此,血糖没有人工智能的帮助,很难实现对血糖的预测。如今,血糖预测已经取得了一些成绩,能够应用在血糖控制中对高低血糖的预测和对CGM传感器的故障检测。因此,对血糖值如何进行准确的预测是如今成为一个世界性的难题。

目前,对于血糖的预测大体可以分成生理模型和数据驱动两种方式。对于生理模型而言,血糖控制涉及到人体的各项参数,如吃饭、睡觉、情绪变化等,有些参数很难通过实验得出,因此简单的线性模型控制无法准确描述整个生理过程,会造成较大的误差。而非线性模型的建立比较复杂,通过机理建模,很难准确得到各项参数的数值。对于数据驱动方式而言,一种是传统的统计建模方法,有自回归(AR)模型、差分整合移动平均自回归模型(ARIMA)、马尔可夫模型、贝叶斯方法等线性数学模型,这些基于统计学的数学模型虽然具有原理性简单,效率高等优点,但是其预测出的血糖值精度不高。另一类是机器学习技术,有人工神经网络、支持向量机、极限学习机等模型。上述方法中,BP神经网络是如今应用最广泛的神经网络模型之一,因此,BP神经网络可以被用于血糖的预测。

技术实现要素:

(一)要解决的技术问题

针对现有存在的技术问题,本发明提供一种基于VMD-PACF-BP模型的动态血糖在线预测方法,解决了现有技术中预测结果准确率低的问题。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

一种基于VMD-PACF-BP模型的动态血糖在线预测方法,包括如下步骤:

S1、获取原始血糖时间序列数据,并对获取的原始血糖时间序列数据进行数据预处理;

S2、采用VMD分解方法将经过数据预处理后的血糖时间序列数据分解成多个子模态;

S3、采用PACF方法分别选择每个子模态的输入变量;

S4、将选出的输入变量分别利用BP神经网络进行预测,获得每个子模态的预测值,最后,再将获得的所有子模态的预测值融合,获得血糖数据的预测结果。

优选地,在步骤S2中,将原始血糖时间序列分解成一系列的含有稀疏特性的子模态,即将原始序列分解成为多个不同频率的序列。

优选地,所述步骤S2还包括如下子步骤:

S201、针对每个子模态uk通过希尔伯特变换计算与之相关的解析信号得到单侧频谱,如下:

其中,H(t)为模态解析信号,δ(t)是狄拉克分布,t是采样时间点,{uk}={u1,...,uK};

S202、针对各个子模态,通过对其中心频率ωk进行指数项混叠,将每个子模态调制到对应的基频带,其公式如下:

式中为ωk复平面上的向量描述,{ωk}={ω1,...,ωK};

S203、估计各模态分量的带宽,计算其梯度的平方L2范数,对应求处的约束条件变分问题为:

S204、引入增广拉格朗日函数,用二次惩罚函数项和拉格朗日乘子得到一个非约束问题,最后求解该问题的公式为:

其中,是惩罚项,λ是拉格朗日乘数。

优选地,所述步骤S2还包括:

A1、通过交替更新和来寻找最优解,其收敛条件为:

其中ε代表收敛条件,代表傅立叶变换,n是迭代次数;

A2、得到uk和ωk函数:

其中,代表当前剩余量,代表当前模态函数功率谱的重心。

优选地,所述步骤S3中通过PACF方法找到判断血糖的时间序列间不同属性间的相关性,构建最优输入集合,获得每个子模态的输入变量。

优选地,所述步骤S3还包括:

时间序列为{w1,w2...wn},滞后k处的协方差为γk,其估计量为公式为:

其中为序列的平均值,M是最大滞后时间且取值为4/n;

ρk为自相关函数,其估计量为

的公式为:

基于协方差和相关函数ACF的结果,则αkk为滞后k时的PACF,其公式为:

其中k=1,2,...M;

根据PACF值衡量其偏自相关性,确定子模态的输入变量。

优选地,所述步骤S4中BP神经网络的中间神经元j的输出公式为:

其中w是权值,b是阈值;

输出层的计算公式为:

BP神经网络与实际输出的误差值为e,其公式为:

ek=Yk-Ok;

对权值进行调整的公式为:,其中η为学习效率。

wjk=wik+ηHjek;

(三)有益效果

本发明的有益效果是:本发明提供的一种基于VMD-PACF-BP模型的动态血糖在线预测方法,具有预测精度高的优点。

采用VMD-PACF-BP模型进行预测,其计算效率较传统的VMD方法有所提升,滤除噪声和随机扰动的性能更强。

附图说明

图1为本发明提供的一种基于VMD-PACF-BP模型的动态血糖在线预测方法的流程示意图;

图2为本发明提供的一种基于VMD-PACF-BP模型的动态血糖在线预测方法中算法模型的流程示意图;

图3为本发明提供的一种基于VMD-PACF-BP模型的动态血糖在线预测方法中VMD-PACF-BP预测模型仿真对比图。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

实施例一

如图1和图2所示:本实施例中公开了一种基于VMD-PACF-BP模型的动态血糖在线预测方法,包括如下步骤:

S1、获取原始血糖时间序列数据,并对获取的原始血糖时间序列数据进行数据预处理;

S2、采用VMD分解方法将经过数据预处理后的血糖时间序列数据分解成多个子模态;

S3、采用PACF方法分别选择每个子模态的输入变量;

S4、将选出的输入变量分别利用BP神经网络进行预测,获得每个子模态的预测值,最后,再将获得的所有子模态的预测值融合,获得血糖数据的预测结果。

应说明的是在步骤S2中,将原始血糖时间序列分解成一系列的含有稀疏特性的子模态,即将原始序列分解成为多个不同频率的序列。

具体地,所述步骤S2还包括如下子步骤:

S201、针对每个子模态uk通过希尔伯特变换计算与之相关的解析信号得到单侧频谱,如下:

其中,H(t)为模态解析信号,δ(t)是狄拉克分布,t是采样时间点,{uk}={u1,...,uK};

S202、针对各个子模态,通过对其中心频率ωk进行指数项混叠,将每个子模态调制到对应的基频带,其公式如下:

式中为ωk复平面上的向量描述,{ωk}={ω1,...,ωK};

S203、估计各模态分量的带宽,计算其梯度的平方L2范数,对应求处的约束条件变分问题为:

S204、引入增广拉格朗日函数,用二次惩罚函数项和拉格朗日乘子得到一个非约束问题,最后求解该问题的公式为:

其中,是惩罚项,λ是拉格朗日乘数。

相应地,本实施例中所述步骤S2还包括:

A1、通过交替更新和来寻找最优解,其收敛条件为:

其中ε代表收敛条件,代表傅立叶变换,n是迭代次数;

A2、得到uk和ωk函数:

其中,代表当前剩余量,代表当前模态函数功率谱的重心。

此外,本实施例中所述步骤S3中通过PACF方法找到判断血糖的时间序列间不同属性间的相关性,构建最优输入集合,获得每个子模态的输入变量。

这里所述的的子模态的输入变量,用于输入BP神经网络进行预测每一子模态对应的预测值。

详细地,所述步骤S3还包括:

设时间序列为{w1,w2...wn},滞后k处的协方差为γk,其估计量为公式为:

其中为序列的平均值,M是最大滞后时间且取值为n/4;

ρk为自相关函数,其估计量为

的公式为:

基于协方差和相关函数ACF的结果,则αkk为滞后k时的PACF,其公式为:

其中k=1,2,...M;

根据PACF值衡量其偏自相关性,确定子模态的输入变量。

本实施例中,所述步骤S4中BP神经网络的中间神经元j的输出公式为:

其中w是权值,b是阈值;

输出层的计算公式为:

BP神经网络与实际输出的误差值为e,其公式为:

ek=Yk-Ok;

对权值进行调整的公式为:wjk=wik+ηHjek,其中η为学习效率。

实施例二

本实施例中提供的一种基于VMD-PACF-BP模型的动态血糖在线预测方法,包括如下步骤:

Step1:以连续血糖监测仪(CGM)输出的一分钟的监测血糖值为准,每五分钟进行重新采样,生成血糖时间序列作为样本对血糖的时间序列进行预处理,将血糖时间序列样本分为训练集和测试集。

Step2:将利用VMD(变分模态分解)的方法将在线分解时间序列分解为K个变分模态,使得带宽之和最小。

Step3:VMD方法输出后,将其转化为矩阵的形式,则针对于每个子模态而言,都有一组对应矩阵,然后将VMD模态分解后生成的K个子模态通过PACF分别进行特征提取。

Step4:将PACF选择后的每个模态的输入变量分别送入BP神经网络,设定其输入层、隐含层和输出层的层数与BP神经网络的参数变量,得到子模态的预测值。

Step5:将每个子模态的预测结果进行叠加,可以得到最终的预测结果。

Step6:将测试集样本的第一个血糖值开始依次输入到训练集中,使训练集内保持原有的血糖值个数不变,重复上述Step2到Step5的步骤,直至最后一个测试集样本输入完成,得到预测数据集Q。

Step7:判断以上步骤所预测的血糖值是否达到理想的误差范围内,则根据预测血糖值Q与测试集P进行误差分析。评价函数为:

均方根误差:

均绝对误差:

平均绝对百分误差:

其中Qi是预测值,Pi是实际值,i是采样点,n是血糖时间序列总个数,t是训练集个数。

如图3所示:利用matlab软件进行仿真,以一个患有糖尿病的患者血糖时间序列为例,其RMSE值为9.5194。在仿真展现了VMD-PACF-BP模型的30分钟后的预测效果与测试值所展示的30分钟后的真实值对比图,在对比图中可以发现,VMD-PACF-BP模型可以较为准确、精度较高的对于血糖值进行在线预测。并且在仿真情况下可以发现VMD-PACF-BP的预测模型比单独进行BP神经网络预测的预测精度更高,误差更小。

以上结合具体实施例描述了本发明的技术原理,这些描述只是为了解释本发明的原理,不能以任何方式解释为对本发明保护范围的限制。基于此处解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

matlab血糖预测,一种基于VMD-PACF-BP模型的动态血糖在线预测方法与流程相关推荐

  1. matlab鬼成像,一种基于光计算的可视化计算鬼成像系统及成像方法与流程

    本发明涉及成像探测领域,具体为一种基于光计算的可视化计算鬼成像系统及成像方法. 背景技术: 光学鬼成像技术是通过双路光信号符合探测恢复待测物体空间信息实现的.其特点是包含物体信息的信号光(signal ...

  2. 时间窗口算法用matlab,一种基于动态规划算法的时间窗口相关的参与者选择方法与流程...

    本发明涉及一种移动群智感知中时间窗口相关的参与者选择方法,特别地,涉及一种基于动态规划算法的时间窗口相关的参与者选择方法. 背景技术: 在移动群智感知网络中,智能设备中嵌入了麦克风.相机.温度传感器. ...

  3. matlab悬置非线性位移计算公式,一种基于Excel的电动车动力总成悬置工况力数据处理方法与流程...

    本发明涉及计算机辅助工程(CAE)技术领域,具体涉及一种基于Excel的电动车动力总成悬置工况力数据处理方法. 背景技术: 动力总成的28工况力与位移分析是基于GM提出的传统车28工况修改而来,其分解 ...

  4. matlab中枝切法解包裹,一种基于改进枝切法的激光散斑相位解包裹方法与流程

    本发明属于激光散斑干涉测量领域,涉及一种激光散斑相位解包裹方法. 背景技术: 散斑干涉相位图解包裹是激光散斑测量的关键步骤,Goldstein枝切法解包裹算法由于可识别残差点,防止误差传递,解缠精度高 ...

  5. 属性与意图识别_一种基于多任务学习的意图与槽位联合识别方法与流程

    本发明属于人机交互领域,涉及自然语言处理.垂直对话系统等,特别涉及一种基于多任务学习的意图与槽位联合识别方法. 背景技术: 意图识别和槽位识别可以将垂直对话系统中用户输入文本转化为语义表示,为系统采取 ...

  6. matlab广域保护分区算法,基于行波信息的广域后备保护关联域识别方法与流程

    本发明属于广域后备保护技术领域,具体涉及一种基于行波信息的广域后备保护关联域识别方法. 背景技术: 随着广域测量系统的发展,全网数据共享得以实现,在信息全景化的背景下,广域保护系统将电力系统继电保护由 ...

  7. flash写保护原理_一种基于flash写保护的防止flash被意外篡改的方法与流程

    本发明属linux嵌入式芯片安全技术领域于领域,尤其是涉及一种nandflash写保护应用方法. 背景技术: 目前很多公司都纷纷尝试智能设备(sd,smartdevice)领域,sd设备功能越来越多, ...

  8. matlab8邻域搜索算法,一种基于可搜索连续邻域A*算法的路径规划方法与流程

    本发明涉及的是一种UUV全局路径规划方法. 背景技术: 无人水下航行器(Unmanned underwater vehicle,UUV)作为一种高技术手段,在海洋这块未来极具价值的发展空间中起着至关重 ...

  9. python登录系统账号检测_一种基于python的惠普打印机默认用户名密码检测方法与流程...

    本发明涉及打印机检测技术领域,特别是一种基于python的惠普打印机默认用户名密码检测方法. 背景技术: 网络打印机是当前各大中小型企业正常办公比不可少的办公网络设备,但对于大中型企业而言,不同部门或 ...

  10. android 获取hdmi数据格式,一种基于Android系统HDMI同显时节省带宽的方法与流程

    本发明涉及一种基于Android系统HDMI同显时节省带宽的方法,属于计算机领域. 背景技术: 通常很多移动设备都配备了小尺寸的LCD屏幕,有些使用场景为了能提供更好的交互控制操作,需要移动设备在大尺 ...

最新文章

  1. Python简明教程
  2. 博客园速度太快了,快得让人心慌……
  3. linux 常见路径,linux中目录与路径常见相关命令
  4. LINUX:read命令
  5. 【jsp】JSTL标签大全详解
  6. unity 彩带粒子_随机四处散发的粒子光带效果unity3d源码下载!Unity3D Particle Ribbon粒子带源码下载...
  7. linux vim 修改 只读文件,linux下vi编辑只读文档无法保存的解决方法
  8. EduCoder-Hive表DDL操作(一、二)答案-路漫漫远俢兮
  9. 商场百货数字化会员系统引流方式 购物中心线上会员拉新
  10. visio付款流程图_职场人士常用的3款超好用流程图软件!
  11. KMP字符串模式匹配算法【精简代码模板】
  12. [ECE]模拟试题-4
  13. [期望DP] UOJ#311. 【UNR #2】积劳成疾
  14. Linux服务器Redis 6.x安装、配置
  15. 11支付功能≠支付系统:微信支付宝通用支付系统开发实战
  16. linux命令查看服务器的型号、序列号、内存插槽数
  17. 给定一个十进制整数, 转成二进制形式,转成十六进制形式。
  18. Android Studio配置阿里云代理,Gradle 配置国内镜像
  19. 与AI结对编程式是什么体验 Copilot vs AlphaCode, Codex, GPT-3
  20. 分享一个PC端一键分享功能

热门文章

  1. 购车的选中功能 iOS
  2. 2020-09-10(抽象类+接口练习 部分附源码)(包装类笔记)
  3. Dreamweaver 概述
  4. Android 密码正则表达式验证
  5. 人工智能联合会主席杨强:人工智能如何落地?
  6. 分享懒人张RDLC报表(五、六)
  7. 零时科技 || 分布式资本创始人4200万美金资产被盗分析及追踪工作
  8. 业余草分享大量IT资料免费领!
  9. 手机号码检测开通微信软件的使用案例(二)
  10. python获取url列表参数_python 获取url中的参数列表实例