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

技术编号:30970041 阅读:26 留言:0更新日期:2021-11-25 20:48
本发明专利技术公开了一种基于安全多方计算的卡方分箱方法,对于联邦学习的特征工程,提出一种新的卡方值计算方法,不需要加密所有的特征数据发送给数据应用方进行特征预处理,而是先将特征数据按类别分组,混入虚假分组,并对分组类别进行标记后加密发送给数据应用方,加密分组类别将会大幅度减少加密处理的数据量,数据应用方不需要解密所有特征数据,避免了巨大的资源损耗;数据提供方发送给数据应用方的是特征数据的分组信息,数据应用方解密后获取的是特征数据的分组信息,不包含特征数据的实际内容,并且该分组信息添加了虚假分组信息,将真实分组和虚假分组进行编码标记,相比传输脱敏数据和将真实数据加密后传输来说,提高了数据隐私的安全性。据隐私的安全性。据隐私的安全性。

【技术实现步骤摘要】
一种基于安全多方计算的卡方分箱方法


[0001]本专利技术属于联邦学习领域,特别涉及一种基于安全多方计算的卡方分箱方法。

技术介绍

[0002]在联邦学习开始前首先需要构建一个数据集,而不是直接使用原始数据进行建模。将原始数据转换为数据集的任务称为特征工程。
[0003]特征选择是特征工程中重要的一步,一般在建立分类模型时,首先,需要对连续变量离散化,特征离散化后,模型会更稳定,降低了模型过拟合的风险。在特征选择的过程中常常会进行分箱操作,分箱就是将连续型的特征数据离散化。分箱的好处有很多,例如:它对异常数据有更强的鲁棒性,解决了异常数据对建模的干扰;特征数据离散化之后,每个特征数据有单独的权重,为逻辑回归模型引入了非线性,能够提升模型表达能力;分箱还可以将特征的缺失值作为独立一类别带入模型,并且特征离散化之后形成的稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展等等。对于精确的离散化,将数据按照类别划分区间,如果两个相邻的区间具有非常相似的类分布,则这两个区间可以合并,否则他们应当保持分开,而低卡方值表明相邻两个区间内具有相似的类分布。特征数据分箱后计算特征数据的卡方值,卡方值越小,分布越相似,可以合并为一箱。
[0004]无论是特征离散化还是特征预测能力评估,在联邦学习特征预处理过程中,需要缺乏特征标签数据的一方将自己的特征数据发送给有特征标签的一方进行联合特征预处理。
[0005]现有的大多数联邦学习框架中,一部分方法为满足隐私保护需求在计算中令数据提供方使用公钥加密所有的特征矩阵,然后将密文矩阵发送给数据应用方,数据应用方拿到数据后使用私钥解密进行计算。在大规模数据收集中,这种方法显然会造成巨大的资源损耗和性能下降。另一部分直接传递脱敏数据进行计算,无法保护数据隐私安全,也不符合法律规范,还有一部分参与者自己单独进行训练,将训练结果融合,不能充分地发挥数据地价值。

技术实现思路

[0006]本专利技术的目的是提出一种新的基于安全多方计算的卡方分箱方法,对于数据精确的离散化,先将数据按照类别划分区间,如果两个相邻的区间具有非常相似的类分布,则这两个区间可以合并,否则他们应当保持分开,而低卡方值表明相邻两个区间内具有相似的类分布。特征数据分箱后计算特征数据的卡方值,卡方值越小,分布越相似,可以合并为一箱。
[0007]实现本专利技术目的的具体技术方案是:
[0008]一种基于安全多方计算的卡方分箱方法,包括下述步骤:
[0009]步骤1:数据提供方通过同态加密系统生成一对公钥pk和私钥sk,将特征数据X={x0,x1,...,x
n
‑1},id∈[0,n

1]进行分组,将特征数据X中类别相同的数据的id划分为一个
区间,共记作s个分组,记作x
t
,t∈[0,s

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

1],并且标记虚假分组的类别0,使用公钥pk将分组类别加密记作E
x
=E(0),得到虚假分组信息为Group
v
(x
v
,E
x
);
[0011]步骤3:将真实分组信息和虚假分组信息按行连接,并且按行乱序,得到分组信息Group
X
,数据提供方将分组信息Group
X
(x
i
,E
x
)发送给数据应用方;
[0012]步骤4:数据应用方将分组信息Group
X
(x
i
,E
x
)与标签数据Y={y0,y1,...,y
i
,...,y
n
‑1},id∈[0,n

1]的id映射,得出每个分组区间x
i
对应的标签数据y
i
的值,将每个分组区间x
i
对应的标签数据y
i
的值相加,得出该分组区间内响应样本个数Group
y
,根据该分组区间内数据总数Group
s
,计算得出该分组区间未响应样本的个数Group
n
=Group
s

Group
y
,并且将所有分组区间的响应样本个数Group
y
,未响应样本个数Group
n
,样本总数Group
s
,以及分组区间对应的分组类别标记E
x
发送给数据提供方;
[0013]步骤5:数据提供方使用私钥将分组类别标记E
x
解密,得到解密后分组类别标记D
x
,其中D
x
=1则为真实分组,D
x
=0则为虚假分组,删除虚假分组信息;
[0014]步骤6:数据提供方根据真实分组区间对应的响应样本个数Group
y
,未响应样本个数Group
n
,样本总数Group
s
,计算第i,i∈[0,2s

1]个分组第j个类别的期望样本个数E
ij
,此处j∈[0,2)表示响应样本和未响应样本两类;根据相邻两个真实分组的期望样本个数E
ij
,相邻两个真实分组的样本个数A
ij
,计算得出相邻两个真实分组的卡方值χ2;
[0015]步骤7:数据提供方设置分箱数目限制,根据相邻分组的卡方值,卡方值最小的两个分组合并,合并后重新计算相邻分组的卡方值,直到分箱数目达到分箱数目限制后停止合并,得出卡方分箱结果。
[0016]步骤1所述真实分组x
t
,其中只包括特征数据的id,id∈[0,n

1],不包含特征数据的实际值,避免特征数据的实际值泄露。
[0017]步骤2所述将特征数据X的id随机划分s个分组区间,目的是构造虚假分组,将虚假分组混入真实分组中,保护真实分组信息。
[0018]步骤3所述分组信息Group
X
(x
i
,E
x
),其中将虚假分组信息与真实分组信息混合,并且将虚假分组和真实分组的类别进行加密,保护特征数据的隐私。
[0019]步骤4所述响应样本个数Group
y
根据以下方式得到:分组信息x
i
中包含特征数据的id,将id对应到标签本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于安全多方计算的卡方分箱方法,其特征在于,包括下述步骤:步骤1:数据提供方通过同态加密系统生成一对公钥pk和私钥sk,将特征数据X={x0,x1,...,x
n
‑1},id∈[0,n

1]进行分组,将特征数据X中类别相同的数据的id划分为一个区间,共记作s个分组,记作x
t
,t∈[0,s

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

1],并且标记虚假分组的类别0,使用公钥pk将分组类别加密记作E
x
=E(0),得到虚假分组信息为Group
v
(x
v
,E
x
);步骤3:将真实分组信息和虚假分组信息按行连接,并且按行乱序,得到分组信息Group
X
,数据提供方将分组信息Group
X
(x
i
,E
x
)发送给数据应用方;步骤4:数据应用方将分组信息Group
X
(x
i
,E
x
)与标签数据Y={y0,y1,...,y
i
,...,y
n
‑1},id∈[0,n

1]的id映射,得出每个分组区间x
i
对应的标签数据y
i
的值,将每个分组区间x
i
对应的标签数据y
i
的值相加,得出该分组区间内响应样本个数Group
y
,根据该分组区间内数据总数Group
s
,计算得出该分组区间未响应样本的个数Group
n
=Group
s

Group
y
,并且将所有分组区间的响应样本个数Group
y
,未响应样本个数Group
n
,样本总数Group
s
,以及分组区间对应的分组类别标记E
x
发送给数据提供方;步骤5:数据提供方使用私钥将分组类别标记E
x
解密,得到解密后分组类别标记D
x
,其中D
x
=1则为真实分组,D
x
=0则为虚假分组,删除虚假分组信息;步骤6:数据提供方根据真实分组区间对应的响应样本个数Group
y
,未响应样本个数Group
n
,样本总数Group
s
,计算第i,i∈[0,2s

1]个分组第j个类别的期望样本个数E
ij
,此处j∈[0,2)表示响应样本和未响应样本两类;根据相邻两个真实分组的期望样本个数E<...

【专利技术属性】
技术研发人员:何道敬孙黎彤杜润萌张民张熙廖清
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1