医疗数据合成方法及装置

申请号 CN202311332221.4 申请日 2023-10-16 公开(公告)号 CN117077641B 公开(公告)日 2024-01-19
申请人 北京亚信数据有限公司; 发明人 沈丹婷; 张灏; 赵礼悦; 柏沁言;
摘要
权利要求

1.一种医疗数据合成方法,其特征在于,包括:
根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;
采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;
采用训练好的生成器将输入的随机噪声转化成合成医疗数据;其中,所述随机噪声满足预设分布规则;
采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格;其中,反转化器为根据先验规则约束生成;
根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本,包括:
采用高斯混合模型对第二数据表格中连续型变量的列进行拟合,确定得到第二数据表格中每一连续型变量的特征值;其中,第二数据表格为根据预先配置的先验规则对各真实医疗数据表格进行数据预处理得到;
采用独热编码对第二数据表格中离散型变量的列进行处理,得到第二数据表格中每一离散型变量的特征值;
将第二数据表格中每一行对应的连续型变量的特征值、离散型变量的特征值串联起来,得到多个训练样本;其中,每一训练样本中包含第二数据表格中一行对应的连续型变量的特征值、离散型变量的特征值串联操作结果。
2.如权利要求1所述的医疗数据合成方法,其特征在于,根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本,包括:
根据各真实医疗数据表格、各真实医疗数据表格的表结构关系、以及表格内部结构关系,合并各真实医疗数据表格,得到第一数据表格;
根据预先生成的转化器,清洗第一数据表格中不满足先验规则的医疗数据,得到第二数据表格;转化器为根据先验规则约束生成;
采用高斯混合模型、以及独热编码,对第二数据表格进行编码转换处理,得到训练样本。
3.如权利要求2所述的医疗数据合成方法,其特征在于,表结构关系包括:母表、子表、和关联字段,表格内部结构关系包括:列类型、脱敏处理指示信息、缺失值处理指示信息;
根据输入的各真实医疗数据表格、各真实医疗数据表格的表结构关系、以及表格内部结构关系,合并各真实医疗数据表格,得到第一数据表格,包括:
根据各真实医疗数据表格的表结构关系,挑选各真实医疗数据表格中的母表作为基础表;
根据各真实医疗数据表格的母表、子表、和关联字段,在基础表中关联各真实医疗数据表格中除基础表外的其他表格中的列,得到初始合并数据表格;
根据表格内部结构关系,确定每一真实医疗数据表格中的列标识、列类型;
根据每一真实医疗数据表格中的列标识、列类型、脱敏处理指示信息、缺失值处理指示信息,对初始合并数据表格进行缺失值处理、以及信息脱敏处理,得到第一数据表格。
4.如权利要求3所述的医疗数据合成方法,其特征在于,根据各真实医疗数据表格的母表、子表、和关联字段,在基础表中关联各真实医疗数据表格中除基础表外的其他表格中的列,得到初始合并数据表格,包括:
在各真实医疗数据表格的母表的维度比子表的维度高时,使用关联字段将子表的列合并到基础表中;
在各真实医疗数据表格的母表的维度不高于子表的维度时,对子表采用重塑reshape函数进行处理,以供子表的维度与母表的维度一致,将reshape处理后的子表的列合并到基础表中。
5.如权利要求4所述的医疗数据合成方法,其特征在于,列类型包括:连续型变量、离散型变量;
根据每一真实医疗数据表格中的列标识、列类型、脱敏处理指示信息、缺失值处理指示信息,对初始合并数据表格进行缺失值处理、以及信息脱敏处理,得到第一数据表格,包括:
根据缺失值处理指示信息,对初始合并数据表格中指示不处理缺失值的连续型变量的列不进行处理,对初始合并数据表格中指示处理缺失值的连续型变量的列填充缺失值;
根据缺失值处理指示信息,对初始合并数据表格中指示处理缺失值、且存在缺失值的离散型变量的列,在该列后新增一列用以添加缺失标签;
根据脱敏处理指示信息,在初始合并数据表格中需要进行脱敏处理的列数据的列标识后添加脱敏数据类型,以供转化器根据列标识后的脱敏数据类型对列标识对应的列数据进行加密编码,得到第一数据表格。
6.如权利要求2所述的医疗数据合成方法,其特征在于,根据预先生成的转化器,清洗第一数据表格中不满足先验规则的医疗数据,得到第二数据表格,包括:
根据预先生成的转化器,对第一数据表格进行组合列、删除列、计算列差值、列数据筛选、列数据替换至少一种处理,以供清洗掉第一数据表格中不满足先验规则的医疗数据,得到第二数据表格。
7.如权利要求1所述的医疗数据合成方法,其特征在于,采用高斯混合模型对第二数据表格中连续型变量的列进行拟合,确定得到第二数据表格中每一连续型变量的特征值,包括:
将第二数据表格中连续型变量的列分别输入到高斯混合模型中,得到高斯分布模式数量、以及第二数据表格中连续型变量的列在每一高斯分布模式下的均值和标准差;
计算第二数据表格中连续型变量的列中的每一数据来自于每一高斯分布模式的概率值;
根据每一数据来自于每一高斯分布模式的概率值,将每一数据对应概率值大的高斯分布模式确定为每一数据的高斯分布模式;
根据每一数据的高斯分布模式,确定每一数据的均值和标准差;
根据每一数据的均值和标准差对每一数据进行归一化处理;
采用独热编码表征每一数据对应的高斯分布模式;
将每一数据的归一化处理结果、以及每一数据的高斯分布模式的独热编码串联,得到每一数据的特征值。
8.如权利要求1所述的医疗数据合成方法,其特征在于,采用独热编码对第二数据表格中离散型变量的列进行处理,得到第二数据表格中每一离散型变量的特征值,包括:
根据对第二数据表格中离散型变量的列存在的数据类别数量、以及离散型变量的列中每一数据实际对应数据类别,采用独热编码对每一数据进行编码;其中,每一数据对应的独热编码中,实际对应数据类别处为1,其他数据类别处为0。
9.如权利要求1所述的医疗数据合成方法,其特征在于,采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为生成器的隐藏层,利用训练样本训练判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器,包括:
利用训练样本预训练去噪自动编码器,得到去噪自动编码器中的第一解码器参数;
在生成器的隐藏层内置一个解码器,并设置解码初始参数为第一解码器参数;
根据高斯噪声分布生成噪声样本;
将训练样本分批,得到多个训练样本批次,每一训练样本批次包括多个训练样本;
针对每一训练样本批次,对判别器和生成器执行下述过程:
根据训练样本批次中的训练样本数量,选择与训练样本数量相等数量的噪声样本输入到在生成器,以供生成器输出第一合成数据;
将第一合成数据的标签标记为假,将训练样本批次中的训练样本的标签标记为真,将第一合成数据、第一合成数据的标签、训练样本批次中的训练样本、训练样本的标签输入到判别器中对判别器进行训练,得到判别器的第一训练损失;
根据判别器的第一训练损失,利用反向传播算法、以及随机梯度下降法调整判别器的参数;
另取与训练样本数量相等数量的噪声样本输入到生成器,以供生成器输出第二合成数据,将第二合成数据的标签标记为真;
将第二合成数据、以及第二合成数据的标签输入到判别器中,得到生成器的第二训练损失;
根据生成器的第二训练损失,利用反向传播算法、以及随机梯度下降法调整生成器中的参数。
10.如权利要求9所述的医疗数据合成方法,其特征在于,判别器内置的一隐藏层用于计算输入数据的均值和标准差,输入数据的均值、标准差,与输入数据的特征值串联后输入到下一隐藏层;其中,输入数据包括:训练样本、第一合成数据、第二合成数据。
11.如权利要求1所述的医疗数据合成方法,其特征在于,采用训练好的生成器将输入的随机噪声转化成合成医疗数据,包括:
采用训练好的生成器根据随机噪声,生成合成医疗数据对应的特征值;
采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格,包括:
采用反转化器对合成医疗数据对应的特征值进行转换,得到合成医疗数据;
在确定合成医疗数据满足先验规则时,根据预先生成的匿名数据库,将合成医疗数据中加密编码的数据转换成相同数据类型的随机数据内容,得到脱敏处理后的合成医疗数据;
根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将脱敏处理后的合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格。
12.一种医疗数据合成装置,其特征在于,包括:
第一处理模,用于根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;
模型训练模块,用于采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;
第二处理模块,用于采用训练好的生成器将输入的随机噪声转化成合成医疗数据;
第三处理模块,用于采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格;
根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本,包括:采用高斯混合模型对第二数据表格中连续型变量的列进行拟合,确定得到第二数据表格中每一连续型变量的特征值;其中,第二数据表格为根据预先配置的先验规则对各真实医疗数据表格进行数据预处理得到;采用独热编码对第二数据表格中离散型变量的列进行处理,得到第二数据表格中每一离散型变量的特征值;将第二数据表格中每一行对应的连续型变量的特征值、离散型变量的特征值串联起来,得到多个训练样本;其中,每一训练样本中包含第二数据表格中一行对应的连续型变量的特征值、离散型变量的特征值串联操作结果。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一所述方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至11任一所述方法。

说明书全文

医疗数据合成方法及装置

技术领域

[0001] 本发明涉及人工智能技术领域,尤其涉及医疗数据合成方法及装置。

背景技术

[0002] 本部分旨在为本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术
[0003] 目前一些涉及用户信息的数据出于保护用户数据安全的目的,无法直接访问使用,例如在医疗领域,医院信息管理系统(HIS)和电子健康记录(EHR)保存了很多医疗数据。然而,研究人员无法直接访问这些医疗数据,因为EHR 数据由个人身份标识组成,而个人标识与潜在的敏感医疗信息相结合,会引起数据安全问题。但是,访问受限减少了及时使用数据的机会,并可能减缓行业的进步。尤其,在医疗数据险检测领域,需要大量应用机器学习做辅助判断,这就需要大量的医疗数据用于训练与测试。但是医疗系统能够提供的医疗数据有限,因此,为了测试特征加工和算法模型在真实数据规模下的性能指标,需要通过生成贴近真实业务数据关系的合成数据来训练模型。目前,缺乏有效的医疗数据合成方法。

发明内容

[0004] 本发明实施例提供一种医疗数据合成方法,用以提高医疗数据合成效率、以及合成准确性,该方法包括:
[0005] 根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;
[0006] 采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;
[0007] 采用训练好的生成器将输入的随机噪声转化成合成医疗数据;其中,所述随机噪声满足预设分布规则;
[0008] 采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格;其中,反转化器为根据先验规则约束生成。
[0009] 本发明实施例还提供一种医疗数据合成装置,用以提高医疗数据合成效率、以及合成准确性,该装置包括:
[0010] 第一处理模,用于根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;
[0011] 模型训练模块,用于采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;
[0012] 第二处理模块,用于采用训练好的生成器将输入的随机噪声转化成合成医疗数据;
[0013] 第三处理模块,用于采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格。
[0014] 本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述医疗数据合成方法。
[0015] 本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述医疗数据合成方法。
[0016] 本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述医疗数据合成方法。
[0017] 本发明实施例中,根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;采用训练好的生成器将输入的随机噪声转化成合成医疗数据;采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格。这样,通过合并真实医疗数据表格、以及根据真实医疗数据之间的关系配置的先验规则生成训练样本,可以使得训练样本训练后的生成器生成贴近真实医疗数据的合成医疗数据,另外,进一步根据先验规则验证了合成医疗数据是否真的符合真实医疗数据的数据关系特征,提高了医疗数据合成效率、以及合成准确性,为后续的医疗数据风险检测提供大量符合条件的医疗数据。
附图说明
[0018] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0019] 图1为本发明实施例中提供一种医疗数据合成方法的流程图
[0020] 图2为本发明实施例中提供的一种根据输入的各真实医疗数据表格、各真实医疗数据表格的表结构关系、以及表格内部结构关系,合并各真实医疗数据表格,得到第一数据表格的方法流程图;
[0021] 图3为本发明实施例中提供的一种根据每一真实医疗数据表格中的列标识、列类型、脱敏处理指示信息、缺失值处理指示信息,对初始合并数据表格进行缺失值处理、以及信息脱敏处理,得到第一数据表格的方法流程图;
[0022] 图4为本发明实施例中提供的一种采用高斯混合模型、以及独热编码,对第二数据表格进行编码转换处理,得到训练样本的方法流程图;
[0023] 图5为本发明实施例中提供的一种高斯分布模式示例图;
[0024] 图6为本发明实施例中提供的一种判别器、生成器的训练流程图;
[0025] 图7为本发明实施例中提供的一种合成医疗数据的处理流程图;
[0026] 图8为本发明实施例中提供的一种分布特征下连续变量的分布示例图;
[0027] 图9为本发明实施例中提供的又一种分布特征下连续变量的分布示例图;
[0028] 图10为本发明实施例中提供的一种分布特征下离散变量的每一分类的频率示例图;
[0029] 图11为本发明实施例中提供的一种医疗数据合成装置的示意图;
[0030] 图12为本发明实施例中提供的一种计算机设备的示意图。

具体实施方式

[0031] 为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
[0032] 本申请技术方案中对数据的获取、存储、使用、处理等均符合法律法规的相关规定。
[0033] 本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
[0034] 在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
[0035] 经研究发现,目前一些涉及用户信息的数据出于保护用户数据安全的目的,无法直接访问使用,例如在医疗领域,医院信息管理系统(HIS)和电子健康记录(EHR)保存了很多医疗数据。然而,研究人员无法直接访问这些医疗数据,因为EHR 数据由个人身份标识组成,而个人标识与潜在的敏感医疗信息相结合,会引起数据安全问题。但是,访问受限减少了及时使用数据的机会,并可能减缓行业的进步。尤其,在医疗数据风险检测领域,需要大量应用机器学习做辅助判断,这就需要大量的医疗数据用于训练与测试。但是医疗系统能够提供的医疗数据有限,因此,为了测试特征加工和算法模型在真实数据规模下的性能指标,需要通过生成贴近真实业务数据关系的合成数据来训练模型。目前,缺乏有效的医疗数据合成方法。
[0036] 现有技术中,生成图像和文本数据方面主要基于神经网络技术的对抗生成网络(GAN)以及它的衍生网络(例如,DCGAN,CycleGAN,WGAN,ConditionalGAN等)。由于GAN能够优异地学习到训练样本的分布并且生成高质量接近真实样本的数据,所以被广泛应用。然而,现有的GAN技术以及基于GAN的衍生技术在医疗数据合成的场景下并不完全适用,其面临的挑战有以下几点:(1)需同时生成多个具有关联性的表格,目前技术只能支持相同维度下单一表格的生成;(2)需要同时生成连续型、离散型和日期等变量,不同类型的数据处理方式不同,GAN模型无法准确自动识别每列的数据类型;(3)潜在的生成规则难以被完全捕捉;(4)身份信息需要做到数据安全保护。
[0037] 但是,相比于其他数据生成方法,GAN具有独特且明显的优势:(1)GANs可以比完全明显的信念网络(NADE,PixelRNN,WaveNet等)更快的产生样本,因为它不需要在采样序列生成不同的数据;(2)相比于变分自编码器(VAE),  GANs没有引入任何决定性偏置( deterministic bias),没有变分下界,如果鉴别器训练良好,那么生成器可以完美的学习到训练样本的分布。也即GANs是渐进一致的,但是VAE是有偏差的;(3)相比玻尔兹曼机和GSNs,GANs生成实例的过程只需要模型运行一次,而不是以尔科夫链的形式迭代很多次;(4)相比非线性ICA(NICE,Real NVE等),GANs不要求生成器输入的潜在变量有任何特定的维度或者要求生成器是可逆的。
[0038] 针对上述研究,如图1所示,本发明实施例提供一种医疗数据合成方法,包括:
[0039] S101:根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;
[0040] S102:采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;
[0041] S103:采用训练好的生成器将输入的随机噪声转化成合成医疗数据;其中,所述随机噪声满足预设分布规则;
[0042] S106:采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格;其中,反转化器为根据先验规则约束生成。
[0043] 本发明实施例中,根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;采用训练好的生成器将输入的随机噪声转化成合成医疗数据;采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格。这样,通过合并真实医疗数据表格、以及根据真实医疗数据之间的关系配置的先验规则生成训练样本,可以使得训练样本训练后的生成器生成贴近真实医疗数据的合成医疗数据,另外,进一步根据先验规则验证了合成医疗数据是否真的符合真实医疗数据的数据关系特征,提高了医疗数据合成效率、以及合成准确性,为后续的医疗数据风险检测提供大量符合条件的医疗数据。
[0044] 下面对上述医疗数据合成方法加以详细说明。
[0045] 首先对本发明实施例中的一些名词加以解释说明:
[0046] 针对上述S101,以往的表格数据生成方法考虑的数据结构通常是单一表格,包括本文参考的生成对抗网络(GAN)技术。然而在医疗场景下,由于数据量大且维度多等特性,数据常常储存在多个具有关联性的表格中,例如主要信息表、诊断表、诊疗项目收费明细表、结算表、和医院基本信息表等。因此先对输入的各真实医疗数据表格进行合并,统一表格数据维度。
[0047] 其中,输入的各真实医疗数据表格例如可以为csv文件,其中还包括:各真实医疗数据表格的表结构关系、以及表格内部结构关系。
[0048] 本发明一实施例中,根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本,例如包括:根据各真实医疗数据表格、各真实医疗数据表格的表结构关系、以及表格内部结构关系,合并各真实医疗数据表格,得到第一数据表格;根据预先生成的转化器,清洗第一数据表格中不满足先验规则的医疗数据,得到第二数据表格;转化器为根据先验规则约束生成;采用高斯混合模型、以及独热编码,对第二数据表格进行编码转换处理,得到训练样本。
[0049] 本发明一实施例中,表结构关系例如包括:母表、子表、和关联字段,表格内部结构关系例如包括:列类型、脱敏处理指示信息、缺失值处理指示信息。如图2所示,为本发明实施例提供的一种根据输入的各真实医疗数据表格、各真实医疗数据表格的表结构关系、以及表格内部结构关系,合并各真实医疗数据表格,得到第一数据表格的方法流程图:
[0050] S201:根据各真实医疗数据表格的表结构关系,挑选各真实医疗数据表格中的母表作为基础表。
[0051] S202:根据各真实医疗数据表格的母表、子表、和关联字段,在基础表中关联各真实医疗数据表格中除基础表外的其他表格中的列,得到初始合并数据表格。
[0052] 需要说明的是,该处理方式仅为示例性举例,在实际应用场景中,还可以根据实际情况采用其他类似能够实现该功能的处理方式,本发明并不对此进行严格限定。
[0053] 本发明一实施例中,根据各真实医疗数据表格的母表、子表、和关联字段,在基础表中关联各真实医疗数据表格中除基础表外的其他表格中的列,得到初始合并数据表格,例如包括:在各真实医疗数据表格的母表的维度比子表的维度高时,使用关联字段将子表的列合并到基础表中;在各真实医疗数据表格的母表的维度不高于子表的维度时,对子表采用重塑reshape函数进行处理,以供子表的维度与母表的维度一致,将reshape处理后的子表的列合并到基础表中。
[0054] 其中,关联字段例如包括各种标识字段,例如医院标识、用户标识、疾病标识、问诊标识等。
[0055] 例如,表1为本发明实施例提供的一种母表T0的示例:
[0056] 表1母表T0
[0057]
[0058] 表2为本发明实施例提供的一种维度高于母表维度的子表Ta的示例:
[0059] 表2子表Ta
[0060]
[0061] 其中,母表T0与子表Ta由ID列关联,且当ID==‘618’时,子表Ta有3行数据。首先将Ta中除了关联列ID外的两列({A1,A2})通过横向变形得到6列 ({A10, A11, A12, A20, A21, A22})得到如表3所示的子表Ta’:
[0062] 表3子表Ta’
[0063]
[0064] 其中,Ta由3行 列 转化成1行 列的结构,再合并到母表得到如表4所示的初始合并数据表格T0’:
[0065] 表4初始合并数据表格T0’
[0066]
[0067] 另外,不同ID在Ta中的行数不一致时,取最大行数rmax做为基准,也就是将Ta并到T0的过程中将增加c rmax(其中c是除了关联列外的列数)。
[0068] S203:根据表格内部结构关系,确定每一真实医疗数据表格中的列标识、列类型。
[0069] S204:根据每一真实医疗数据表格中的列标识、列类型、脱敏处理指示信息、缺失值处理指示信息,对初始合并数据表格进行缺失值处理、以及信息脱敏处理,得到第一数据表格。
[0070] 本发明一实施例中,列类型例如包括:连续型变量、离散型变量。
[0071] 其中,连续型变量例如包括:连续类型和日期时间;离散型变量例如包括:索引类型和离散类型。
[0072] 具体的,在合成数据时,需要生成的连型变量的分布与样本中的分布一致。同时需要生成的离散型变量不会出现分布不平衡的情况。例如,如果合成医疗数据中男女比例为9:1就是性别比例失衡的状态。出于生成目标不同的原因,对不同数据类型的处理也是不同的,因此需要确定每列数据的数据类型与格式。第一数据表格中的数据类型和数据格式如下:
[0073] • 索引类型(index):描述了样本的序号,一个样本只有一个唯一的索引值,通常是由字符串组成的,可以包含数字和字母,以医保数据为例,索引变量可以为患者ID,也可以指就诊编号);
[0074] • 连续类型:包括在一定区间内可以任意取值的变量,其数值是连续不断的,相邻两个数值可作无限分割,即可取无限个数值。例如,医疗费用、年龄、住院天数等。连续变量的格式设定包括指定精确的小数位数;
[0075] • 离散类型:包括二分类变量(例如性别)、多分类变量(例如医院等级)、和计数值(例如诊疗项目的数量)等。离散变量可以设置格式,格式可以为随机数加字母的组合,也可以是其他列的组合,例如就诊编号就可以设置为‘患者ID_医院名_科室名_日期’样式;
[0076] • 日期时间:日期或时间值。日期时间变量的格式例如:“yyyy‑MM‑dd HH:mm:ss”。(由于Unix timestamp可将日期时间转化为数值形式,因此日期时间变量被当作连续型变量处理)。
[0077] 如图3所示,为本发明实施例提供的一种根据每一真实医疗数据表格中的列标识、列类型、脱敏处理指示信息、缺失值处理指示信息,对初始合并数据表格进行缺失值处理、以及信息脱敏处理,得到第一数据表格的方法流程图,包括:
[0078] S301:根据缺失值处理指示信息,对初始合并数据表格中指示不处理缺失值的连续型变量的列不进行处理,对初始合并数据表格中指示处理缺失值的连续型变量的列填充缺失值。
[0079] 具体的,针对连续型变量缺失值处理指示信息包括:不处理缺失值或处理缺失值。不处理缺失值则不处理,若缺失值处理指示信息中不包含某一列连续型变量的处理指示,则可以配置默认不处理;针初始合并数据表格中指示处理缺失值的连续型变量的列填充缺失值。
[0080] 其中,填充缺失值时,例如可以采用均值、众数、预设数值等任一种进行填充,预设数值例如可以为0。
[0081] S302:根据缺失值处理指示信息,对初始合并数据表格中指示处理缺失值、且存在缺失值的离散型变量的列,在该列后新增一列用以添加缺失标签。
[0082] 具体的,针对离散变量缺失值处理指示信息包括:处理和不处理,默认为不处理。处理方式为:对有缺失值的列都新增一列用于标记是否缺失(称此列为缺失标签),这样能够不改变特征的原始分布,同时也能将缺失比例考虑在内。缺失值处理指示信息指示处理某离散型变量的列处理缺失值,且该列数据中有缺失值时,则在此列后增加缺失标签,如果本列没有缺失值或处理指示信息指示不处理时则不添加缺失标签。
[0083] S303:根据脱敏处理指示信息,在初始合并数据表格中需要进行脱敏处理的列数据的列标识后添加脱敏数据类型,以供转化器根据列标识后的脱敏数据类型对列标识对应的列数据进行加密编码,得到第一数据表格。
[0084] 具体的,还可以对敏感数据进行数据安全保护处理。在初始合并数据表格中需要进行脱敏处理的列数据的列标识后面添加脱敏数据类型:例如,{医院名称、科室名称、人名、地名、手机号、身份证号、行卡号}等。转化器Trans会为待脱敏列进行加密编码。加密例如可以采用MD5算法,MD5 采用哈希函数,它的典型应用是对一段信息产生信息摘要,以防止被篡改。无论是多长的输入,MD5 都会输出长度为 128bits 的一个串 (通常用 16 进制表示为32个字符)。
[0085] 这样,在训练模型前就对数据加密编码,能在一定程度防止攻击者通过模型定位训练样本的身份。而反转化器InvTrans在合成医疗数据过程中,会产生待脱敏数据相应类型的替换内容,以替换不可读的编码进一步实现数据脱敏。
[0086] 本发明实施例针真是医疗数据的数据结构特征对数据做了预处理,统一了表格数据维度,将表格结构扁平化或聚合化,以适应生成对抗网络(GAN)的单一表格输入模式表。
[0087] 此外,虽然深度学习模型能够达到较好的学习效果,但是所有的列间关系很难被同时捕捉,例如疾病与性别的关系(如妇科疾病的患者只能为女性)、入院出院时间先后关系、在院天数与访问类型(诊或住院)的关系(通常门诊病人在院天数都小于等于1天)等。因此需要预先根据真是医疗数据之间的关系配置先验规则,进一步根据先验规则约束形成一个转化器(Trans)和一个反转化器(InvTrans)。Trans、InvTrans预先添加至生成装置,这样用户在使用时,只需要输入先验规则标识和列标识即可使用。
[0088] 此外,本发明实施例所述的先验规则例如包括下述5种:
[0089] (1)大小(或先后)规则:列与某数值(例如日期)之间,或列与列之间存在数值大小(例如,时间前后)的关系。
[0090] 示例性的,年龄不为负值,总金额大于单价;入院日期需早于或者等于出院日期等。
[0091] 具体的,当对比对象是某列(A)和特定数值(日期)时,Trans检查第一数据表格T中的A列与特定数值之间的关系,把T中不符合期望的A列值替换成期望的值。在合成医疗数据时(数据是一行一行生成的),InvTrans检查每行的A列是否符合期望,替换不合符期望的值。
[0092] 例如,规则为“患者年龄不为负”,则判断对象是‘age’和0,关系为‘>=’;首先,检查T中的‘age’是否都大于等于0岁,如果是则下一步,如果不是,就把小于0的值替换成平均数众数或者空值任一种。这样可以保证模型学习到‘age’的正确分布,不受到小于0那部分值的干扰。在合成医疗数据时,检查当前行中‘age’是否大于等于0岁,是则通过,不是则不通过并重新生成当前行,直到通过为止。如果A列和特定值都是日期格式时,处理方式类似,此处不再赘述。
[0093] 此外,当对比对象是两列(A和B)时,Trans计算两列差值Diff(Diff=A‑B),并将Diff列插入T0,删除B列,保留A列。相当于模型只对A与Diff进行建模。数据准备阶段,Trans将不满足要求的Diff列替换成Diff的均值或众数。合成医疗数据阶段,InvTrans通过观察样本中Diff的正负来判断A和B的大小关系,关系满足规则就通过并计算B列(B=A‑Diff),判断为不通过则废除当前合成医疗数据,并重新合成一个新的医疗数据,直到有新合成医疗数据通过此规则再进入下一个规则的判断。
[0094] 例如,规则要求:对象为‘A’、‘B’两列,关系为‘<’。首先,Trans计算T中‘A’与‘B’差,新增‘Diff’列(Diff=A‑B),然后判断‘Diff’与0的关系,如果Diff<0,则保留,如果Diff>0则将此行中的Diff列替换为平均数。训练时,‘A’与‘Diff’被输入判别器中,判别器会学习到他们的分布。合成医疗数据时,InvTrans检查该合成医疗数据的‘Diff’列是否小于0,如果不是,则跳过并重新生成一个合成医疗数据,直到满足要求为止。然后,用A‑Diff得到B列,并删除C列。
[0095] (2)公式规则:列间关系满足某种公式,例如,在院天数是由出院日期与入院日期的差得来;项目费用等于项目单价乘以项目数量。
[0096] 具体的,为了避免共线性引发的问题,公式规则的处理方法只保留部分变量,用于训练判别器和生成器,而剩下的变量在合成医疗数据时再利用公式计算。例如,先对‘单价’和‘数量’建模,最后‘总金额’直接赋值为两者的乘积即可。
[0097] (3)条件判断规则:当某列(A)值符合某个条件(A==X),另一列(B)的值唯一(B==Y)。例如,当访问类型列值为门诊,在院天数列须等于1天;而当访问类型列为住院时,在院天数可以是任意天数(在院天数计算公式例如为:在院天数=出院日期‑入院日期+1,住院天数最小值为1)。
[0098] 具体的,已知当A==X时,B必然等于Y,那么判别器、生成器需要了解的是A的分布,和当A不等于X时B的分布,然而A等于X时B的值是固定的,因此判别器、生成器对该种分布并不感兴趣。Trans将A==X的行中的B列设为空值,以避免干扰判别器、生成器学习分布。所以判别器、生成器对B列中的非空值进行建模。
[0099] 另外,在合成医疗数据阶段,InvTrans查看当前样本,如果A不等于X,则通过,如果A==X且B==Y也通过,当A==X且B!=Y时将B赋值为Y,然后通过。
[0100] (4)范围内取值规则:某数值型数据列(A)的取值在某个范围区间内[X,Y],此范围区间可以是固定数值(静态区间)也可以是动态数值(动态区间)。
[0101] 例如,静态区间:患者年龄可以设置在[0,126]区间内,因为年龄大于等于0岁且一般不超过最长寿的记录;动态区间:当考虑到‘年龄’与‘疾病’之间的关系时,患某疾病的病人的年龄应该在某个区间,且区间随着疾病的不同也不尽相同。患‘早产儿’的年龄可能为[0,1],但是‘早期妊娠’患者的年龄就可能在[14,70]岁之间了。
[0102] 具体的,如果是静态区间,处理步骤和‘列与某数值(日期)之间的大小前后关系’规则的步骤相似。Trans确保T0中A列列值都在[X,Y]的范围内,替换掉范围外的任何值。然后判别器、生成器对学习A的分布。InvTrans只通过A列列值都在[X,Y]的范围内的行。
[0103] 另外,当取值范围为动态区间时,即A的取值范围由B(B=[b1,b2,b3,…])决定,B须是离散变量。当B=bi(i=1,2,…)时,A的取值区间为[xi,yi]。Trans计算B=bi时,A的最小、最大值(xi,yi),然后将‘bi’替换成‘bi:(xi,yi)’。此时,B的类型仍然是离散变量,只在原来的字符串后面加了冒号括号和数字,不会影响生成器对分布的学习。由于区间(xi,yi)就是通过T计算得来的,Trans不需要检查T中A的取值。在合成医疗数据阶段,InvTrans查看样本中的‘A’列(aj)是否在‘B’列(bi:(xi,yi))括号表示的取值范围内。如果aj在[xi,yi]内,则通过,如果不在则重新合成医疗数据,直到合成医疗数据在范围内的行为止。
[0104] (5)固定组合规则:针对离散变量,两列或多列之间的值是固定组合出现的,合成医疗数据时不可随机组合列的取值,不可出现真实数据集中没有出现的组合(假设真实数据集是正确合理的)。例如,疾病列与性别列使用的固定组合规则,T中盆腔炎患者均为女性,需要T和T0一样,不出现患盆腔炎的男性。
[0105] 具体的,Trans将组合列进行横向拼接并重新赋值:选取T中的需要使用固定组合的A、B两列(三列或者更多列是一样的),然后去除重复的行,去重后的每行构成一个不重复的组合{(ai,bi),i=1,2,…},然后,为每个组合赋一个独一无二的值ci,紧接着,把T中的A、B列替换成新的列,列名为‘A&B’,也就是说,当‘A’=ai,‘B’=bi时,‘A&B’=ci。删除‘A’和‘B’列,保留‘A&B’列。
[0106] 此外,InvTrans将组合列还原回独立列:通过(ai,bi)与ci的对应关系,将‘A&B’还原成‘A’和‘B’两列。
[0107] 例如,以疾病名(‘diseasename’)和性别(‘sex’)固定组合为例,T有7572行,选取‘diseasename’和‘sex’两列,去掉重复行(‘高血压','男'可能出现多次)后共得到160行,也就是160个不重复的疾病与性别组合。然后使用通用唯一标识码UUID为每个组合命名,例如,('高血压','男')这个组合就用'aec0e1df‑6794‑4790‑9e13‑86a4b71e7970'唯一标识码表示,uuid是随机产生的由数字字母符号组成的不重复的值。然后在T中增加新列,例名为‘diseasename&sex’,列值为对应疾病性别组合的唯一标识码,然后删除‘diseasename’和‘sex’两列,得到一个全新的T。‘diseasename&sex’列将被当作离散变量处理。合成医疗数据时,InvTrans通过uuid与组合间的匹配关系,把‘diseasename&sex’又还原回独立的两列。
[0108] 本发明一实施例中,根据预先生成的转化器,清洗第一数据表格中不满足先验规则的医疗数据,得到第二数据表格,例如包括:根据预先生成的转化器,对第一数据表格进行组合列、删除列、计算列差值、列数据筛选、列数据替换至少一种处理,以供清洗掉第一数据表格中不满足先验规则的医疗数据,得到第二数据表格。
[0109] 例如,第二数据表格由N列和R行组成,其中N列包含Nc个连续型变量列{C1,C2,…,CNc}和Nd个离散型变量列{D1,D2,…,DNd},而R行中的每一行被视作为一个观测,且每个观测由N(N=Nc+Nd)个特征组成。任意一个观察由{C1,j,C2,j,…,CNc,j,D1,D2,…,DNd,j}表示,经过处理后变成所述训练样本。
[0110] 下标的含义:任意一个连续型变量列Ci的下标i∈{1,…,Nc};任意一个连续型变量列Dii的下标ii∈{1,…,Nd};下标j代表第j行,且j∈{1,…,R},其中R为第二数据表格的总行数,也是第二数据表格的总观测数量,还是训练样本的总数据;当同时存在两个下标且由逗号分隔时,前者代表列下标,后者代表行下标,例如Ci,j代表第j个观测的第i个连续型变量,Dii,j代表第j个观测的第ii个离散变量。
[0111] 此外,如图4所示,为本发明实施例提供的一种采用高斯混合模型、以及独热编码,对第二数据表格进行编码转换处理,得到训练样本的方法流程图,包括:
[0112] S401:采用高斯混合模型对第二数据表格中连续型变量的列进行拟合,确定得到第二数据表格中每一连续型变量的特征值。
[0113] 本发明一实施例中,采用高斯混合模型对第二数据表格中连续型变量的列进行拟合,确定得到第二数据表格中每一连续型变量的特征值,例如包括:将第二数据表格中连续型变量的列分别输入到高斯混合模型中,得到高斯分布模式数量、以及第二数据表格中连续型变量的列在每一高斯分布模式下的均值和标准差;计算第二数据表格中连续型变量的列中的每一数据来自于每一高斯分布模式的概率值;根据每一数据来自于每一高斯分布模式的概率值,将每一数据对应概率值大的高斯分布模式确定为每一数据的高斯分布模式;根据每一数据的高斯分布模式,确定每一数据的均值和标准差;根据每一数据的均值和标准差对每一数据进行归一化处理;采用独热编码表征每一数据对应的高斯分布模式;将每一数据的归一化处理结果、以及每一数据的高斯分布模式的独热编码串联,得到每一数据的特征值。
[0114] 例如,①:拟合混合高斯模型:将第二数据表格中连续型变量的列Ci输入模型,将(k) (k) k k其拟合成m个高斯分布N(μi ,σi ),其中k=1,2,…,m;μi,σi分别为第k个高斯分布的均值和标准差。如图5所示,为本发明实施例提供的一种拟合高斯混合模型后的分布结果示例(1) (1)
图,图5中的连续变量Ci的真实分布被拟合成2个高斯分布模式:Mode1:N(μi ,σi )和(2) (2)
Mode2:N(μi ,σi ),模式数量m=2。②:计算各高斯分布模式的概率:计算Ci中每个值Ci,j来(k)
自各个模式的概率{vi,j },其中,i代表列编号,j代表行编号,vi,j是由概率密度函数计算的。图5中,当Ci,j=c时,Ci,j来自高斯分布模式一和
(1) (2) (1) (2)
高斯分布模式二的可能性分别为vi,j 和vi,j ,且vi,j >vi,j 。③:归一化列值:根据上一(k) (k)
步计算的vi,j,选择vi,j最大的高斯分布模式将Ci,j归一化为αi,j=(Ci,j‑μi )/2σi (其中,k=(k) (1) (2)
argmaxvi,j ),并用独热编码βi,j来表示所选择的高斯分布模式。因为vi,j >vi,j ,所以k=(1) (1)
1,αi,j=(c‑μi )/2σi ,βi,j=[1,0]。④:获取连续型变量特征值的联合表示:经过以上步骤,Ci,j可由 表示,⊕是向量的串联操作符(vector concatenation operator),
Nc为连续型变量的数量,j表示第j行。最终,第二数据表格中每一行的连续变量串联后得到每个观测的连续型变量的联合表示,例如第一个观测的所有连续变量Ci,1的联合表示为:
=α1,1⊕β1,2⊕α2,1⊕β2,1⊕…⊕αNc,1⊕βNc,1。
[0115] S402:采用独热编码对第二数据表格中离散型变量的列进行处理,得到第二数据表格中每一离散型变量的特征值。
[0116] 本发明一实施例中,采用独热编码对第二数据表格中离散型变量的列进行处理,得到第二数据表格中每一离散型变量的特征值,例如包括:根据对第二数据表格中离散型变量的列存在的数据类别数量、以及离散型变量的列中每一数据实际对应数据类别、以及离散型变量的列中每一数据缺失情况,采用独热编码对每一数据进行编码;其中,每一数据对应的独热编码中,实际对应数据类别处为1,其他数据类别处为0,缺失数据处为1,非缺失数据处为0。
[0117] 示例性的,对于离散型变量Dii,数据类别有[d1,…,dq,…,d|Dii|],用长度为|Dii|的向量γii表示每个类别。例如,当|Dii|=3,分别使用[1,0,0]、[0,1,0]和[0,0,1]来代表d1、d2和d3。对于有缺失值的列,将在独热编码的末尾增加一个维度来表示该列的数据缺失情况,1表示缺失,0表示不为空。例如,对于任意一个有缺失值的离散型变量Dii,当|Dii|=3时,其独热编码将维度增加到4维,分别使用[1,0,0,0]、[0,1,0,0]、[0,0,1,0]和[0,0,0,1]来代表d1、d2、d3和缺失值。随后,把独热编码作为离散型变量列的特征值,并将所有离散变量列的特征值串联起来,得到 ,其中Nd为离散变量的数量,j表示第j行。例如第一行
的所有离散变量表示为 =γ1,1⊕γ2,1⊕γ3,1⊕…⊕γNd,1。
[0118] S403:将第二数据表格中每一行对应的连续型变量的特征值、离散型变量的特征值串联起来,得到多个训练样本。
[0119] 其中,每一训练样本中包含第二数据表格中一行对应的连续型变量的特征值、离散型变量的特征值串联操作(concatenation operation)结果。
[0120] 最终,将所有变量串联起来: ,做为去噪自动编码器中编码器Enc和判别器D的输入,生成器G和去噪自动编码器中解码器Dec的目标输出。
[0121] 针对上述S102,随机噪声满足预设分布规则,随机噪声例如包括:高斯分布噪声、均匀分布噪声等。
[0122] 本发明一实施例中,采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器设置为生成器的隐藏层,利用训练样本训练判别器,利用判别器训练生成器,得到训练好的生成器,包括:利用训练样本预训练去噪自动编码器,得到去噪自动编码器中的第一解码器参数;在生成器的隐藏层内置一个解码器,并设置解码初始参数为第一解码器参数;根据高斯噪声分布生成噪声样本;将训练样本分批,得到多个训练样本批次,每一训练样本批次包括多个训练样本;针对每一训练样本批次,对判别器和生成器执行下述过程:根据训练样本批次中的训练样本数量,选择与训练样本数量相等数量的噪声样本输入到在生成器,以供生成器输出第一合成数据;将第一合成数据的标签标记为假,将训练样本批次中的训练样本的标签标记为真,将第一合成数据、第一合成数据的标签、训练样本批次中的训练样本、训练样本的标签输入到判别器中对判别器进行训练,得到判别器的第一训练损失;根据判别器的第一训练损失,利用反向传播算法、以及随机梯度下降法调整判别器的参数;另取与训练样本数量相等数量的噪声样本输入到生成器,以供生成器输出第二合成数据,将第二合成数据的标签标记为真;将第二合成数据、以及第二合成数据的标签输入到判别器中对判别器进行训练,得到判别器的第二训练损失;根据判别器的第二训练损失,利用反向传播算法、以及随机梯度下降法调整生成器中的参数。
[0123] 其中,隐藏层是指神经网络中,除输入层输出层之外的层,隐藏层不直接接受外界信号,也不直接向外界发送信号,仅仅当数据被非线性分离时才需要,隐藏层把输入数据的特征,抽象到另一个维度空间,来展现其更抽象化的特征,这些特征能更好的进行线性划分,隐藏层上的神经元可采取多种形式,例如最大池化层和卷积层等,均会执行不同的数学功能,若将整个网络视为数学转换的管道,那么隐藏层将被转换并组合在一起,同时将输入数据映射到输出空间。而本发明实施例中对抗生成网络模型中的生成器的隐藏层采用训练好的去噪自动编码器。
[0124] 具体的,在训练生成器G之前,预训练降噪自动编码器DAE(DAE包括一个编码器Enc和一个解码器Dec)。自动编码器DAE是一种神经网络,由编码器和解码器子模型组成。编码器压缩输入得到潜在空间表征,而解码器尝试根据编码器提供的压缩版本(潜在空间表征)重新构建输入。对于G的训练过程来说,产生低维的潜在空间表征(latent space representation)要比直接产生高维数据更加简单高效,因为减少了从低维到高维转化的训练过程。使G的目标输出为低维表征,然后通过Dec将低维表征构建成就医疗数据训练样本(α⊕β⊕γ),相当于把低维到高维数据的转化过程交给一个经验丰富的Dec,而不是从开头教G。因此加入解码器,能够更快速高效地重构医疗数据训练样本。在实际操作过程中,在训练G时,Dec的参数θDec同G的参数θG一起会得到精调(fine‑tuning),所以Dec被当作隐藏层嵌入在G中,只不过Dec层的初始参数不是随机的,是预训练后的结果(即第一解码器参数)。
[0125] DAE的训练包括:Encoder将输入x(x这里指训练样本α⊕β⊕γ)加入高斯随机噪声(z)后压缩为潜在空间表征Enc(x+z),解码器将Enc(x+z)转化为Dec(Enc(x+z))做为x的重构。对连续数值αij使用tanh激活函数,对离散值βij和γii使用ReLU激活函数。DAE的损失函数采用均方误差(RMSE),目标是最小化均方误差: 。
[0126] 此外,将预训练参数θDec做为生成器G中一个隐藏层的初始参数,然后训练生成器G和判别器D。生成器和判别器采用神经网络模型,模型超参数(θG和θD)例如包括:生成器学习率(lrG)、判别器学习率(lrD)、生成器隐藏层数、生成器隐藏层输出维度、判别器隐藏层数、判别器隐藏层输出维度、激活函数。
[0127] 生成器G的输入是随机噪声z,z是一个有一定维度的张量,且每个维度都服从高斯分布,G将输入z映射为G0(z),生成器中内嵌的解码器将G0(z)解码为Dec(G0(z)),用G(z)表示Dec(G0(z)),G(z)为生成器最终的输出;D的输入是x和G(z),输出是二分类,样本标签为真或假。训练时先训练鉴别器D:
[0128] •从高斯噪声分布Pz中随机采样出b1个噪声样本,即{z1,z2,…,zb1};
[0129] •将b1个噪声样本分别输入生成器,得到{G(z1),G(z2),…,G(zb1)};
[0130] •从训练样本Pdata中随机采样出b1个训练样本,即{x1,x2,…,xb1};
[0131] •将训练样本{x1,x2,…,xb1}打上真标签1和生成器G生成的假就诊记录(即第一合成数据){G(z1),G(z2),…,G(zb1)}打上假标签0,一同组成minibatch送入判别器D,对判别器进行训练。计算损失时使判别器对训练样本的判别趋近于真,对第一合成数据的判别趋近于假。损失函数如下:。
[0132] 其中,pdata代表真实医保数据的训练样本, 表示x满足pdata的训练样本;pz为噪声的先验分布,通常使用高斯分布N(0,1)做为先验分布, 表示z满足pz
的分布;E表示期望。计算得到判别器损失后,利用反向传递算法(Back Propagation)和随机梯度下降法更新判别器的参数θD(此过程为判别器的一次迭代,本次迭代中只更新判别器的参数,不更新生成器的参数):
[0133] 其中,b1是小批量大小(也即每一训练样本批次中的训练样本数量), 是判别器学习率。
[0134] 然后再训练生成器G:再从高斯噪声分布中随机采样另外b2个噪声样本,即{z’1,z’2,…,z’b2},其中,b2=b1。将另取的并输入生成器。将第二合成数据{G(z’1),G(z’2),…,G(z’b2)}打上真标签1送入判别器D。计算loss(损失)时,使判别器对合成医疗数据的判别趋近于真。通过小批量随机梯度下降法同时更新生成器的参数 和内嵌解码器的参数,此过程为
生成器的一次迭代。
[0135] 此外,在G和D的对抗中,常出现能不平衡的事实,本发明实施例为此做以下两方面的处理
[0136] (a)G的loss采用最大化logD(G(z)):训练初期,当G的生成效果很差时,D以高置信度来拒绝合成医疗数据,因为它们与训练样本明显不同。所以, 饱和(即为常数,梯度为0)。因此选择最大化logD(G(z))而不是最小化 来训练G; 

[0137] (b)对G使用批归一化(batch normalization)来强化学习能力:在每个ReLU激活层前面插入一个BN层:Ht=AF(BN(wt Ht‑1+bt))。
[0138] 其中Ht是当前层的输出,Ht‑1是上一层的输出,wt和bt分别为当前层的权重和偏置BN是批归一化处理,AF是激活函数。BN能抑制梯度消失问题,并且使训练过程更加稳定快速。
[0139] 另外,因为G的目标是生成D判别不了真伪的合成医疗数据,D只告诉G合成医疗数据真不真实,而没有告诉G要考虑合成医疗数据的多样性,这导致G很可能将接收到的不同的噪声都转化为相同的输出。为了防止出现模式崩塌,本发明一实施例中,判别器内置的一隐藏层用于计算输入数据的差异指标,差异指标具体指输入数据中每一个特征值维度上的均值和标准差,输入数据的特征值与特征值差异指标串联后输入到下一隐藏层;其中,输入数据包括:训练样本、第一合成数据、第二合成数据。
[0140] 此处,对D使用均方小批量方法(mean stand deviation minibatch)。现有技术中使用小批量判别让判别器不再独立考虑一个样本,而是同时考虑一个小批量的样本(真实训练样本{x1,x2,…,xb1}和合成医疗数据{G(z1),G(z2),…,G(zb1)})。当对给定合成医疗数据做出判别时,判别器计算合成医疗数据与小批样本中所有样本的距离(用L1范数表示两个样本的差异),这样合成医疗数据间的差异性得到了考量。但是,为了方便衡量合成医疗数据间差异,现有的小批量判别方法在差异计算公式中引入了可学习参数T(一个三维张量),这对D增加了计算负担。本发明实施例的均方小批量判别在小批量判别基础上做了调整,它既不涉及可学习的参数,也没有需要人为调控的超参数。均方小批量层插入在判别器的第一层,其处理方式如下:对小批量样本中的真实样本和合成医疗数据分别计算均值和标准差(在每个特征的基础上),得到均值 ;将样本与均值和标准差串联后做为下一层的输入: ,

[0141] 如图6所示,在合成医疗数据的实例中,生成器和判别器都采用多层感知机神经网络。在生成器中,前两个隐藏层使用批归一化(BN)和ReLU激活函数;第三个隐藏层为解码器隐藏层,使用ReLU激活函数,该层的初始参数θDec(θDec包括权重WDec和偏置bDec)为预训练解码器的参数。解码器隐藏层使用tanh激活函数生成连续值 ,使用ReLU激活函数生成离散值 和 。
[0142] 在判别器中,第一层为均方小批量层,此层将合成医疗数据间差异引入模型;接下来是两层线性层,使用Dropout和ReLU激活函数。输出层则采用Sigmoid激活函数。
[0143] 针对上述S103 S104,用训练好的生成器将输入的随机噪声转化成合成医疗数据,~例如包括:采用训练好的生成器根据随机噪声,生成合成医疗数据对应的特征值;采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格,例如包括:采用反转化器对合成医疗数据对应的特征值进行转换,得到合成医疗数据;在确定合成医疗数据满足先验规则时,根据预先生成的匿名数据库,将合成医疗数据中加密编码的数据转换成相同数据类型的随机数据内容,得到脱敏处理后的合成医疗数据;根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将脱敏处理后的合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格。
[0144] 具体的,反转化器InvTrans的处理包括三步:
[0145] (1)对合成医疗数据对应的特征值转化为合成医疗数据:
[0146] 前述过程中,真实医疗数据被处理为特征值的形式,输入GAN和DAE。所以由G和Decoder生成的样本Dec(G0(zi))也是特征值的形式。InvTrans的第一步就是将合成医疗数据对应的特征值 还原成就合成医疗数据{Ci:Nc,j,(k) (k) (k)
Dii:Nd,j}:对于连续型变量,Ci,j=μi +(2αi,jσi ),其中k=arg maxβi,j ;而离散变量则是(q)
取分布概率最大的分类Dii,j=dq,k=arg maxγii,j 。
[0147] (2)确定合成医疗数据是否满足先验规则。
[0148] (3)将转化器Trans加密编码的数据进行脱敏解密。
[0149] 前述过程中Trans对敏感信息进行了加密编码。由于编码的可读性低,我们在Facker库的基础上为医疗数据打造了匿名库(medFacker)。medFacker包含的数据类型有医院名称、科室名称、人名、地名、手机号、身份证号、银行卡号、就诊编号等。InvTrans利用medFacker库生成对应类型的随机内容,并替换掉加密编码。
[0150] 进一步为了检验合成医疗数据的分布特征、以及内容覆盖率,本发明实施例还提供一种合成医疗数据评估方法,包括:对每一项评估标准(合成医疗数据的分布特征、以及内容覆盖率)提供分数、以及可视化的图像。例如图7所示,输入是多个的表格数据集{Ta,Tb,Tc,…},输出是{Anew,Bnew,Cnew,…}。评估报告将对每个表单独进行评估,从以下方面对比原始数据表格与合成医疗数据表格:
[0151] (1)分布特征:
[0152] (a)连续变量:
[0153] 分数:JS散度能衡量原始数据和合成医疗数据的分布差异,其取值在0到1之间,越小代表越相似,完全相同时为0。
[0154] 采用C‑Similarity=1‑JSD来表示连续变量分布相似度。当C‑Similarity为0表示完全不相似,1表示完全相同。构建分布直方图(例如图8所示,其中分布相似度中的KL散度为0.1763,JS散度为0.0644)和箱线图(例如图9所示),可直观展示数据分布形状。
[0155] (b)离散变量:
[0156] 计数每个分类的频率,构建条形图(如图10所示),并展示频率差距。分数计算公式为:D‑Similarity=1‑(|rk‑sk|)/2,其中r和s分布代表真实数据和合成医疗数据的频率,k代表分类。D‑Similarity取值在0到1之间,越大代表越相似,1为完全相同。
[0157] (2)内容覆盖率:
[0158] 连续变量:真实数据的取值范围[rl,rh],而合成医疗数据的取值范围是[sl,sh],取值覆盖率为:C‑Coverage=1‑[max((sl‑rl)/(rh‑rl),0)+max((rh‑sh)/(rh‑rl))]。
[0159] 离散变量:真实数据的分类数rk,合成医疗数据的分类数为sk,则类型覆盖率为:D‑Coverage=sk/rk。
[0160] 本发明实施例中还提供了一种医疗数据合成装置,如下面的实施例所述。由于该装置解决问题的原理与医疗数据合成方法相似,因此该装置的实施可以参见医疗数据合成方法的实施,重复之处不再赘述。
[0161] 如图11所示,为本发明实施例提供的一种医疗数据合成装置的示意图,包括:
[0162] 第一处理模块1101,用于根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;
[0163] 模型训练模块1102,用于采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;
[0164] 第二处理模块1103,用于采用训练好的生成器将输入的随机噪声转化成合成医疗数据;其中,所述随机噪声满足预设分布规则;
[0165] 第三处理模块1104,用于采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格;其中,反转化器为根据先验规则约束生成。
[0166] 在一种可能的实施方式中,第一处理模块,具体用于根据各真实医疗数据表格、各真实医疗数据表格的表结构关系、以及表格内部结构关系,合并各真实医疗数据表格,得到第一数据表格;根据预先生成的转化器,清洗第一数据表格中不满足先验规则的医疗数据,得到第二数据表格;转化器为根据先验规则约束生成;采用高斯混合模型、以及独热编码,对第二数据表格进行编码转换处理,得到训练样本。
[0167] 在一种可能的实施方式中,表结构关系包括:母表、子表、和关联字段,表格内部结构关系包括:列类型、脱敏处理指示信息、缺失值处理指示信息;第一处理模块,具体用于根据各真实医疗数据表格的表结构关系,挑选各真实医疗数据表格中的母表作为基础表;根据各真实医疗数据表格的母表、子表、和关联字段,在基础表中关联各真实医疗数据表格中除基础表外的其他表格中的列,得到初始合并数据表格;根据表格内部结构关系,确定每一真实医疗数据表格中的列标识、列类型;根据每一真实医疗数据表格中的列标识、列类型、脱敏处理指示信息、缺失值处理指示信息,对初始合并数据表格进行缺失值处理、以及信息脱敏处理,得到第一数据表格。
[0168] 在一种可能的实施方式中,第一处理模块,具体用于在各真实医疗数据表格的母表的维度比子表的维度高时,使用关联字段将子表的列合并到基础表中;在各真实医疗数据表格的母表的维度不高于子表的维度时,对子表采用重塑reshape函数进行处理,以供子表的维度与母表的维度一致,将reshape处理后的子表的列合并到基础表中。
[0169] 在一种可能的实施方式中,列类型包括:连续型变量、离散型变量;第一处理模块,具体用于根据缺失值处理指示信息,对初始合并数据表格中指示不处理缺失值的连续型变量的列不进行处理,对初始合并数据表格中指示处理缺失值的连续型变量的列填充缺失值;根据缺失值处理指示信息,对初始合并数据表格中指示处理缺失值、且存在缺失值的离散型变量的列,在该列后新增一列用以添加缺失标签;根据脱敏处理指示信息,在初始合并数据表格中需要进行脱敏处理的列数据的列标识后添加脱敏数据类型,以供转化器根据列标识后的脱敏数据类型对列标识对应的列数据进行加密编码,得到第一数据表格。
[0170] 在一种可能的实施方式中,第一处理模块,具体用于根据预先生成的转化器,对第一数据表格进行组合列、删除列、计算列差值、列数据筛选、列数据替换至少一种处理,以供清洗掉第一数据表格中不满足先验规则的医疗数据,得到第二数据表格。
[0171] 在一种可能的实施方式中,训练样本生成模块,具体用于采用高斯混合模型对第二数据表格中连续型变量的列进行拟合,确定得到第二数据表格中每一连续型变量的特征值;采用独热编码对第二数据表格中离散型变量的列进行处理,得到第二数据表格中每一离散型变量的特征值;将第二数据表格中每一行对应的连续型变量的特征值、离散型变量的特征值串联起来,得到多个训练样本;其中,每一训练样本中包含第二数据表格中一行对应的连续型变量的特征值、离散型变量的特征值串联操作结果。
[0172] 在一种可能的实施方式中,训练样本生成模块,具体用于将第二数据表格中连续型变量的列分别输入到高斯混合模型中,得到高斯分布模式数量、以及第二数据表格中连续型变量的列在每一高斯分布模式下的均值和标准差;计算第二数据表格中连续型变量的列中的每一数据来自于每一高斯分布模式的概率值;根据每一数据来自于每一高斯分布模式的概率值,将每一数据对应概率值大的高斯分布模式确定为每一数据的高斯分布模式;根据每一数据的高斯分布模式,确定每一数据的均值和标准差;根据每一数据的均值和标准差对每一数据进行归一化处理;采用独热编码表征每一数据对应的高斯分布模式;将每一数据的归一化处理结果、以及每一数据的高斯分布模式的独热编码串联,得到每一数据的特征值。
[0173] 在一种可能的实施方式中,训练样本生成模块,具体用于根据对第二数据表格中离散型变量的列存在的数据类别数量、以及离散型变量的列中每一数据实际对应数据类别,采用独热编码对每一数据进行编码;其中,每一数据对应的独热编码中,实际对应数据类别处为1,其他数据类别处为0。
[0174] 在一种可能的实施方式中,模型训练模块,具体用于利用训练样本预训练去噪自动编码器,得到去噪自动编码器中的第一解码器参数;在生成器的隐藏层内置一个解码器,并设置解码初始参数为第一解码器参数;根据高斯噪声分布生成噪声样本;将训练样本分批,得到多个训练样本批次,每一训练样本批次包括多个训练样本;针对每一训练样本批次,对判别器和生成器执行下述过程:根据训练样本批次中的训练样本数量,选择与训练样本数量相等数量的噪声样本输入到在生成器,以供生成器输出第一合成数据;将第一合成数据的标签标记为假,将训练样本批次中的训练样本的标签标记为真,将第一合成数据、第一合成数据的标签、训练样本批次中的训练样本、训练样本的标签输入到判别器中对判别器进行训练,得到判别器的第一训练损失;根据判别器的第一训练损失,利用反向传播算法、以及随机梯度下降法调整判别器的参数;另取与训练样本数量相等数量的噪声样本输入到生成器,以供生成器输出第二合成数据,将第二合成数据的标签标记为真;将第二合成数据、以及第二合成数据的标签输入到判别器中,得到生成器的第二训练损失;根据生成器的第二训练损失,利用反向传播算法、以及随机梯度下降法调整生成器中的参数。
[0175] 在一种可能的实施方式中,判别器内置的一隐藏层用于计算输入数据的均值和标准差,输入数据的均值、标准差,与输入数据的特征值串联后输入到下一隐藏层;其中,输入数据包括:训练样本、第一合成数据、第二合成数据。
[0176] 在一种可能的实施方式中,第二处理模块,具体用于采用训练好的生成器根据随机噪声,生成合成医疗数据对应的特征值;第四处理模块,具体用于采用反转化器对合成医疗数据对应的特征值进行转换,得到合成医疗数据;在确定合成医疗数据满足先验规则时,根据预先生成的匿名数据库,将合成医疗数据中加密编码的数据转换成相同数据类型的随机数据内容,得到脱敏处理后的合成医疗数据;根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将脱敏处理后的合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格。
[0177] 基于前述发明构思,如图12所示,本发明还提出了一种计算机设备1200,包括存储器1210、处理器1220及存储在存储器1210上并可在处理器1220上运行的计算机程序1230,所述处理器1220执行所述计算机程序1230时实现前述医疗数据合成方法。
[0178] 本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述医疗数据合成方法。
[0179] 本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述医疗数据合成方法。
[0180] 本发明实施例中,根据预先配置的先验规则对各真实医疗数据表格进行数据预处理,得到训练样本;其中,先验规则为根据真实医疗数据之间的关系配置的数据关联规则;采用训练样本训练去噪自动编码器,将训练好的去噪自动编码器中的解码器设置为对抗生成网络模型的生成器的隐藏层,利用训练样本训练对抗生成网络模型的判别器得到生成器损失,根据生成器损失更新生成器,得到训练好的生成器;采用训练好的生成器将输入的随机噪声转化成合成医疗数据;采用反转化器确定合成医疗数据满足先验规则时,根据各真实医疗数据表格的表结构关系、以及表格内部结构关系,将合成医疗数据拆分成与各真实医疗数据表格维度相同的数据表格。这样,通过合并真实医疗数据表格、以及根据真实医疗数据之间的关系配置的先验规则生成训练样本,可以使得训练样本训练后的生成器生成贴近真实医疗数据的合成医疗数据,另外,进一步根据先验规则验证了合成医疗数据是否真的符合真实医疗数据的数据关系特征,提高了医疗数据合成效率、以及合成准确性,为后续的医疗数据风险检测提供大量符合条件的医疗数据。
[0181] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0182] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0183] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0184] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0185] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
QQ群二维码
意见反馈