血糖预测模型的训练方法、装置、终端及存储介质
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种血糖预测模型的训练方法、装置、终端及存储介质。
背景技术
作为一种严重危害人类健康的慢性非传染病性疾病,长期的糖尿病可能会带来一系列的并发症,如心肌梗塞、肾衰竭、糖尿病眼以及糖尿病足等。因此,及时预测血糖数据,有效控制血糖波动成为糖尿病管理与控制的主要任务。
目前针对血糖预测主要有两种方法:一种是基于生理模型的方法,该方法精度相对较高,然而,该方法需要基于大量的生理学知识,并且人体生理学参数非常复杂且不易确定;另一种是完全基于历史血糖数据的预测方法。本发明采用后者,即数据驱动方法。虽然很多基于历史数据的血糖预测方法已经被提出,比如:自回归移动平均方法(Autoregressive Integrated Moving Average method,ARIMA)以及支持向量回归(Support Vector Regression,SVR)等,虽然取得了一定的效果,但仍存在预测精度不够高,预测鲁棒性较低等问题。
发明内容
本发明实施例提供了一种血糖预测模型的训练方法、装置、终端及存储介质,以解决预测精度不够高以及预测鲁棒性较低等技术问题,实现血糖数据的准确预测。
第一方面,本发明实施例提供了一种血糖预测模型的训练方法,该方法包括:
获取与各个采集时间点对应的至少两组历史血糖检测数据作为目标训练组,其中,每个所述目标训练组包括与至少两个采集时间对应的历史血糖检测数据;
将所述目标训练组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练,得到目标血糖预测模型;其中,
所述将所述目标考数据组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练包括:通过所述初始血糖预测模型的聚类层对所述至少两个目标训练组中的历史血糖检测数据进行聚类,生成至少一个聚类簇;
通过所述初始血糖预测模型的分簇变换层基于与各个所述聚类簇对应的线性和非线性变换函数分别对各个所述聚类簇中的各组历史血糖检测数据进行变换,其中,各聚类簇对应的线性变换函数的变换参数均不相同;
将各个聚类簇中的变换后的各组历史血糖检测数据输入至所述初始血糖预测模型的门控循环单元GRU中,对初始血糖预测模型中的线性变化参数和GRU参数进行更新训练。
第二方面,本发明实施例还提供一种血糖预测模型的训练装置,该装置包括:
训练数据获取模块,用于获取与各个采集时间点对应的至少两组历史血糖检测数据作为目标训练组,其中,每个所述目标训练组包括与至少两个采集时间对应的历史血糖检测数据;
模型训练模块,用于将所述目标训练组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练,得到目标血糖预测模型;其中,模型训练模块用于:
通过所述初始血糖预测模型的聚类层对所述至少两个目标训练组中的历史血糖检测数据进行聚类,生成至少一个聚类簇;
通过所述初始血糖预测模型的分簇变换层基于与各个所述聚类簇对应的线性和非线性变换函数分别对各个所述聚类簇中的各组历史血糖检测数据进行变换,其中,各聚类簇对应的线性和非线性变换函数的线性变换参数均不相同;
将各个聚类簇中的变换后的各组历史血糖检测数据输入至所述初始血糖预测模型的门控循环单元GRU中,对初始血糖预测模型中的线性变化参数和GRU参数进行更新训练。
第三方面,本发明实施例还提供了一种终端,所述终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明中任一实施例所提供的血糖预测模型的训练方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明中任一实施例所述的血糖预测模型的训练方法。
本发明实施例的技术方案,通过将各个目标训练组历史血糖检测数据进行聚类生成聚类簇,能够有效将具有群体相似性的血糖数据进行分类,进而采用不相同的线性和非线性变换函数的线性变换参数对各个所述聚类簇中的各组历史血糖检测数据进行变换,即能够针对各组历史血糖检测数据分别选取适合该组历史血糖检测数据需求的线性和非线性变换参数,能够更好地捕获数据变化特性,同时增加模型预测能力,最后将各个聚类簇中的变换后的各组历史血糖检测数据输入门控循环单元GRU中,进行参数更新训练,相对于现有技术中针对ARIMA模型、SVR模型进行训练,得到的血糖预测模型,解决了现有技术方案预测精度不够高以及预测鲁棒性较低等技术问题,能够预测更长时间的数据,而且具有预测数据更高的精度。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1A是本发明实施例一所提供的一种血糖预测模型的训练方法的流程图;
图1B是本发明实施例一所提供的一种血糖预测模型中各层具体训练方法的流程图;
图1C是本发明实施例一所提供的一种基于卡尔曼滤波方法滤波前后血糖序列的示意图;
图1D是本发明实施例一所提供的一种血糖预测模型的训练方法优选实例的流程图;
图1E是本发明实施例一所提供的I型、Ⅱ型糖尿病患者30分钟预测结果对比图;
图1F是本发明实施例一所提供的I型、Ⅱ型糖尿病患者45分钟预测结果对比图;
图1G是本发明实施例一所提供的I型、Ⅱ型糖尿病患者60分钟预测结果对比图;
图2是本发明实施例二所提供的一种血糖预测模型的训练装置的结构图;
图3是本发明实施例三所提供的一种终端的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1A为本发明实施例一所提供的一种血糖预测模型的训练方法的流程图,本实施例可适用于基于现有的血糖检测数据对未来一段时间内的血糖数据进行预测的情况,该方法可以由血糖预测模型的训练装置来执行,该装置可以通过软件和/或硬件的方式来实现,并且一般可独立配置于终端或服务器中实现本实施例的方法。
如图1A所示,本实施例的方法具体包括:
S110、获取与各个采集时间点对应的至少两组历史血糖检测数据作为目标训练组。
其中,每个所述目标训练组包括与至少两个采集时间对应的历史血糖检测数据。可选地,所述至少两组历史血糖检测数据中各组的历史血糖检测数据的数量可以相同。可以理解是,模型训练往往是需要依赖大量数据的数学分析方法,因此。每个所述目标训练组包括的历史血糖检测数据的数量越多,对训练得到的血糖预测模型的精准度的提升越大。
可选地,可采用连续血糖监测(Continuous Glucose Monitoring,CGM)设备来采集血糖数据,例如可以每隔几分钟输出一个血糖浓度值作为血糖检测数据,在一定程度上缓解了采集频率低而导致的血糖数据匮乏的问题。
需要说明的是,历史血糖检测数据可以是基于CGM实时采集血糖数据,也可以是从糖尿病患者的电子病历中获取历史采集的血糖数据。CGM设备采集到的连续血糖数据可以看作时间序列的一种,能够有效反应血糖数据的时序特征。
由于个体差异性,不同的被采集对象血糖数据可能相似也出现可能相差很大的情况,因此目标训练组中的历史血糖检测数据不仅与采集时间相关,还与被采集对象对应。为了使得血糖预测模型能够适用于不同的被采集对象,因此在获取与各个采集时间点对应的至少两组历史血糖检测数据作为目标训练组时,可选是分别获取至少两个被采集对象的与各个采集时间点对应的至少两组历史血糖检测数据作为目标训练组。例如,可以分别获取第一采集对象在第一设定时间段至少一组历史血糖检测数据,以及第二采集对象在第二设定时间段至少一组历史血糖检测数据,作为目标训练组。其中,第一采集对象与第二采集对象不同。
具体地,可根据预设的采集时间长度或预设的历史血糖检测数据的数量来确定一组历史血糖检测数据。例如可以是,将30分钟内采集的历史血糖数据作为一组历史血糖检测数据,或者将连续的10个历史血糖数据作为一组历史血糖检测数据等。还可以是获取被采集对象在第一时间长度内的第一数量的历史血糖检测数据,根据第二时间长度或者预设的组数将所述第一数量的历史血糖检测数据进行划分,得到各组历史血糖检测数据。其中,第一时间长度大于第二时间长度。需要说明的是,一组中血糖检测数据的数量可以根据实际需求进行设定,在此不做具体限定。
需要说明的是,目标训练组中的各组历史血糖检测数据对应的采集时间间隔相同。具体可以是,通过基于同一采集方式进行历史血糖检测数据的采集来实现,也可以是,在已有的历史血糖检测数据中进行数据筛选来实现。例如,第一采集对象的历史血糖检测数据的采集时间间隔是3分钟,而第二采集对象的历史血糖检测数据的采集时间间隔是1分钟,则需要从第二采集对象的历史血糖检测数据中筛选出采集时间间隔是3分钟的血糖检测数据,进而将筛选出的一组血糖检测数据和第一采集对象的一组历史血糖检测数据作为目标训练组。
S120、将所述目标训练组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练,得到目标血糖预测模型。
示例性地,所述初始血糖预测模型包括聚类层、分簇变换层和门控循环单元(Gated Recurrent Unit,GRU)。
具体地,将所述目标训练组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练可包括:
S121、可通过所述初始血糖预测模型的聚类层对所述至少两个目标训练组中的历史血糖检测数据进行聚类,生成至少一个聚类簇。
在实施例中,对所述至少两个目标训练组中的历史血糖检测数据进行聚类,生成至少一个聚类簇具体可包括:将所述至少两个目标训练组中的历史血糖检测数据以组为单位进行差分处理,进而根据查分处理的结果将所述至少两个目标训练组进行聚类,生成至少一个聚类簇。具体地,获取所述至少历史两组血糖检测数据中的每组血糖检测数据作为均作为一个目标数据组,并将每个目标数据组中各个血糖检测数据进行差分处理生成与各个目标数据组对应的差分数据组;将各个所述差分数据组分别变换为各个符号函数,将各个所述符号函数的输出序列作为特征,输入至基于距离的聚类算法中进行聚类,并根据聚类结果,以及与所述符号函数对应的各目标数据组,生成至少一个聚类簇。
其中,将每个目标数据组中各个历史血糖检测数据进行差分处理生成与各个目标数据组对应的差分数据组,具体可包括:获取目标数据组中相邻两个历史血糖检测数据作为差分数据对,将所述差分数据对中第二采集时间对应的历史血糖检测数据减去第一采集时间对应的历史血糖检测数据的差值作为目标元素,其中,第一采集时间早于第二采集时间;计算出目标数据组中各个差分数据对所对应的目标元素,并根据所述目标数据组中各差分数据对中的历史血糖检测数据的采集顺序确定各目标元素的目标排列顺序,基于所述目标排列顺序和各所述目标元素生成差分数据组。本技术方案能够有效反映出血糖数据的波动的时序特征,能够为血糖预测模型的训练奠定坚实的基础。
示例性地,需要对患者每天的血糖波动数据进行聚类,以便找出具有相似波动模式的被采集对象。假设目标采集对象在预设采集时间内滤波后的血糖数据表示为:
X={x1,x2,,,xn,,,xN},N=480
为了对患者的血糖波动模式进行聚类,也就是找出波形相似的曲线簇,可以首先对滤波后的血糖数据X进行差分得到
对于中的每个元素xn-xn-1,如果其值大于0,则该项取1,反之则取-1,这样变换后得到Xsgn,数学表示为:
其中,sgn(*)为符号函数。
再把处理得到的Xsgn输入k_means聚类算法中即可对患者的血糖波动模式进行聚类并得到聚类簇clusters,表示为:
clusters=k_means(Xsgn)
其中,k_means算法,也写作k-means,以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量最优分类,使得评价指标最小,采用误差平方和准则函数作为聚类准则函数。
S122、通过所述初始血糖预测模型的分簇变换层基于与各个所述聚类簇对应的线性和非线性变换函数对各个所述聚类簇中的各组历史血糖检测数据进行变换。其中,各聚类簇对应的线性和非线性变换函数的线性变换参数均不相同。可选是,先对各聚类簇先通过加权的方式做线性变换,进而通过输入至激活函数等非线性函数中做非线性变换。
示例性地,所述线性和非线性变换函数可包括:
x=tanh(wnx)
其中,n为聚类簇的标识信息,wn为线性变换参数,tanh为激活函数。
基于上述公式对针对不同聚类簇进行线性和非线性变换时,不同的聚类簇对应wn有不同的取值。
S123、将各个聚类簇中的变换后的各组历史血糖检测数据作为训练样本,对所述初始血糖预测模型的门控循环单元GRU中,对所述初始血糖预测模型中的线性变化参数和GRU参数进行训练,得到血糖预测模型。
GRU是循环神经网络(Recurrent Neural Networks,RNN)的一种变体,相对于RNN和长短时记忆网络(Long Short Term Memory,LSTM),它保留了LSTM优点的同时又简化了LSTM的门结构,使得结构更简洁。由于不同患者的所有数据对共享同一个GRU层,因此能够很好的利用糖尿病患者的血糖数据波动特征的群体相似性。可以理解的是,训练样本中的血糖数据越丰富,数据量越大,训练得到的血糖预测模型预测的精准度也会相对越高。
考虑到采集过程血糖数据可能会收到各种因素影响,在所述将所述目标训练组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练之前,还可以包括:采用卡尔曼滤波方法对各个聚类簇中的各组历史血糖检测数据进行滤波。以去除血糖数据中的噪声,还原真实的血糖数据,提高预测精准度。其中,卡尔曼滤波(Kalmanfiltering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。如图1C所示,根据滤波前后的比较可知,采用卡尔曼滤波方法对各个聚类簇中的各组历史血糖检测数据进行滤波后的效果很好。
在上述各技术方案的基础上,在所述得到血糖预测模型之后,本发明实施例的方法还可包括:获取目标对象的与各个采集时间点对应的一组血糖检测数据作为当前参考数据组;其中,每组血糖检测数据包括与至少两个采集时间对应的血糖检测数据;将所述当前参考数据组中的各血糖检测数据输入至与所述目标聚类簇对应的门控循环单元GRU模型中,根据输出结果确定血糖预测数据。
其中,根据输出结果确定血糖预测数据可以是将输出的血糖数据作为血糖预测数据,或者将输出的血糖数据按照预设调整规则调整后作为血糖预测数据等。可以理解的是,适当增加当前参考数据组中的血糖检测数据的数量,能够辅助提高血糖预测数据的准确性。
本发明实施例的技术方案,通过将各个目标训练组历史血糖检测数据进行聚类生成聚类簇,能够有效地将具有群体相似性的血糖数据进行分类,进而采用不相同的线性和非线性变换函数对各个所述聚类簇中的各组历史血糖检测数据进行变换,即能够针对各组历史血糖检测数据分别选取满足该组历史血糖检测数据需求的线性和非线性变换参数,能够更好地捕获数据变化趋势特性,同时增加数据的灵活性,最后将各个聚类簇中的变换后的各组历史血糖检测数据作输入至门控循环单元GRU模型进行参数更新训练,相对于现有技术中针对ARIMA模型、SVR模型进行训练,得到的血糖预测模型,解决了现有技术方案预测精度不够高以及预测鲁棒性较低等技术问题,能够预测更长时间的数据,而且具有预测数据更高的精度。
图1D是本实施例所提供的一种血糖预测模型的训练方法优选实例的流程图。本实例的主要内容为:首先根据患者的血糖波动模式使用聚类算法划分到不同的聚类簇,然后针对不同的聚类簇进行不同的线性和非线性变换,再把变换后的结果送到共享GRU层,最终输出预测的血糖值。
首先,需要对预测的参考数据进行采集。具体可以是,由被采集对象佩戴CGM设备,每隔m分钟输出一个实时血糖值,其中,m的数值可以根据实际需求进行设定,本发明采集了I型和Ⅱ型糖尿病患者血糖数据。为了保证数据的完整性和可靠性,对于数据有缺失、不足一整天以及明显存在异常的数据进行剔除处理。本实例中采用的CGM设备每隔3分钟输出一个血糖值。共采集到240天数据,其中I型和Ⅱ型糖尿病患者各有120天血糖数据。
其次,由于被采集对象佩戴CGM设备过程中可能会出现设备松动,出现设备与被采集对象接触不良的情况,而导致了输出的血糖值含有很多的毛刺,显然不利于对血糖值进行预测。因此,本实例采用卡尔曼滤波方法首先对采集到的原始血糖数据进行滤波。为了能利用历史h个数据点的血糖值分别预测未来p个数据点的血糖值。本实例中h=10,由于每隔3分钟输出一个血糖值,也就是代表历史30分钟的10个数据点,同理,p=10,15,20也就是未来30分钟,45分钟,60分钟所对应的数据点。
具体地,可根据滤波后的血糖数据构建“输入-输出”数据对,可表示为:xi={xi1,xi2,…,xij,…,xiN};其中,i=(1,2,3,...,120)表示一共120天数据;N=480,表示一天480个数据点,通过对Xi进行截取,构建“输入-输出”对,以半小时预测为例,可以表示为:
需要说明的是,本实例中把I型、Ⅱ型糖尿病患者血糖数据分开处理,并且所有数据对的80%作为训练数据,来训练血糖预测模型,其余20%作为测试数据,来对训练得到的血糖预测模型的精度进行测试。
然后,基于每一个“输入-输出”数据对对构建的血糖预测模型进行训练,训练过程如下:
将滤波后的120条历史血糖数据,根据血糖波动模式聚类方法进行差分处理,然后把差分后的数据作为k-means聚类算法的输入,聚类算法输出每条数据所在的聚类簇,具体实施方式可参见S120中的技术方案,在此不再赘述。本实例中针对I型糖尿病患者血糖数据共获得2个聚类簇,Ⅱ型糖尿病患者血糖数据共获得4个聚类簇。
可以理解的是,当被采集对象的血糖数据经过滤波之后,按照上述数据处理方法获得“输入-输出”数据对并且滤波之后的血糖数据已经由聚类算法划分到某个聚类簇中,则属于该聚类簇。其中,各矩阵中存储的元素均为历史血糖检测数据。
分簇变换层可用于针对不同的聚类簇中的血糖数据进行不同的线性和非线性变换,以得到更具表征能力的血糖波动特征表示。训练数据经过聚类之后被分到不同的患者簇,每个簇使用不同的参数进行线性、非线性变换,也就是说此层参数不共享。
最终,分簇变换层的血糖数据输入共享GRU层,由共享GRU层捕获血糖波动的时序特征并进行预测输出血糖预测值。最后,可根据训练阶段已经训练好的模型和输入的血糖数据,预测相应的血糖值。
在上述各技术方案的基础上,在所述得到血糖预测模型之后,本发明实施例的方法还可包括:基于均方误差(Mean Square Error,MSE)衡量算法确定所述血糖预测模型的预测精度。具体地,均方误差(Mean Square Error,MSE)衡量算法可以定义为如下公式:
其中,为第k个预测的血糖值,为对应的第k个真实的血糖值,K为血糖测试样本总数。
本实例基于历史半小时范围的血糖值预测未来30分钟、45分钟和60分钟的血糖值。对于每个预测范围随机选取两天的预测结果进行示意,其余类似。着重从定性和定量的角度,对比了基于本发明实施例的血糖预测模型对血糖数据进行预测的方法(简称:C-GRU方法)和基于SVR模型的预测方法(简称:SVR方法)以及仅使用GRU模型的预测方法(简称:GRU方法)的性能差异。其中,本发明的血糖预测模型基于血糖预测模型的训练方法训练得到。可以理解的是,仅仅使用GRU是指没有聚类处理和分簇变换层,单纯使用GRU作为预测器进行血糖预测。
一、定性分析
图1E、图1F、图1G分别展示了I型、Ⅱ型患者预测时间为30分钟、45分钟、60分钟时的预测结果对比,每个图中(a)和(b)为随机挑选的I型糖尿病患者不同时段的预测结果对比图,(c)和(d)为随机挑选的Ⅱ型糖尿病患者不同时段的预测结果对比图。
由图1E可知,当预测时间为30分钟时,几种算法预测总体趋势都和实际值一致,但是当真实数据存在较大抖动时SVR方法不能很好的保持稳定,预测结果容易出现很大的波动和不稳定,例如图1E的(b)、(c)、(d)图的实线尖峰部分。这说明SVR方法在血糖预测任务上鲁棒性相对不高,而C-GRU方法的总体预测效果最佳。
由图1F、图1G可知,当预测时间增加为45分钟甚至60分钟时,几种算法的总体预测趋势不如图1E,这说明预测时间越短,预测结果越精准。同时,SVR方法仍然存在鲁棒性不高的问题,总体上C-GRU方法的预测精度优于其它两种方法。
二、定量分析
表1
表1示出了基于上述三种方法分别对I型血糖数据进行预测后的均方误差MSE评价指标,该值越小说明预测越准确。从表1可知,对于I型糖尿病患者血糖数据:在30分钟范围预测任务上,GRU方法和C-GRU方法比SVR方法在预测精度上分别提高9.7%、22%;在45分钟范围预测任务上分别预测精度分别提高4.3%、28%;在60分钟预测任务上预测精度分别提高1.64%、39%。
表2
表2示出了基于上述三种方法分别对Ⅱ型血糖数据进行预测后的后的均方误差MSE评价指标,该值越小说明预测越准确。从表2可知,对于Ⅱ型糖尿病患者血糖数据:在30分钟范围预测任务上,GRU方法和C-GRU方法比SVR方法在预测精度上分别提高55.94%、58.0%;在45分钟范围预测任务上预测精度分别提高15.3%、15.3%;在60分钟预测任务上预测精度分别提高0%、3.8%。
综上,GRU方法和C-GRU方法的血糖预测精度要优于SVR方法,体现了GRU在血糖预测方面的优势。同时,本发明提出的C-GRU方法的预测精度优于其它两种方法。
实施例二
图2为本发明实施例二提供的一种血糖预测模型的训练装置的结构示意图,本实施例可适用于基于现有的血糖检测数据对未来一段时间内的血糖数据进行预测的情况,该血糖预测模型的训练装置训练数据获取模块和模型训练模块。
其中,训练数据获取模块,用于获取与各个采集时间点对应的至少两组历史血糖检测数据作为目标训练组,每个所述目标训练组包括与至少两个采集时间对应的历史血糖检测数据;模型训练模块,用于将所述目标训练组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练,得到目标血糖预测模型;所述模型训练模块可用于:通过所述初始血糖预测模型的聚类层对所述至少两个目标训练组中的历史血糖检测数据进行聚类,生成至少一个聚类簇;通过所述初始血糖预测模型的分簇变换层基于与各个所述聚类簇对应的线性和非线性变换函数分别对各个所述聚类簇中的各组历史血糖检测数据进行变换,其中,各聚类簇对应的线性和非线性变换函数的线性变换参数均不相同;将各个聚类簇中的变换后的各组历史血糖检测数据输入至所述初始血糖预测模型的门控循环单元GRU中,对初始血糖预测模型中的线性变化参数和GRU参数进行更新训练。
本发明实施例的技术方案,通过将各个目标训练组历史血糖检测数据进行聚类生成聚类簇,能够有效将具有群体相似性的血糖数据进行分类,进而采用不相同的线性和非线性变换函数对各个所述聚类簇中的各组历史血糖检测数据进行变换,即能够针对各组历史血糖检测数据分别选取适合该组历史血糖检测数据需求的线性和非线性变换参数,能够更好地捕获数据变化趋势特性,同时增加模型的灵活性,最后将各个聚类簇中的变换后的各组历史血糖检测数据输入至门控循环单元GRU模型进行参数变换训练,相对于现有技术中针对ARIMA模型、SVR模型进行训练,得到的血糖预测模型,解决了现有技术方案预测精度不够高以及预测鲁棒性较低等技术问题,能够预测更长时间的数据,而且具有预测数据更高的精度。
在上述技术方案的基础上,所述聚类层包括差分数据组生成单元、符号函数聚类单元和聚类组生成单元。
其中,差分数据组生成单元,用于获取所述至少两组历史血糖检测数据中的每组历史血糖检测数据作为均作为一个目标数据组,并将每个目标数据组中的历史血糖检测数据进行差分处理生成与各个目标数据组对应的差分数据组;聚类簇生成单元,用于将各个所述差分数据组分别变换为各个符号函数,将各个所述符号函数的输出序列作为特征,输入至基于距离的聚类算法中进行聚类,并根据聚类结果,以及与所述符号函数对应的各目标数据组,生成至少一个聚类簇。
在上述技术方案的基础上,所述差分数据组生成单元具体可用于:
获取目标数据组中相邻两个历史血糖检测数据作为差分数据对,将所述差分数据对中第二采集时间对应的历史血糖检测数据减去第一采集时间对应的历史血糖检测数据的差值作为目标元素,其中,第一采集时间早于第二采集时间;
计算出目标数据组中各个差分数据对所对应的目标元素,并根据所述目标数据组中各差分数据对中的历史血糖检测数据的采集顺序确定各目标元素的目标排列顺序,基于所述目标排列顺序和各所述目标元素生成差分数据组。
示例性地,所述线性和非线性变换函数包括:
x=tanh(wnx)
其中,n为聚类簇的标识信息,wn为线性变换参数,tanh为激活函数。
在上述各技术方案的基础上,所述装置还可以包括:
滤波模块,用于在所述分别将各个聚类簇中的各组历史血糖检测数据作为训练样本之前,采用卡尔曼滤波方法对各个聚类簇中的各组历史血糖检测数据进行滤波。
在上述各技术方案的基础上,所述装置还包括参考数据获取模块和血糖数据预测模块。其中,参考数据获取模块用于在所述得到血糖预测模型之后,获取目标对象的与各个采集时间点对应的一组血糖检测数据作为当前参考数据组;其中,每组血糖检测数据包括与至少两个采集时间对应的血糖检测数据;血糖数据预测模块,用于将所述当前参考数据组中的各血糖检测数据输入至与所述目标聚类簇对应的门控循环单元GRU模型中,根据输出结果确定血糖预测数据。
上述血糖预测装置可执行本发明任意实施例所提供的血糖预测方法,具备执行血糖预测方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三所提供的一种终端的结构示意图。图3示出了适于用来实现本发明实施方式的示例性终端312的框图。图3显示的终端312仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,终端312以通用计算设备的形式表现。终端312的组件可以包括但不限于:一个或者多个处理器或者处理器316,存储装置328,用于存储一个或多个程序,连接不同系统组件(包括存储装置328和处理器316)的总线318。当所述一个或多个程序被所述一个或多个处理器316执行,使得所述一个或多个处理器316实现本发明任意实施例所述的血糖预测模型的训练方法。
总线318表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
终端312典型地包括多种计算机系统可读介质。这些介质可以是任何能够被终端312访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置328可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)330和/或高速缓存存储器332。终端312可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统334可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线318相连。存储器328可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块342的程序/实用工具340,可以存储在例如存储器328中,这样的程序模块342包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块342通常执行本发明所描述的实施例中的功能和/或方法。
终端312也可以与一个或多个外部设备314(例如键盘、指向设备、显示器324等)通信,还可与一个或者多个使得用户能与该终端312交互的设备通信,和/或与使得该终端312能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口322进行。并且,终端312还可以通过网络适配器320与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器320通过总线318与终端312的其它模块通信。应当明白,尽管图中未示出,可以结合终端312使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器316通过运行存储在存储装置328中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的血糖预测模型的训练方法。
另外,本发明实施例还提供了一种包含计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种血糖预测模型的训练方法,该方法包括:
获取与各个采集时间点对应的至少两组历史血糖检测数据作为目标训练组,其中,每个所述目标训练组包括与至少两个采集时间对应的历史血糖检测数据;
将所述目标训练组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练,得到目标血糖预测模型;其中,
所述将所述目标考数据组中的各历史血糖检测数据输入至预先建立的初始血糖预测模型中进行参数更新训练包括:通过所述初始血糖预测模型的聚类层对所述至少两个目标训练组中的历史血糖检测数据进行聚类,生成至少一个聚类簇;
通过所述初始血糖预测模型的分簇变换层基于与各个所述聚类簇对应的线性和非线性变换函数分别对各个所述聚类簇中的各组历史血糖检测数据进行变换,其中,各聚类簇对应的线性和非线性变换函数的线性变换参数均不相同;
将各个聚类簇中的变换后的各组历史血糖检测数据输入至所述初始血糖预测模型的门控循环单元GRU中,对初始血糖预测模型中的线性变化参数和GRU参数进行更新训练。
可选的,该计算机可执行指令在由计算机处理器执行时还可以用于执行本发明任意实施例所提供的血糖预测模型的训练方法的技术方案。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读存储介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。