一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于小波分解与GRU神经网络的血糖预测方法与流程

2022-03-26 13:33:34 来源:中国专利 TAG:

一种基于小波分解与gru神经网络的血糖预测方法
技术领域
1.本发明涉及血糖预测领域,具体是一种基于小波分解与gru神经网络的血糖预测方法。


背景技术:

2.糖尿病是影响身体健康的常见病之一。糖尿病会使患者胰岛功能减退,产生胰岛素抵抗,可能会引发多种并发症,这极大地危害了患者的生理健康。但目前糖尿病尚未有明确的治愈方法,所以早诊断早治疗对于控制患者病情发展,以及预防相关并发症较为重要。便携式动态血糖监测设备(cgm)因其能够实时监测用户的血糖情况,在糖尿病患者中被广泛使用。结合cgm设备监测到的血糖数据可对患者未来的血糖趋势进行一定时长的预测,能够为糖尿病患者的日常血糖管理提供帮助。
3.在血糖预测中,基于生理学模型的预测方法依赖于人体的基本生理机制,可用微分方程和概率框架对每个器官隔间进行建模来模拟或再现糖尿病患者的代谢发展。但此方法需考虑人体各个身体器官的互相协作与代谢等的影响,存在建模复杂的情况。基于既往监测得到的血糖数据进行预测的数据驱动法,可通过使用机器学习与深度学习等方法来对未来血糖数据进行一定时长的预测,此类方法可很好地解决基于生理学的血糖水平预测模型建模困难与因个体生理代谢差异而普适性不高的问题。
4.目前,血糖在线预测技术还未广泛的应用于糖尿病患者群体。并且,常作为训练数据用于血糖预测领域的cgm数据具有非线性与震荡性的特点,会对预测精度产生一定的影响。可见,消除原始数据噪声,创建预测精度更优的血糖预测模型,可以为糖尿病患者管理血糖及时调控血糖走势提供更好的帮助。同时,可使用接口技术将血糖预测模型部署至移动设备中,使客户端应用程序调用cpu来实现血糖的在线预测功能,通过将人工智能技术与医学结合起来,为患者提供更为精准的血糖预测服务。


技术实现要素:

5.本发明的目的在于克服现有技术的不足,而提供一种基于小波分解与gru神经网络的血糖预测方法。
6.一种基于小波分解与gru神经网络的血糖预测方法,包括如下步骤:
7.1)采集既往血糖时间序列数据,具体是:采用cgm设备采集的具有固定采样时间间隔的、连续的血糖时间序列gi(t τ)(i=1,2,...n),i为样本点编号,t为采样时间点,τ为采样间隔;
8.2)使用小波分解与归一化法对采集的血糖时间序列数据进行预处理,具体是:使用symlets系列小波中的sym8小波对采集的cgm数据进行分解处理,对一维序列进行小波分解处理时,每层将上层分解得到的低频信号再次分解成高低频两个部分,源信号g将按照如下公式进行多层的分解:
9.g=b1 b2 ... bn an10.在式中,b1,b2,

,bn分别为各层分解所得的低频信号,an为最末层分解所得的高频信号;将数据进行两层分解,在去除最末层高频信号a2后,进行最大值最小值归一化操作,将数据映射至[0~1]之间,得到处理后的血糖数据序列gi(t τ)’,具体公式为:
[0011][0012]gi
(t τ)’=minmaxscaler(b1 b2)
[0013]
3)使用数据滑窗法对数据进行划分,具体是:利用数据滑窗法的重塑数据集,为送入神经网络的每段血糖数据增加标签集,构造监督学习模式,标签集为与数据集时序相邻的数据点,维数为j,窗口连续往后滑动,连续创造新的样本与标签,构建出送入神经网络的数据集g与标签集g,具体表示为:
[0014][0015][0016]
其中,i为血糖数据序列gi(t τ)

的样本点编号;m为每组划分为数据集的数据点个数;j划分为标签集的数据点个数,也为标签集维数;数据窗口大小为m j,且j《m《i;
[0017]
4)构建wd-gru神经网络模型,将划分好的数据集送入wd-gru神经网络模型中进行训练,完成wd-gru模型的训练,其中wd-gru模型采用tensor flow搭建,模型框架由两层gru层和一层全连接dense层组成,gru层和dense层的神经元个数分别为80和100,dense层神经元的个数与标签集维数j保持一致;每个gru层添加20%dropout,随机舍弃神经元,并使用adam优化器,均方误差mse作为损失函数,mse的计算公式为:
[0018][0019]
其中,xi与分别为数据的实际值与预测值,n为样本数量;
[0020]
5)将采集到的采样时间间隔为τ的连续血糖数据值输入步骤4)训练完成的wd-gru神经网络模型中对血糖值进行预测,可视化出时长为δt=τ*j的血糖预测曲线。
[0021]
步骤4)中,所述的wd-gru神经网络模型,模型内设有重置门和更新门,其中x
t
表示当前输入信息、h
t-1
表示过去记忆信息、表示隐藏层信息、h
t
表示当前输出信息;r
t
表示重置门,用于控制遗忘先前血糖走势信息的程度;z
t
表示更新门,用于控制信息的更新;r
t
与z
t
均使用sigmoid激活函数处理,将数据压缩在[0~1]之间,且使用tanh激活函数处理,将数据压缩至[-1~1]之间,r
t
、z
t
、h
t
的具体运算过程如公式为:
[0022]rt
=sigmoid(wr.[h
t-1
,x
t
])
[0023]zt
=sigmoid(wz.[h
t-1
,x
t
])
[0024][0025][0026]
其中,wz、wr、w为模型训练的参数;
[0027]
采用mae、rmse、r2评价wd-gru模型的预测精度,公式为:
[0028][0029][0030][0031]
xi与分别为第i个数据的实际值与预测值,为原始数据均值,n为样本数量。
[0032]
本发明提供的一种基于小波分解与gru神经网络的血糖预测方法,该方法与现有的预测方法相比有如下的优势:
[0033]

采用既往血糖来搭建血糖预测模型减少了生理模型搭建过程的复杂性。
[0034]

使用小波分解法对数据进行了预处理,降低了数据的噪声与非线性因素,提高了预测结果的准确度。
[0035]

使用参数较少的gru神经网络搭建预测模型,相比较循环神经网络、lstm神经网络训练速度更快。
[0036]

本方法提出的血糖预测模型相比较循环神经网络、lstm神经网络,arima、季节性arima模型、指数平滑法对同段血糖数据的预测结果更高。
[0037]

本方法可实现对未来15min、30min、45min、60min时间范围内血糖值的预测。
附图说明
[0038]
图1是一种基于小波分解与gru神经网络的wd-gru实时血糖预测方法的流程图;
[0039]
图2是sym8小波分解处理血糖时间序列的结果图;
[0040]
图3是数据滑窗法划分数据集的示意图;
[0041]
图4是gru神经网络的结构示意图;
[0042]
图5是当预测时长为15min时,使用本发明提出模型的预测结果曲线;
[0043]
图6是当预测时长分别为15min、30min、45min、60min时,使用本发明提出模型的预测结果曲线。
具体实施方式
[0044]
下面结合附图和实施例对本发明内容做进一步阐述,但不是对本发明的限定。
[0045]
实施例:
[0046]
一种基于小波分解与gru神经网络的血糖预测方法,流程图如图1所示,该方法包括如下步骤:
[0047]
s1、使用连续血糖监测设备获得原始血糖时间序列数据;
[0048]
具体的,在本发明中,使用cgm设备采集人体葡萄糖浓度,获得采样时间间隔为τ的时间序列gi(t τ)(i=1,2,...n),i为样本点编号,t为采样时间,τ为采样间隔,确保gru神经网络能够提取足够的关于用户的血糖变化的信息;
[0049]
s2、使用小波分解与归一化方法对数据进行预处理;
[0050]
gcm数据具有非线性与震荡性,并且在采集数据时,cgm设备的传感器可能会因外界环境影响等为数据增加部分噪声。为保证神经网络能够最大程度的提取既往血糖数据中的信息,则需要对血糖数据进行进一步的降噪预处理,使曲线变得平滑。
[0051]
具体的,在本发明中使用symlets系列小波中的sym8小波对采集的cgm数据进行分解处理。在对一维序列进行小波分解处理时,每层将上层分解得到的低频信号再次分解成高低频两个部分。源信号g将按照如下公式进行多层的分解:
[0052]
g=b1 b2 ... bn an[0053]
在式中,b1,b2,

,bn分别为各层分解所得的低频信号,an为最末层分解所得的高频信号。
[0054]
具体的,小波分解处理后的数据曲线平滑效果与小波分解的层数密切相关,层数过多时会造成信息的缺失,层数过少时处理效果不理想。本发明将数据进行两层分解,在去除最末层高频信号a2后,进行最大值最小值归一化操作,将数据映射至[0~1]之间,得到处理后的血糖数据序列gi(t τ)’,具体公式为:
[0055][0056]gi
(t τ)’=minmaxscaler(b1 b2)
[0057]
s3、将数据根据预测时间步长,使用数据滑窗法对数据进行切片划分;
[0058]
具体的,在本发明中,数据滑窗法的目的是切分重塑数据集,为每段血糖数据增加标签集,构造监督学习模式,构建出送入神经网络的数据集矩阵g与标签集矩阵g,具体表示为:
[0059][0060][0061]
其中,i为血糖数据序列gi(t τ)

的样本点编号;m为每组划分为数据集的数据点个数;j划分为标签集的数据点个数,也为标签集维数;数据窗口大小为m j,且j《m《i,具体实施时,根据血糖时间序列的采样时间间隔τ与需求的预测时长δt,对j进行选择。
[0062]
数据滑窗的具体实施方法如图3所示。当输入既往血糖值数据为5个连续数据点,模型输出2个连续预测数据时,数据窗口的大小为7,m为5,j为2,使用数据滑窗法构造测试集的方法为:将窗口前部连续5个数据点划分为新样本data1,相邻的两个连续样本点划分
为新标签label1,数据窗口继续往后滑动两个数据点,连续创造新的样本与标签,完成数据集的重构。
[0063]
本实施例中,数据集中有80%被用作训练集,20%被用作测试集,分别用于训练与评价模型。
[0064]
s4、构建wd-gru神经网络模型,将划分好的数据集送入wd-gru神经网络模型中进行训练,完成wd-gru模型的训练;
[0065]
具体的,wd-gru模型是基于tensor flow搭建gru网络模型,模型整体由两层gru网络和一层全连接层组成,gru层神经元个数分别为80、100,全连接神经元的个数与步骤s3中标签集数据维数j相同;为防止模型过拟合,每层添加20%dropout,随机舍弃神经元;使用adam优化器,使用均方误差(mse)作为损失函数,mse的公式为:
[0066][0067]
其中,xi与分别为数据的实际值与预测值,n为样本数量。
[0068]
具体的,gru神经网络结构如图4所示。gru内部由重置门和更新门组成,其中x
t
表示当前输入信息、h
t-1
表示过去记忆信息、表示隐藏层信息、h
t
表示当前输出信息;r
t
表示重置门,用于控制遗忘先前血糖走势信息的程度;z
t
表示更新门,用于控制信息的更新。r
t
与z
t
均使用sigmoid激活函数处理,将数据压缩在[0~1]之间;且使用tanh激活函数处理,将数据压缩至[-1~1]之间,r
t
、z
t
、h
t
的具体运算过程如公式为:
[0069]rt
=sigmoid(wr.[h
t-1
,x
t
])
[0070]zt
=sigmoid(wz.[h
t-1
,x
t
])
[0071][0072][0073]
其中,wz、wr、w为模型训练的参数;
[0074]
s5、输入连续采样的血糖数据,调用wd-gru模型进行血糖的预测;
[0075]
具体的,输入与步骤s3中数据窗口中数据集点总数m相同的血糖值,调用步骤s4中wd-gru模型,得出j个预测值点,得出未来时长为δt=τ*j的血糖预测曲线,其中τ为样本点采样时间间隔。
[0076]
采用mae、rmse、r2评价wd-gru模型的预测精度,公式为:
[0077][0078][0079]
[0080]
xi与分别为第i个数据的实际值与预测值,为原始数据均值,n为样本数量,rmse、mae的值越小表示模型拟合程度越好。r2值越接近1,表示模型拟合的效果越显著,模型越精确。
[0081]
具体的,使用健康志愿者的14天cgm数据对本发明进行了测试,图5为当预测时长为15min时,使用本发明提出模型的预测结果曲线。在预测时长为15min时,使用上述评价指标评价对比本发明提出的血糖预测模型与其他预测问题常用模型方法的结果如表1所示,本发明的各项指标在表1中实现的各个方法中均为最优。在预测时长为15min时,本发明提出的血糖预测方法的rmse达到3.096mg/dl、mae达到2.505mg/dl、r2达到0.962。
[0082]
表1
[0083][0084]
表2为预测不同时长血糖数据时,各项评价指标对比。其中,在预测时长为30min时,rmse、mae、r2分别可达到4.981mg/dl、3.683mg/dl、0.902。图6为当预测时长分别为15min、30min、45min、60min时的部分测试样本点段预测曲线。
[0085]
表2
[0086][0087]
具体的,在本发明的实际应用中,用户可根据不同需求,选择适宜的目标时长进行预测。
[0088]
s6、根据预测的血糖数据对用户进行及时的高/低血糖预警,其中在得到模型预测结果后,遍历预测的血糖值,当预测的血糖值p》7.8mmol/l时,及时发出高血糖预警,提醒用户及时实施降血糖措施;当预测的血糖值p<2.8mmol/l时,及时发出低血糖预警,提醒用户及时补充葡萄糖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献