发明内容
本发明以在联邦学习各参与方提供的数据中找到与测试数据集数据分布最相似的数据样本作为模型训练的验证集为目的,提供了一种在联邦学习场景下的数据集划分方法及系统。
为达此目的,本发明采用以下技术方案:
提供一种在联邦学习场景下的数据集划分方法,包括如下步骤:
步骤S1,判断各联邦学习参与方提供的原始数据的数据分布是否一致;
步骤S2,使用各所述联邦学习参与方提供的数据分布一致的所述原始数据,以及模型测试数据训练、使用验证集优化得到最优的联邦分类模型M1;
步骤S3,将归属于各所述联邦学习参与方的所述原始数据输入到所述联邦分类模型M1中,所述联邦分类模型M1输出模型输入数据为所述模型测试数据的概率;
步骤S4,按照预测概率由高到低选取指定数量的所述模型输入数据划分为数据归属的所述联邦学习参与方提供的用于验证模型性能的验证集,剩余的所述模型输入数据划分为数据归属的所述联邦学习参与方提供的用于训练模型的训练集。
优选地,所述步骤S1中,判断各所述联邦学习参与方提供的所述原始数据的数据分布是否一致的方法具体包括:
步骤S11,将所述联邦学习参与方提供的所述原始数据划分为与所述原始数据的数据分布一致的训练集、验证集和测试集;
步骤S12,为划分的分属于各所述联邦学习参与方的训练集、验证集赋予相对应的数据标签;
步骤S13,使用带有数据标签的分属于各所述联邦学习参与方的所述训练集训练、使用验证集优化得到最优的联邦分类模型M2;
步骤S14,将分属于各所述联邦学习参与方的所述测试集输入到所述联邦分类模型M2中,得到所述联邦分类模型M2区分各归属方输入数据的若干个本地性能评价指标;
步骤S15,对所述联邦分类模型M2为区分输入数据归属方得到的各所述本地性能评价指标的值进行聚合计算,得到一全局评价指标值,并根据所述全局评价指标值判断出各所述联邦学习参与方分别提供的所述原始数据的数据分布是否一致。
本发明还提供了一种在联邦学习场景下的数据集划分系统,所述数据集划分系统包括:
数据分布一致性判断模块,用于判断各联邦学习参与方提供的原始数据的数据分布是否一致;
数据标签赋予模块,用于为数据分布一致的各所述联邦学习参与方提供的所述原始数据赋予相对应的数据标签并存储,并为模型测试数据赋予相对应的数据标签并存储;
数据获取模块,连接所述数据标签赋予模块,用于获取经标签赋予后的的所述原始数据作为模型训练样本,获取所述模型测试数据作为模型验证样本;
M1联邦分类模型训练模块,连接所述数据获取模块,用于使用获取的各所述联邦学习参与方提供的所述原始数据和所述模型测试数据训练、使用验证集优化得到最优的联邦分类模型M1;
M1模型性能测试模块,分别连接所述数据获取模块和所述M1联邦分类模型训练模块,用于将获取的归属于各所述联邦学习参与方的所述原始数据输入到所述联邦分类模型M1中,所述联邦分类模型M1输出模型输入数据为所述模型测试数据的概率;
验证集选定模块,连接所述M1模型性能测试模块和所述数据获取模块,用于按照预测概率由高到低选取指定数量的所述模型输入数据作为数据归属的所述联邦学习参与方提供的用于验证模型性能的验证集,剩余的所述模型输入数据作为数据归属的所述联邦学习参与方提供的用于训练模型的训练集。
优选地,所述数据分布一致性判断模块中具体包括:
数据划分单元,用于将各所述联邦学习参与方提供的所述原始数据划分为与所述原始数据的数据分布一致的训练集、验证集和测试集;
数据标签赋予单元,连接所述数据划分单元,用于为划分的分属于各所述联邦学习参与方的训练集、验证集赋予相对应的数据标签,并为所述模型测试数据赋予相对应的数据标签;
M2联邦分类模型训练单元,连接所述数据标签赋予单元,用于使用带有数据标签的分属于各所述联邦学习参与方的所述训练集训练、使用验证集优化得到最优的联邦分类模型M2;
M2模型性能测试单元,分别连接所述数据划分单元和所述M2联邦分类模型训练单元,用于将分属于各所述联邦学习参与方的所述测试集输入到所述联邦分类模型M2中,得到所述联邦分类模型M2区分各归属方输入数据的若干个本地性能评价指标;
数值聚合计算单元,连接所述M2模型性能测试单元,用于对所述联邦分类模型M2为区分输入数据归属方得到的各所述本地性能评价指标的值进行聚合计算,得到一全局评价指标值;
数据分布一致性判断单元,连接所述数值聚合计算单元,用于根据所述全局评价指标值,判断出各所述联邦学习参与方分别提供的所述原始数据的数据分布是否一致。
本发明的有益效果是:
1、实现了对各联邦学习参与方提供的原始数据的数据分布是否一致的有效判断;
2、能够将各联邦学习参与方提供的原始数据合理划分为训练集和验证集,所划分的验证集与测试集的数据分布相同或近似,有利于提高联邦学习模型的模型性能。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本发明一实施例提供的在联邦学习场景下的数据集划分方法,如图1所示,包括如下步骤:
步骤S1,判断各联邦学习参与方提供的原始数据的数据分布是否一致;
步骤S2,使用各联邦学习参与方提供的数据分布一致的原始数据以及模型测试数据训练、使用验证集优化得到最优的联邦分类模型M1;为了对原始数据的归属方以及对原始数据和模型测试数据进行区分,本发明在训练联邦分类模型M1之前,首先为各联邦学习参与方提供的原始数据赋予相对应的数据标签,并为模型测试数据赋予相对应的数据标签。比如联邦学习参与方A提供的原始数据记为A-data,联邦学习参与方B提供的原始数据记为B-data,可为A-data和B-data赋予相同的数据标签0,分别记为A-data|0和B-data|0;模型测试数据记为test,可为test数据赋予标签1,记为test|1。
步骤S3,将归属于各联邦学习参与方的原始数据输入到联邦分类模型M1中,联邦分类模型M1输出模型输入数据为模型测试数据的概率;比如将联邦学习参与方A提供的原始数据A-data输入到模型M1中,模型M1将输出A-data为模型测试数据的概率;
步骤S4,按照预测概率由高到低选取指定数量的模型输入数据划分为数据归属的联邦学习参与方提供的用于验证模型性能的验证集,剩余的模型输入数据划分为数据归属的联邦学习参与方提供的用于训练模型的训练集。比如步骤S3输入到模型M1中的数据为A-data时,按照预测概率由高到低从联邦学习参与方A提供的原始数据A-data中选取指定数量的数据划分为联邦学习参与方A提供的用于验证模型性能的验证集(比如根据预测概率由高到低选取A-data中的20%作为验证集),剩余80%的模型输入数据划分为联邦学习参与方A提供的用于训练模型的训练集。
以下以参与联邦学习的对象为联邦学习参与方A和B两个为例,并结合图2,对本发明提供的数据集划分方法进行具体阐述:
如图2所示,将联邦学习参与方A提供的原始数据记为A-data,将联邦学习参与方B提供的原始数据记为B-data,首先为联邦学习参与方A和B提供的原始数据增加数据标签0,记为A-data|0和B-data|0,为模型测试数据增加标签1,记为test-1,然后使用A-data|0、B-data|0和test|1进行联邦学习,训练、优化形成最优的联邦学习分类模型M1,模型M1用于区分输入数据是否为模型测试数据或是否可作为模型测试数据。
模型M1训练完成后,将数据A-data、B-data输入到模型M1中进行打分预测,输出输入数据属于或可作为模型测试数据的概率,概率值在0到1之间。将输入数据按照模型输出的概率值由高到低进行排序,分值越高,说明该输入数据与模型测试数据的数据分布越接近。最后按照模型训练具体需求,在输入数据中选取合适数量的数据样本作为模型训练的验证集,比如按照概率值从高到低选取输入数据的20%作为数据归属的联邦学习参与方提供的验证集,剩余的80%作为数据归属的该联邦学习参与方提供的训练集,这样便将联邦学习参与方A提供的原始数据A-data拆分为训练集A-train和验证集A-valid,将联邦学习参与方B提供的原始数据B-data拆分为训练集A-train和验证集B-valid。
步骤S1中,判断各联邦学习参与方提供的原始数据的数据分布是否一致的方法如图3所示,具体包括:
步骤S11,将各联邦学习参与方提供的原始数据划分为与原始数据的数据分布一致的训练集、验证集和测试集;比如联邦学习参与方A提供的原始数据记为A-data,将原始数据A-data划分为与原始数据的数据分布一致的训练集A-train、验证集A-valid和测试集A-test,联邦学习参与方B提供的原始数据记为B-data,将原始数据B-data划分为训练集B-train、验证集B-valid和测试集B-test;
步骤S12,为划分的分属于各联邦学习参与方的训练集赋予相对应的数据标签,比如为联邦学习参与方A提供的训练集A-train增加数据标签0,记为A-train|0,为联邦学习参与方B提供的训练集B-train增加数据标签1,记为B-train|1;
步骤S13,使用带有数据标签的分属于各联邦学习参与方的训练集,比如当联邦学习参与方只有A和B时,使用训练集A-train|0和B-train|1训练形成联邦分类模型M2;然后将分属于各联邦学习参与方的验证集,比如由联邦学习参与方A和B分别提供的测试集A-valid、B-valid输入到模型M2中,以评估模型M2区分输入数据归属方的模型性能,得到最优的联邦分类模型M2。
步骤S14,将测试集A-test,B-test输入到模型M2中,得到模型M2区分各归属方输入数据的若干个本地性能评价指标;
步骤S15,对联邦分类模型M2为区分输入数据归属方得到的各本地性能评价指标的值进行聚合计算,得到一全局评价指标值,并根据该全局评价指标值,判断出各联邦学习参与方分别提供的原始数据的数据分布是否一致。
以下还是以参与联邦学习的对象仅有联邦学习参与方A和B两个为例,并结合图4,对判断各联邦学习参与方提供的原始数据的数据分布是否一致的方法进行具体说明:
现有联邦学习参与方A和B,A、B两方提供的原始数据的数据分布不一致。首先将A方提供的原始数据划分为与原始数据分布一致的训练集、验证集和测试集,分别记为A-train、A-valid和A-test。同样地,将B方提供的原始数据划分为与原始数据一致的训练集、验证集和测试集,分别记为B-train、B-valid和B-test,并为A-train、A-valid增加数据标签0,记为A-train|0、A-valid|0,为B-train、B-valid增加数据标签1,记为B-train|1、B-valid|1,然后以A-train|0和B-train|1为训练样本训练、以A-valid|0、B-valid|1为验证集优化得到最优的联邦分类模型M2,模型M2用于区分输入数据归属于A方还是B方。
模型M2训练完成后,将A-test、B-test输入到模型M2中,得到评价A-test是否归属于A方的评价指标AUC(AUC(Area Under Cruve)被定义为ROC曲线下与坐标轴围合形成的面积,是用于评价模型预测性能的一种常用的本地性能评价指标。本发明中,AUC评价指标用于评价输入数据为对应归属方提供的概率),以及得到评价B-test是否归属于B方的评价指标AUC。然后对两个AUC指标的指标值进行聚合,并根据聚合结果比如通过阈值判断方法判断出A方和B方提供的原始数据的数据分布是否一致。该阈值判断方法具体为:
判断各性能评价指标AUC的数值累加结果的值与0.5的差值是否小于阈值δ并大于-δ,
若是,则判定各联邦学习参与方提供的原始数据的数据分布一致;
若否,则判定各联邦学习参与方提供的原始数据的数据分布不一致。
更加具体地,当各性能评价指标AUC的数值累加结果的值与0.5的差值大于或等于阈值δ时,则表示各联邦学习参与方提供的原始数据的数据分布不一致。当各性能评价指标AUC的数值累加结果的值与0.5的差值小于或等于-δ时,表示联邦分类模型M2的模型性能不合格,需要对模型M2进行重新训练。
阈值δ根据经验总结而得,当参与联邦学习的联邦学习参与方只有两个时,阈值δ优选等于0.2。
本发明还提供了一种在联邦学习场景下的数据集划分系统,可实现上述的数据集划分方法,如图5所示,该数据集划分系统包括:
数据分布一致性判断模块,用于判断各联邦学习参与方提供的原始数据的数据分布是否一致;
数据标签赋予模块,用于为数据分布一致的各联邦学习参与方提供原始数据赋予相对应的数据标签并存储,比如为联邦学习参与方A提供的原始数据A-data赋予标签0,并为模型测试数据赋予相对应的数据标签并存储,比如为模型测试数据test赋予数据标签1;
数据获取模块,连接数据标签赋予模块,用于获取经标签赋予后的原始数据作为模型训练样本,获取模型测试数据作为模型验证样本;
M1联邦分类模型训练模块,连接数据获取模块,用于使用获取的各联邦学习参与方提供的原始数据和模型测试数据训练、使用验证集优化得到最优的形成联邦分类模型M1;
M1模型性能测试模块,分别连接数据获取模块和M1联邦分类模型训练模块,用于将获取的归属于各联邦学习参与方的原始数据输入到联邦分类模型M1中,联邦分类模型M1输出模型输入数据为模型测试数据或可作为模型测试数据的概率;
验证集选定模块,连接M1模型性能测试模块,用于按照预测概率由高到低选取指定数量的模型输入数据作为数据归属的联邦学习参与方提供的用于验证模型性能的验证集,剩余的模型输入数据作为数据归属的该联邦学习参与方提供的用于训练模型的训练集。验证集和训练集选定方法在上述的数据集划分方法中作了具体阐述,在此不再赘述。
如图6所示,数据分布一致性判断模块中具体包括:
数据划分单元,用于将各联邦学习参与方提供的原始数据划分为与原始数据的数据分布一致的训练集、验证集和测试集;
数据标签赋予单元,连接数据划分单元,用于为划分的分属于各联邦学习参与方的训练集、验证集赋予相对应的数据标签,并为模型测试数据赋予相对应的数据标签;数据标签赋予方法在上述的数据集划分方法中作为具体阐述,在此不再赘述;
M2联邦分类模型训练单元,连接数据标签赋予单元,用于使用带有数据标签的分属于各联邦学习参与方的训练集训练、使用验证集优化得到最优的联邦分类模型M2;
M2模型性能测试单元,分别连接数据划分单元和M2联邦分类模型训练单元,用于将分属于各联邦学习参与方的测试集输入到联邦分类模型M2中,得到联邦分类模型M2区分各归属方输入数据的若干个本地性能评价指标;
数值聚合计算单元,连接M2模型性能测试单元,用于对联邦分类模型M2为区分输入数据归属方得到的各本地性能评价指标的指标值进行聚合计算,得到一全局评价指标值;
数据分布一致性判断单元,连接数值聚合计算单元,用于根据全局评价指标值,判断出各联邦学习参与方分别提供的原始数据的数据分布是否一致。
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本申请说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。