一种基于安全多方计算的卡方分箱方法

文档序号:1875628 发布日期:2021-11-23 浏览:16次 >En<

阅读说明:本技术 一种基于安全多方计算的卡方分箱方法 (Card square box-dividing method based on safe multi-party calculation ) 是由 何道敬 孙黎彤 杜润萌 张民 张熙 廖清 于 2021-08-27 设计创作,主要内容包括:本发明公开了一种基于安全多方计算的卡方分箱方法,对于联邦学习的特征工程,提出一种新的卡方值计算方法,不需要加密所有的特征数据发送给数据应用方进行特征预处理,而是先将特征数据按类别分组,混入虚假分组,并对分组类别进行标记后加密发送给数据应用方,加密分组类别将会大幅度减少加密处理的数据量,数据应用方不需要解密所有特征数据,避免了巨大的资源损耗;数据提供方发送给数据应用方的是特征数据的分组信息,数据应用方解密后获取的是特征数据的分组信息,不包含特征数据的实际内容,并且该分组信息添加了虚假分组信息,将真实分组和虚假分组进行编码标记,相比传输脱敏数据和将真实数据加密后传输来说,提高了数据隐私的安全性。(The invention discloses a safe multiparty computation-based chi-square binning method, which provides a new chi-square value computation method for the feature engineering of federal study, does not need to encrypt all feature data and send the feature data to a data application party for feature preprocessing, but firstly groups the feature data according to categories, mixes the feature data into false packets, marks the packet categories and then encrypts and sends the false packets to the data application party, the encryption packet categories can greatly reduce the data volume of encryption processing, the data application party does not need to decrypt all the feature data, and huge resource loss is avoided; the data application side decrypts the packet information of the characteristic data, does not contain the actual content of the characteristic data, adds the false packet information, and carries out coding and marking on the real packet and the false packet.)

一种基于安全多方计算的卡方分箱方法

技术领域

本发明属于联邦学习领域,特别涉及一种基于安全多方计算的卡方分箱方法。

背景技术

在联邦学习开始前首先需要构建一个数据集,而不是直接使用原始数据进行建模。将原始数据转换为数据集的任务称为特征工程。

特征选择是特征工程中重要的一步,一般在建立分类模型时,首先,需要对连续变量离散化,特征离散化后,模型会更稳定,降低了模型过拟合的风险。在特征选择的过程中常常会进行分箱操作,分箱就是将连续型的特征数据离散化。分箱的好处有很多,例如:它对异常数据有更强的鲁棒性,解决了异常数据对建模的干扰;特征数据离散化之后,每个特征数据有单独的权重,为逻辑回归模型引入了非线性,能够提升模型表达能力;分箱还可以将特征的缺失值作为独立一类别带入模型,并且特征离散化之后形成的稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展等等。对于精确的离散化,将数据按照类别划分区间,如果两个相邻的区间具有非常相似的类分布,则这两个区间可以合并,否则他们应当保持分开,而低卡方值表明相邻两个区间内具有相似的类分布。特征数据分箱后计算特征数据的卡方值,卡方值越小,分布越相似,可以合并为一箱。

无论是特征离散化还是特征预测能力评估,在联邦学习特征预处理过程中,需要缺乏特征标签数据的一方将自己的特征数据发送给有特征标签的一方进行联合特征预处理。

现有的大多数联邦学习框架中,一部分方法为满足隐私保护需求在计算中令数据提供方使用公钥加密所有的特征矩阵,然后将密文矩阵发送给数据应用方,数据应用方拿到数据后使用私钥解密进行计算。在大规模数据收集中,这种方法显然会造成巨大的资源损耗和性能下降。另一部分直接传递脱敏数据进行计算,无法保护数据隐私安全,也不符合法律规范,还有一部分参与者自己单独进行训练,将训练结果融合,不能充分地发挥数据地价值。

发明内容

本发明的目的是提出一种新的基于安全多方计算的卡方分箱方法,对于数据精确的离散化,先将数据按照类别划分区间,如果两个相邻的区间具有非常相似的类分布,则这两个区间可以合并,否则他们应当保持分开,而低卡方值表明相邻两个区间内具有相似的类分布。特征数据分箱后计算特征数据的卡方值,卡方值越小,分布越相似,可以合并为一箱。

实现本发明目的的具体技术方案是:

一种基于安全多方计算的卡方分箱方法,包括下述步骤:

步骤1:数据提供方通过同态加密系统生成一对公钥pk和私钥sk,将特征数据X={x0,x1,...,xn-1},id∈[0,n-1]进行分组,将特征数据X中类别相同的数据的id划分为一个区间,共记作s个分组,记作xt,t∈[0,s-1],其中n,s为正整数,并且标记真实分组xt的类别为1,使用公钥pk将该分组类别加密,记作Ex=E(1),得到真实分组信息Groupt(xt,Ex);

步骤2:构造虚假分组,将特征数据X的id随机划分s个分组区间,分组区间数目与真实分组个数保持一致,将区间记作xv,v∈[0,s-1],并且标记虚假分组的类别0,使用公钥pk将分组类别加密记作Ex=E(0),得到虚假分组信息为Groupv(xv,Ex);

步骤3:将真实分组信息和虚假分组信息按行连接,并且按行乱序,得到分组信息GroupX,数据提供方将分组信息GroupX(xi,Ex)发送给数据应用方;

步骤4:数据应用方将分组信息GroupX(xi,Ex)与标签数据Y={y0,y1,...,yi,...,yn-1},id∈[0,n-1]的id映射,得出每个分组区间xi对应的标签数据yi的值,将每个分组区间xi对应的标签数据yi的值相加,得出该分组区间内响应样本个数Groupy,根据该分组区间内数据总数Groups,计算得出该分组区间未响应样本的个数Groupn=Groups-Groupy,并且将所有分组区间的响应样本个数Groupy,未响应样本个数Groupn,样本总数Groups,以及分组区间对应的分组类别标记Ex发送给数据提供方;

步骤5:数据提供方使用私钥将分组类别标记Ex解密,得到解密后分组类别标记Dx,其中Dx=1则为真实分组,Dx=0则为虚假分组,删除虚假分组信息;

步骤6:数据提供方根据真实分组区间对应的响应样本个数Groupy,未响应样本个数Groupn,样本总数Groups,计算第i,i∈[0,2s-1]个分组第j个类别的期望样本个数Eij,此处j∈[0,2)表示响应样本和未响应样本两类;根据相邻两个真实分组的期望样本个数Eij,相邻两个真实分组的样本个数Aij,计算得出相邻两个真实分组的卡方值χ2

步骤7:数据提供方设置分箱数目限制,根据相邻分组的卡方值,卡方值最小的两个分组合并,合并后重新计算相邻分组的卡方值,直到分箱数目达到分箱数目限制后停止合并,得出卡方分箱结果。

步骤1所述真实分组xt,其中只包括特征数据的id,id∈[0,n-1],不包含特征数据的实际值,避免特征数据的实际值泄露。

步骤2所述将特征数据X的id随机划分s个分组区间,目的是构造虚假分组,将虚假分组混入真实分组中,保护真实分组信息。

步骤3所述分组信息GroupX(xi,Ex),其中将虚假分组信息与真实分组信息混合,并且将虚假分组和真实分组的类别进行加密,保护特征数据的隐私。

步骤4所述响应样本个数Groupy根据以下方式得到:分组信息xi中包含特征数据的id,将id对应到标签数据Y的id中,得出分组信息xi对应的标签值,若第i个分组信息中xi=[0,2],则对应的标签值为[y0,y2],由于响应样本标签值为1,未响应样本标签值为0,将该分组信息对应的标签值相加,得出该分组的响应样本个数Groupy

步骤4所述未响应样本个数Groupn的得到方式:每个分组中样本个数为分组信息xi中id的个数,即求分组信息中xi的长度得出该分组的样本个数Groups,根据该分组的样本个数减响应样本个数,得出未响应样本个数Groupn

步骤6所述第i个分组第j个类别的期望样本个数Eij的计算公式为:

其中,Ri表示第i个分组的第j、j+1个类别的样本个数之和,即Ri=Groups (i),Cj表示第i、i+1个分组中第j个类别的样本个数之和,当j表示响应样本类别时,Cj=Groupy (i)+Groupy (i+1),N表示相邻两个分组的样本总数,即N=Groups (i)+Groups (i+1)

步骤6所述卡方值χ2计算公式为:

其中,Aij是第i个分组、第j个类别的实际样本个数,如果j表示第i个分组的响应样本,那么Aij=Groupy (i),Eij是第i个分组、第j个类别的期望样本个数。

本发明的有益效果

在安全性方面,本发明保护了联邦学习特征工程阶段卡方分箱的数据隐私,将特征数据分组,将相同类别的数据索引id作为真实分组信息,添加虚假分组信息,将真实分组类别标记为1,将虚假分组类别标记为0,加密分组类别的0、1编码,将真实分组信息混合虚假分组信息后发送给数据应用方,数据应用方不知道该分组的特征数据具体值,只知道特征数据对应的id,并且混入了虚假分组,保护了特征数据的数据隐私。

在运算效率方面,本发明不需要加密所有的特征值发送给数据应用方,只加密了特征数据的分组类别,避免了加密和解密大量数据的计算开销,在大数据集的场景中,效率十分显著。

附图说明

图1为本发明流程图。

具体实施方式

结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

实施例

数据提供方特征数据X={0,2,2,4,5,6,6,6},数据应用方标签数据Y={0,1,1,1,0,0,1,1},以计算数据提供方特征数据X的卡方分箱结果为例,基于安全多方计算的卡方分箱方法步骤具休说明:

首先,数据提供方将特征数据X类别相同的数据的id划分为一个区间,分组结果为:xt=[0],[1,2],[3],[4],[5,6,7],共5个分组,标汜这些分组为真实分组,并且使用公钏pk加密分组类别Ex=E(1),得到真实分组信息Groupt(xt,Ex),真实分组信息Groupt(xt,Ex)具体内容如下:

x<sub>t</sub> E<sub>x</sub>
[0] E(1)
[1,2] E(1)
[3] E(1)
[4] E(1)
[5,6,7] E(1)

其次,构造虚假分组,将特征数据X的id随机划分s个区间,分组结果为:xv=[0,1,2],[3,4],[5],[6],[7],分组数目与真实分组个数保持一致,共5个分组。标记这些分组为虚假分组,并且使用公钥pk加密分组类别Ex=E(0),得到虚假分组信息Groupv(xv,Ex),虚假分组信息Groupv(xv,Ex)具体内容如下:

x<sub>v</sub> E<sub>x</sub>
[0,1,2] E(0)
[3,4] E(0)
[5] E(0)
[6] E(0)
[7] E(0)

然后,将真实分组信息Groupt(xt,Ex)和虚假分组信息Groupv(xv,Ex)按行连接,并且按行乱序,得到分组信息GroupX(xi,Ex),并且将分组信息发送给数据应用方,分组信息GroupX(xi,Ex)具体内容如下:

x<sub>i</sub> E<sub>x</sub>
[0,1,2] E(0)
[3,4] E(0)
[0] E(1)
[5] E(0)
[1,2] E(1)
[3] E(1)
[6] E(0)
[7] E(0)
[4] E(1)
[5,6,7] E(1)

然后,数据应用方将分组信息GroupX与标签数据Y={0,1,1,1,0,0,1,1}的id映射,得出每个分组区间对应的标签数据的值如下,将每个分组区间xi对应的标签数据yi相加,得出该分组区间内响应样本个数Groupy,根据该分组区间内数据总数Groups,计算得出该分组区间未响应样本的个数

Groupn=Groups-Groupy

然后,将所有分组区间的响应样本个数Groupy,未响应样本个数Groupn,样本总数Groups,以及分组区间对应的分组类别标记Ex发送给数据提供方;

数据提供方使用私钥sk解密分组类别标记Ex,得出真实分组信息,解密分组类别标记得到1的分组是真实分组。根据每个真实分组区间对应的响应样本个数Groupy,未响应样本个数Groupn,样本总数Groups,计算第i个分组第j个类别的期望样本个数Eij,此处j∈[0,2)表示响应样本和未响应样本两类,此处以两个相邻真实分组区间[0]和[1,2]为例,计算两个分组的卡方值,两个相邻真实分组的信息如下:

分组编号 分组 Group<sub>y</sub> Group<sub>n</sub> R<sub>i</sub>(Group<sub>s</sub>)
0 [0] 0 1 1
1 [1,2] 2 0 2
------------- C<sub>j</sub> 2 1 3

分组区间[0]的响应样本个数Groupy (0)=0,样本总数为Groups (0)=1,未响应样本个数为Groupn (0)=1,则该分组的期望样本个数为:

分组[1,2]的期望样本个数为根据相邻两个真实分组的期望样本个数Eij,相邻两个真实分组的样本个数Aij,最终计算得出相邻两个真实分组的卡方值χ2

数据提供方设置分箱数目限制,根据相邻分组的卡方值,卡方值χ2最小的两个分组合并,合并后重新计算相邻分组的卡方值,直到分箱数目达到分箱数目限制后停止合并,得出卡方分箱结果。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种环绕行星探测器的轨道测量方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!