针对表格数据的仿真数据生成方法、装置及电子设备

文档序号:32484794发布日期:2022-12-10 00:41阅读:60来源:国知局
针对表格数据的仿真数据生成方法、装置及电子设备

1.本技术涉及互联网技术领域,特别是涉及一种针对表格数据的仿真数据生成方法、装置及电子设备。


背景技术:

2.随着数据生产要素的提出和不断深化,数据价值的重要性得到广泛认可,例如药厂可以根据医院的医疗数据来辅助医药制造。一方面,很多数据具有高度隐私性,如病人医疗数据涉及到病人隐私,无法直接对外开放。另一方面,我们国家制定了个人信息保护法,对个人数据使用有严格的管理规定。这使得数据的开放比较困难,仿真数据为数据开放提供了有效的手段。
3.仿真数据生成主要有两种应用:一种是数据挖掘,将仿真数据开放给用户,用户使用仿真数据进行数据挖掘等下游任务。由于仿真数据和真实数据进行数据探索的性能存在一定的差异,因此主要应用于对数据挖掘要求不是特别高的场景;另一种是数据探索和调试:在该应用中,仍然希望对真实数据进行数据挖掘,但是不希望用户直接接触到真实数据。由于接触不到真实数据,前期的数据探索和程序调试就无法进行。采用仿真数据进行数据探索和程序调试,将调试后的程序迁移到真实数据上运行,然后将结果导出。在这两种应用中,都期望生成的仿真数据在数据挖掘中的性能与真实数据接近。
4.数据生成场景主要分为两种:第一种是集中场景,即所有的原始数据集中在一个节点上;第二种是分布式场景,又叫联邦场景,即原始数据分散在多个节点上。在分布式场景中有两种情况,一种是各个节点的数据量相差不大,称作平衡情况;第二种是各个节点的数据量相差较大,称作非平衡情况。目前在仿真数据生成方面,有两种相关的技术:(1)基于生成对抗网络(gan)的方法,即通过机器学习技术对真实数据进行模拟,从而生成仿真数据。该方法可以应用在集中场景下和联邦场景下;(2)gaussian copula方法,通过数据拟合方法对表格数据的每一列进行拟合,得到其累计分布函数。以然后计算每一列的均值和列之间的协方差。通过均值和协方差生成高斯分布的数据,然后通过累积分布函数逆变换得到仿真数据。上述两种技术生成仿真数据的效率都较低,生成时间较长。尤其是在高维数据的生成中需要较长的时间。如生成一个1200行、18000列的表格数据,gaussian copula方法大约需要12小时,基于gan的方法生成仿真数据大约需要200小时;上述两种技术在分布式情况下的生成数据质量较差,尤其是联邦情况和非平衡情况下的仿真数据质量较差,难以满足下游任务和数据探索的需求。


技术实现要素:

5.本发明针对上述问题,提供了一种针对表格数据的仿真数据生成方法、装置及电子设备,针对表格数据的仿真数据生成,适用于集中场景和分布式场景,用于解决现有的生成仿真数据技术效率低,生成时间较长以及在分布式情况下的生成数据质量差的问题。
6.本发明的第一方面,一种针对表格数据的仿真数据生成方法,在集中场景下,针对
m行n列的原始表格数据,表示第i行第列位置的数据,表示第列数据,所述方法包括以下步骤:获取累计分布表及逆累计分布表:将每一列数据进行区间划分,统计每一个区间内的数据的个数,计算得到每个区间h的概率,即数据中的元素取值在第h个区间内的概率为,根据概率得到第列累计分布表的值,其中,根据第列累计分布表的值生成第列的逆累计分布表;获取每一列均值和列协方差矩阵:对每一列数据,根据累计分布表变换得到数据,令为第i行位置的数据,,其中为高斯分布的逆累计分布函数,表示查累计分布表,每一列的均值为:,令,根据得到列协方差矩阵为:;生成联合高斯分布数据:从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;仿真数据生成: 对每一列查询逆累计分布表,具体为:记第i行第列位置的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
7.进一步的,所述逆累计分布表的取值是累计分布表的概率值对应区间内的任意一个值。
8.进一步的,所述生成联合高斯分布数据的替代方法如下:采用标准正态分布独立地从高斯分布采样得到,每个元素 ;对做变换仿射得到列之间有关联关系的联合高斯分布数据,其中通过cholesky分解得到。
9.本发明的第二方面,一种针对表格数据的仿真数据生成方法,在分布式场景下,有个数据节点,第个数据节点持有行数据,总共有行数据,每一行数据有列,第个数据节点的第i行第列数据记为,所述方法包括以下步骤:获取累计分布表及逆累计分布表:统计每个数据节点中离散列的取值为a的个数为,汇聚个数据节点,得到列取值为a的个数为,得到全局概率分布,根据全局概率分布得到累计分布表,其中,根据累计分布表生成对应的逆累计分布表;获取全局每一列均值和列协方差矩阵:对每一列数据,根据累计分布表得到数据,令为第i行位置的数据,,其中为高斯分布的逆累计分布函数,表示查累计分布表,每个节点在本地计算和,并同步进行汇聚,其中表示节点的,令,得到全局每一列均值,列协方差矩阵
的元素;生成联合高斯分布数据:从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;仿真数据生成: 对每一列查询逆累计分布表,具体为:记第i行第列位置的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
10.进一步的,所述生成联合高斯分布数据的替代方法如下:采用标准正态分布独立地从高斯分布采样得到,每个元素 ;对做变换仿射得到列之间有关联关系的联合高斯分布数据,其中通过cholesky分解得到。
11.本发明的第三方面,提供了一种针对表格数据的仿真数据生成装置,所述装置运行在集中场景下,针对m行n列的原始表格数据,表示第i行第列位置的数据,表示第列数据,所述装置包括:获取累计分布表及逆累计分布表单元,用于将每一列数据进行区间划分,统计每一个区间内的数据的个数,计算得到每个区间h的概率,即数据中的元素取值在第h个区间内的概率为,根据概率得到第列累计分布表的值,其中,根据第列累计分布表的值生成第列的逆累计分布表;获取每一列均值和列协方差矩阵单元,用于对每一列数据,根据累计分布表变换得到数据,令为第i行位置的数据,,其中为高斯分布的逆累计分布函数,表示查累计分布表,每一列的均值为:,令,根据得到列协方差矩阵为:;生成联合高斯分布数据单元,用于从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;仿真数据生成单元,用于对每一列查询逆累计分布表,具体为:记第i行第列位置的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
12.进一步的,所述生成联合高斯分布数据单元的另一种实现方法为:采用标准正态分布独立地从高斯分布采样得到,每个元素 ;对做变换仿射得到列之间有关联关系的联合高斯分布数据,其中通过cholesky分解得到。
13.本发明的第四方面,提供了一种针对表格数据的仿真数据生成装置,所述装置运行在分布式场景下,有个数据节点,第个数据节点持有行数据,总共有行数据,每一行数据有列,第个数据节点的第i行第列数据记为,所述装置包括:获取累计分布表及逆累计分布表单元,用于统计每个数据节点中离散列的取
值为a的个数为,汇聚个数据节点,得到列取值为a的个数为,得到全局概率分布,根据全局概率分布得到累计分布表,其中,根据累计分布表生成对应的逆累计分布表;获取全局每一列均值和列协方差矩阵单元,用于对每一列数据,根据累计分布表得到数据,令为第i行位置的数据,,其中为高斯分布的逆累计分布函数,表示查累计分布表,每个节点在本地计算和,并同步进行汇聚,其中表示节点的,令,得到全局每一列均值,列协方差矩阵的元素;生成联合高斯分布数据单元,用于从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;仿真数据生成单元,用于对每一列查询逆累计分布表,具体为:记第i行第列位置的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
14.进一步的,所述生成联合高斯分布数据单元的另一种实现方法为:采用标准正态分布独立地从高斯分布采样得到,每个元素 ;对做变换仿射得到列之间有关联关系的联合高斯分布数据,其中通过cholesky分解得到。
15.本发明的第五方面,提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述针对表格数据的仿真数据生成方法。
16.本发明提供的一种针对表格数据的仿真数据生成方法、装置及电子设备,针对表格数据的仿真数据生成,适用于集中场景和分布式场景,用于解决现有的生成仿真数据技术效率低,生成时间较长以及在分布式情况下的生成数据质量差的问题,本发明的有益效果为:生成仿真数据技术效率高,所需时间短;在分布式情况下的生成数据质量高,尤其是联邦情况和非平衡情况下的仿真数据质量仍然能够满足下游任务和数据探索的需求。
附图说明
17.图1是本发明实施例1中针对表格数据的仿真数据生成方法流程图;图2是本发明实施例2中针对表格数据的仿真数据生成方法流程示意图;图3是本发明实施例3中针对表格数据的仿真数据生成装置结构示意图;图4是本发明实施例4中针对表格数据的仿真数据生成装置结构示意图;图5是本发明实施例5中一种电子设备的架构示意图。
具体实施方式
18.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅出示了与本发明相关的部分而非全部结构。
19.本发明实施例针对一种针对表格数据的仿真数据生成方法、装置及电子设备,提供了如下实施例:基于本发明的实施例1如图1所示,为本发明实施例1的一种针对表格数据的仿真数据生成方法流程图,实施例1在集中场景下,针对m行n列的原始表格数据, 表示第i行第列位置的数据,表示第列数据,具体步骤为:s110、获取累计分布表及逆累计分布表:将每一列数据根据精度需要进行区间划分,即每个区间长度不超过精度的大小,统计每一个区间内的数据的个数,计算得到每个区间h的概率,即数据中的元素取值在第h个区间内的概率为,根据概率得到第列累计分布表的值,其中,根据第列累计分布表的值生成第列的逆累计分布表;具体实施过程中,将每一列数据根据需要的精度进行区间划分,统计每一个区间内的数据的个数,进而可以计算得到每个区间h的概率,即数据中的元素取值在第h个区间内的概率为。进而得到第列累计分布表的值,其中 ,时, 。然后计算累计分布表的逆表,称作第列的逆累计分布表。
20.优选地,由于累计分布表的概率值对应的是一个区间,在生成逆累计分布表的时候,逆累计分布表的取值是累计分布表的概率值对应区间内的任意一个值。
21.s120、获取每一列均值和列协方差矩阵:对每一列数据,根据累计分布表变换得到数据,令为第i行位置的数据,,其中为高斯分布的逆累计分布函数,表示查累计分布表,每一列的均值为:,令,根据得到列协方差矩阵为:;s130、生成联合高斯分布数据:从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;优选地,生成联合高斯分布数据也可以用另一种方法替代,如下:采用标准正态分布独立地从高斯分布采样得到,每个元素 ,由于该随机数生成不依赖于原始数据,因此该操作可以离线操作。
22.对做变换仿射得到列之间有关联关系的联合高斯分布数据,记第i行第列位置的数据为 ,其中通过cholesky分解得到。
23.s140、仿真数据生成:对每一列查询逆累计分布表,具体为:记第i行第列位置
的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
24.基于本发明的实施例2如图2所示,为本发明实施例2的一种针对表格数据的仿真数据生成方法流程图,实施例2在分布式场景下,分布式场景与实施例1中的集中场景的仿真数据生成方法类似,不同的是由于缺失全局数据的累计分布表、均值和协方差,需要每个节点在本地计算局部信息并聚合得到全局的累计分布表、均值和协方差。在分布式场景下,需要一个汇聚节点对每个节点的局部信息进行汇聚,从而得到全局累计分布表、均值和协方差。在实际系统中,任意一个节点可以充当汇聚节点的作用,也可以单独设置一个节点作为汇聚节点。在调试环境和运行环境分析的数据沙箱场景中,调试环境充当汇聚节点的作用。
25.令分布式场景有个数据节点,第个数据节点持有行数据,总共有行数据,每一行数据有列,第个数据节点的第i行第列数据记为,方法包括以下步骤:s210、获取累计分布表及逆累计分布表:统计每个数据节点中离散列的取值为a的个数为,汇聚个数据节点,并将其同步给汇聚节点,得到列取值为a的个数为,得到全局概率分布,根据全局概率分布得到累计分布表,其中,时, ,根据累计分布表生成对应的逆累计分布表,汇聚节点将累计分布表及其逆表下发给各个数据节点。
26.s220 、获取全局每一列均值和列协方差矩阵:按照集中场景下的数据变换方法,对每一列数据,根据累计分布表得到数据,令为第i行位置的数据,,为高斯分布的逆累计分布函数,表示查累计分布表,每个节点在本地计算和,并同步进行汇聚给汇聚节点。其中表示节点的,令,得到全局每一列均值,列协方差矩阵的元素,其中 和的计算方式相同,计算得到全局均值和列协方差矩阵后,汇聚节点将均值和列协方差矩阵下发给数据节点,数据节点接下来按照集中场景下仿真数据即可。
27.s230 、生成联合高斯分布数据:从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;优选地,生成联合高斯分布数据的另一种替代方法有:采用标准正态分布独立地从高斯分布采样得到,每个元素 ;对做变换仿射得到列之间有关联关系的联合高斯分布数据,其中通过cholesky分解得到。
28.s240 、仿真数据生成: 对每一列查询逆累计分布表,具体为:记第行第列位置的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
29.基于本发明的实施例3本发明实施例3所提供的一种针对表格数据的仿真数据生成装置300可执行本发
明实施例1所提供的针对表格数据的仿真数据生成方法,具备执行方法相应的功能模块和有益效果,该装置可以由软件和/或硬件(集成电路)的方式实现,并一般可集成于服务器或终端设备中。图3是本发明实施例3中的针对表格数据的仿真数据生成装置300的结构示意图。装置300运行在集中场景下,针对m行n列的原始表格数据,表示第i行第列位置的数据,表示第列数据,参照图3,本发明实施例的针对表格数据的仿真数据生成装置300具体可以包括:获取累计分布表及逆累计分布表单元310,用于将每一列数据进行区间划分,统计每一个区间内的数据的个数,计算得到每个区间h的概率,即数据中的元素取值在第h个区间内的概率为,根据概率得到第列累计分布表的值,其中,根据第列累计分布表的值生成第列的逆累计分布表;获取每一列均值和列协方差矩阵单元320,用于对每一列数据,根据累计分布表变换得到数据,令为第i行位置的数据,,其中为高斯分布的逆累计分布函数,表示查累计分布表,每一列的均值为:,令,根据得到列协方差矩阵为:;生成联合高斯分布数据单元330,用于从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;仿真数据生成单元340,用于对每一列查询逆累计分布表,具体为:记第i行第列位置的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
30.优选地,生成联合高斯分布数据单元330的另一种实现方法为:采用标准正态分布独立地从高斯分布采样得到,每个元素 ;对做变换仿射得到列之间有关联关系的联合高斯分布数据,其中通过cholesky分解得到。
31.除了上述4个单元以外,装置300还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。
32.一种针对表格数据的仿真数据生成装置300的具体工作过程参照上述针对表格数据的仿真数据生成方法实施例1的描述,不再赘述。
33.基于本发明的实施例4本发明实施例4所提供的一种针对表格数据的仿真数据生成装置400可执行本发明实施例2所提供的针对表格数据的仿真数据生成方法,具备执行方法相应的功能模块和有益效果,该装置可以由软件和/或硬件(集成电路)的方式实现,并一般可集成于服务器或终端设备中。图4是本发明实施例4中的针对表格数据的仿真数据生成装置400的结构示意图。装置400运行在分布式场景下,有个数据节点,第个数据节点持有行数据,总共有行数据,每一行数据有列,第个数据节点的第i行第列数据记为,参照图4,本发明实施例的针对表格数据的仿真数据生成装置400具体可以包括:
获取累计分布表及逆累计分布表单元410,用于统计每个数据节点中离散列的取值为a的个数为,汇聚个数据节点,得到列取值为a的个数为,得到全局概率分布,根据全局概率分布得到累计分布表,其中,根据累计分布表生成对应的逆累计分布表;获取全局每一列均值和列协方差矩阵单元420,用于对每一列数据,根据累计分布表得到数据,令为第i行位置的数据,,其中为高斯分布的逆累计分布函数,表示查累计分布表,每个节点在本地计算和,并同步进行汇聚,其中表示节点的,令,得到全局每一列均值,列协方差矩阵的元素;生成联合高斯分布数据单元430,用于从均值为,协方差为的联合高斯分布中采样得到联合高斯分布数据;仿真数据生成单元440,用于对每一列查询逆累计分布表,具体为:记第i行第列位置的仿真数据为,,表示查逆累计分布表,为高斯分布的累计分布函数,得到的为生成的仿真数据。
34.优选地,生成联合高斯分布数据单元430的另一种实现方法为:采用标准正态分布独立地从高斯分布采样得到,每个元素 ;对做变换仿射得到列之间有关联关系的联合高斯分布数据,其中通过cholesky分解得到。
35.除了上述4个单元以外,装置400还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。
36.一种针对表格数据的仿真数据生成装置400的具体工作过程参照上述针对表格数据的仿真数据生成方法实施例2的描述,不再赘述。
37.基于本发明的实施例5根据本发明实施例的系统也可以借助于图5所示的电子设备的架构来实现。图5示出了该电子设备的架构。如图5所示,计算系统510、系统总线530、一个或多个cpu 540、输入/输出组件520、存储器550等。存储器550可以存储计算机处理和/或通信使用的各种数据或文件以及cpu所执行包括实施例1和实施2方法的程序指令。图5所示的架构只是示例性的,在实现不同的电子设备时,根据实际需要调整图5中的一个或多个组件。
38.另外,在上述电子设备的实施例中,应理解,处理器可以是中央处理单元 (英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specificintegrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:rom)、随机存取存储器(英文:random access memory,简称:ram)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理
器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
39.综合上述各实施例提供的一种针对表格数据的仿真数据生成方法、装置及电子设备,针对表格数据的仿真数据生成,适用于集中场景和分布式场景,用于解决现有的生成仿真数据技术效率低,生成时间较长以及在分布式情况下的生成数据质量差的问题,本发明的有益效果为:生成仿真数据技术效率高,所需时间短;在分布式情况下的生成数据质量高,尤其是联邦情况和非平衡情况下的仿真数据质量仍然能够满足下游任务和数据探索的需求。
40.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1