梯度提升树建模方法、装置以及终端与流程

文档序号:23223262发布日期:2020-12-08 15:06阅读:207来源:国知局
梯度提升树建模方法、装置以及终端与流程

本发明涉及机器学习技术领域,尤其涉及一种梯度提升树建模方法、装置以及终端。



背景技术:

梯度提升树(gbdt)算法是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。梯度提升树算法是传统机器学习算法里面对真实分布拟合的最好的几种算法之一。随着算法和大数据的发展,算法和算力已经不再是阻碍ai发展的瓶颈了,而各个领域内真实有效的数据源才是最宝贵的资源。然而,数据源之间存在着难以打破的壁垒,在大多数行业中,数据是以孤岛的形式存在的。由于行业竞争、隐私安全、行政手续复杂等问题,即使是在同一个公司的不同部门之间实现数据整合也面临着重重阻力,在现实中想要将分散在各地、各个机构的数据进行整合几乎是不可能的,或者说所需的成本是巨大的。



技术实现要素:

本发明实施例提供一种梯度提升树建模方法、装置以及终端,以解决现有技术中的一个或多个技术问题。

第一方面,本发明实施例提供了一种梯度提升树建模方法,包括:

对具有标签值的第一样本数据集和多个第二样本数据集按照标识进行求交运算,得到具有标签值的第一数据交集和多个第二数据交集;

根据所述标签值以及前一决策树的预测值得到第一决策树的目标值,并对所述第一决策树的目标值加密,得到所述第一决策树的加密目标值;

根据所述第一决策树的目标值、所述第一数据交集、所述第一决策树的加密目标值以及所述第二数据交集,确定所述第一决策树的最优分裂点;

对所述第一决策树的最优分裂点所在位置的节点进行分裂,得到所述第二决策树;

所述第一决策树经过预设训练轮数的迭代之后,生成第n决策树,n大于等于二;

根据所述第一决策树至所述第n决策树,得到梯度提升树模型。

在一种实施方式中,对所述第一决策树的目标值加密,得到第一决策树的加密目标值,包括:

第一端生成公钥和私钥,将所述公钥发送至第二端;

所述第一端根据所述公钥对所述第一决策树的目标值加密,并将所述第一决策树的加密目标值发送至所述第二端。

在一种实施方式中,根据所述第一决策树的目标值、所述第一数据交集、所述第一决策树的加密目标值以及所述第二数据交集,确定所述第一决策树的最优分裂点,包括:

所述第一端根据所述第一数据交集和所述第一决策树的目标值,计算所述第一决策树中每一个分裂位置的信息增益,并从所述第一决策树中所有分裂位置对应的信息增益中确定出最大的信息增益,作为第一端局部最大信息增益,所述第一端局部最大信息增益所在的分裂位置为第一端局部最优分裂点;

接收所述第二端发送的加密信息增益矩阵,所述加密信息增益矩阵是所述第一决策树中每一个分裂位置的加密信息增益构成的,所述加密信息增益是所述第二端根据所述第二数据交集和所述第一决策树的加密目标值得到的;

所述第一端根据所述私钥对所述加密信息增益矩阵进行解密,并从所述第一决策树中所有分裂位置对应的加密信息增益中确定出最大的加密信息增益,作为第二端局部最大信息增益,所述第二端局部最大信息增益所在的分裂位置为所述第二端局部最优分裂点;

所述第一端根据所述第一端局部最大信息增益和所述第二端局部最大信息增益,确定所述第一决策树的最优分裂点。

在一种实施方式中,所述第一端根据所述第一端局部最大信息增益和所述第二端局部最大信息增益,确定所述第一决策树的最优分裂点,包括:

所述第一端比较所述第一端局部最大信息增益和所述第二端局部最大信息增益;

在所述第一端局部最大信息增益大于所述第二端局部最大信息增益的情况下,确定所述第一端局部最优分裂点为所述第一决策树的最优分裂点;

在所述第一端局部最大信息增益小于所述第二端局部最大信息增益的情况下,确定所述第二端局部最优分裂点为所述第一决策树的最优分裂点。

在一种实施方式中,对所述第一决策树的最优分裂点所在位置的节点进行分裂,得到所述第二决策树,包括:

在所述第一端局部最优分裂点为所述第一决策树的最优分裂点情况下,所述第一端根据所述第一端局部最优分裂点所在位置的节点进行分裂,存储分裂的第一特征和值,得到第一分裂结果;

在所述第二端局部最优分裂点为所述第一决策树的最优分裂点情况下,所述第一端发送所述第二端局部最优分裂点至所述第二端;

所述第一端接收所述第二端发送的第二分裂结果,所述分裂结果是所述第二端根据所述第二端局部最优分裂点所在位置的节点进行分裂,存储分裂的第二特征和值得到的;

所述第一端根据所述第一分裂结果和所述第二分裂结果进行递归分裂,直至所有节点成为叶子节点,得到所述第二决策树。

第二方面,本发明实施例提供了一种梯度提升树建模装置,包括:

数据集求交模块,用于对具有标签值的第一样本数据集和多个第二样本数据集按照标识进行求交运算,得到具有标签值的第一数据交集和多个第二数据交集;

目标值加密模块,用于根据所述标签值以及前一决策树的预测值得到第一决策树的目标值,并对所述第一决策树的目标值加密,得到所述第一决策树的加密目标值;

最优分裂点确定模块,用于根据所述第一决策树的目标值、所述第一数据交集、所述第一决策树的加密目标值以及所述第二数据交集,确定所述第一决策树的最优分裂点;

新决策树生成模块,用于对所述第一决策树的最优分裂点所在位置的节点进行分裂,得到所述第二决策树;所述第一决策树经过预设训练轮数的迭代之后,生成第n决策树,n大于等于二;

梯度提升树模型生成模块,用于根据所述第一决策树至所述第n决策树,得到梯度提升树模型。

在一种实施方式中,所述目标值加密模块,包括:

密钥生成单元,用于第一端生成公钥和私钥,将所述公钥发送至第二端;

目标值加密单元,用于所述第一端根据所述公钥对所述第一决策树的目标值加密,并将所述第一决策树的加密目标值发送至所述第二端。

在一种实施方式中,所述最优分裂点确定模块,包括:

所述第一端局部信息增益计算单元,用于第一端根据所述第一数据交集和所述第一决策树的目标值,计算所述第一决策树中每一个分裂位置的信息增益,并从所述第一决策树中所有分裂位置对应的信息增益中确定出最大的信息增益,作为第一端局部最大信息增益,所述第一端局部最大信息增益所在的分裂位置为第一端局部最优分裂点;

加密信息增益矩阵接收单元,用于接收所述第二端发送的加密信息增益矩阵,所述加密信息增益矩阵是所述第一决策树中每一个分裂位置的加密信息增益构成的,所述加密信息增益是所述第二端根据所述第二数据交集和所述第一决策树的加密目标值得到的;

第二端局部信息增益计算单元,用于所述第一端根据所述私钥对所述加密信息增益矩阵进行解密,并从所述第一决策树中所有分裂位置对应的加密信息增益中确定出最大的加密信息增益,作为第二端局部最大信息增益,所述第二端局部最大信息增益所在的分裂位置为所述第二端局部最优分裂点;

第一决策树的最优分裂点确定单元,用于所述第一端根据所述第一端局部最大信息增益和所述第二端局部最大信息增益,确定所述第一决策树的最优分裂点。

在一种实施方式中,所述第一决策树的最优分裂点确定单元,包括:

局部最大增益比较子单元,用于所述第一端比较所述第一端局部最大信息增益和所述第二端局部最大信息增益;

第一局部最优分裂点确定子单元,用于在所述第一端局部最大信息增益大于所述第二端局部最大信息增益的情况下,确定所述第一端局部最优分裂点为所述第一决策树的最优分裂点;

第二局部最优分裂点确定子单元,用于在所述第一端局部最大信息增益小于所述第二端局部最大信息增益的情况下,确定所述第二端局部最优分裂点为所述第一决策树的最优分裂点。

在一种实施方式中,新决策树生成模块,包括:

第一分裂结果计算单元,用于在所述第一端局部最优分裂点为所述第一决策树的最优分裂点情况下,所述第一端根据所述第一端局部最优分裂点所在位置的节点进行分裂,存储分裂的第一特征和值,得到第一分裂结果;

第二端局部最优分裂点发送单元,用于在所述第二端局部最优分裂点为所述第一决策树的最优分裂点情况下,所述第一端发送所述第二端局部最优分裂点至所述第二端;

第二分裂结果接收单元,用于所述第一端接收所述第二端发送的第二分裂结果,所述分裂结果是所述第二端根据所述第二端局部最优分裂点所在位置的节点进行分裂,存储分裂的第二特征和值得到的;

第n决策树生成单元,用于所述第一端根据所述第一分裂结果和所述第二分裂结果进行递归分裂,直至所有节点成为叶子节点,得到所述第二决策树;所述第一决策树经过预设训练轮数的迭代之后,生成第n决策树,n大于等于二。

第三方面,本发明实施例提供了一种梯度提升树建模终端,所述梯度提升树建模终端的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,所述梯度提升树建模终端的结构中包括处理器和存储器,所述存储器用于存储支持所述梯度提升树建模终端执行上述梯度提升树建模方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述梯度提升树建模终端还可以包括通信接口,用于与其他设备或通信网络通信。

第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储梯度提升树建模终端所用的计算机软件指令,其包括用于执行上述梯度提升树建模方法所涉及的程序。

上述技术方案中的一个技术方案具有如下优点或有益效果:本实施方式提供的梯度提升树建模方法,在联合来自多方数据进行梯度提升树建模过程中,不会泄露各自隐私数据。不仅促进了数据流通,打破数据孤岛,充分发挥数据价值,还可以对数据生态系统进行有效的隐私保护。

上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。

附图说明

在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。

图1示出根据本发明实施例的一种梯度提升树建模方法的流程图。

图2示出根据本发明实施例的另一种梯度提升树建模方法的流程图。

图3示出根据本发明实施例的一种两方联合梯度提升树建模过程图。

图4示出根据本发明实施例的全局最优分裂点的进行分裂的示意图。

图5示出根据本发明实施例的新决策树结构示意图。

图6示出根据本发明实施例的在a方存储的新决策树结构示意图。

图7示出根据本发明实施例的在b方存储的新决策树结构示意图。

图8示出根据本发明实施例的一种梯度提升树建模装置的结构框图。

图9示出根据本发明实施例的另一种梯度提升树建模装置的结构框图。

图10示出根据本发明实施例的梯度提升树建模终端的结构示意图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。

实施例一

在一种具体实施方式中,提供了一种梯度提升树建模方法,如图1所示,包括:

步骤s10:对具有标签值的第一样本数据集和多个第二样本数据集按照标识进行求交运算,得到具有标签值的第一数据交集和多个第二数据交集。

在一种示例中,以两方数据为例,可以获取第一样本数据集和第二样本数据集。第一样本数据集包括形成一列的多个第一标识、形成行的第一标签名称和多个第一特征名称。例如,第一标识可以包括张三、李四、王五、赵六等人物,第一标签名称可以包括是否购买保险等。第一特征名称可以包括体重、收入、身高等。第一样本数据集还包括第一标签值和多个第一特征值。例如,第一标签值可以包括1和0,1表示购买了保险,0表示没有购买保险。第一特征值可以包括张三的身高是数值179cm,李四的收入是8000元等。第二样本数据集和第一样本数据集的构成相似,但是没有标签名称和标签值,其它的元素在此不再赘述。对第一样本数据集和第二样本数据集求交,得到具有相同标识的第一数据交集和第二数据交集。当然,还可以和更多的样本数据集进行求交运算,均在本实施方式的保护范围内。

步骤s20:根据标签值以及前一决策树的预测值得到第一决策树的目标值,并对第一决策树的目标值加密,得到第一决策树的加密目标值。

在一种示例中,进入迭代生成决策树的过程。首先,可以根据前一决策树的分裂结果中的预测值和标签值计算第一决策树的目标值,目标值是指生成新的决策树时,输入训练模型中的值。生成的新的决策树中,行数据的预测值跟这个目标值越接近,表示效果越好。目标值可以是残差,残差是标签值和预测值的差。需要注意的是,第一次计算目标值的时候,由于没有上一棵决策树,所以可利用没有用到决策树的另一种方式进行初始化即可。之后,可以在具有标签值的第一交集数据所在的第一端生成公钥,利用公钥对目标值加密,得到加密目标值,并将加密目标值同步至第二交集数据所在的第二端。

需要注意的是,第一决策树也可以认为是当前决策树,而并不是数量上的第一个决策树。第二决策树与可以认为相对当前决策树,要生成的下一决策树,而并不是数量上的第二个决策树。

步骤s30:根据第一决策树的目标值、第一数据交集、第一决策树的加密目标值以及第二数据交集,确定第一决策树的最优分裂点。

在一种示例中,进入递归寻找最优分裂点的过程时,可以多方同步第一决策树的所有节点的信息。例如,节点的信息可以在第一数据交集所在的第一端和第二数据交集所在的第二端之间同步。从决策树的根节点开始递归,寻找最优分裂点。根节点中包括所有的行数据信息,例如,标识张三,身高180cm,收入8000元,购买保险等数据。

步骤s40:对第一决策树的最优分裂点所在位置的节点进行分裂,得到第二决策树。

对第一决策树的最优分裂点所在位置的节点进行分裂,直至所有的节点都成为叶子节点,得到第二决策树。叶子节点中包括预测值,叶子节点中的预测值可以是用于生成的新的决策树中的训练模型的输入值。判断当前节点是否为叶子节点的依据包括:当前节点是否达到树的最大深度,或者当前数据行数是否小于最小节点的数据行数,又或者当前节点的所有行数据的标签值是否都相同,如果是,就直接返回,结束递归,如果否,则继续分裂。

步骤s50:第一决策树经过预设训练轮数的迭代之后,生成第n决策树,n大于等于二。

步骤s60:根据第一决策树至第n决策树,得到梯度提升树模型。

在一种示例中,在进行预测时,从第一决策树至第n决策树的输出之和,可以是梯度提升树模型的输出结果。

在一种实施方式中,如图2所示,步骤s20,包括:

步骤s201:第一端生成公钥和私钥,将公钥发送至第二端;

步骤s202:第一端根据公钥对第一决策树的目标值加密,并将第一决策树的加密目标值发送至第二端。

在一种示例中,第一端初始化,生成密钥,密钥包括公钥和私钥,并将公钥同步至第二端。可以在第二端利用公钥计算加密信息增益。

在一种实施方式中,如图2所示,步骤s30,包括:

步骤s301:第一端根据第一数据交集和第一决策树的目标值,计算第一决策树中每一个分裂位置的信息增益,并从第一决策树中所有分裂位置对应的信息增益中确定出最大的信息增益,作为第一端局部最大信息增益,第一端局部最大信息增益所在的分裂位置为第一端局部最优分裂点;

步骤s302:接收第二端发送的加密信息增益矩阵,加密信息增益矩阵是第一决策树中每一个分裂位置的加密信息增益构成的,加密信息增益是第二端根据第二数据交集和第一决策树的加密目标值得到的;

步骤s303:第一端根据私钥对加密信息增益矩阵进行解密,并从第一决策树中所有分裂位置对应的加密信息增益中确定出最大的加密信息增益,作为第二端局部最大信息增益,第二端局部最大信息增益所在的分裂位置为第二端局部最优分裂点;

步骤s304:第一端根据第一端局部最大信息增益和第二端局部最大信息增益,确定第一决策树的最优分裂点。

在一种实施方式中,步骤s304:包括:

步骤s3041:第一端比较第一端局部最大信息增益和第二端局部最大信息增益;

步骤s3042:在第一端局部最大信息增益大于第二端局部最大信息增益的情况下,确定第一端局部最优分裂点为所述第一决策树的最优分裂点;

步骤s3043:在第一端局部最大信息增益小于第二端局部最大信息增益的情况下,确定第二端局部最优分裂点为第一决策树的最优分裂点。

在一种实施方式中,如图2所示,步骤s40,包括:

步骤s401:在第一端局部最优分裂点为所述第一决策树的最优分裂点情况下,第一端根据第一端局部最优分裂点所在位置的节点进行分裂,存储分裂的第一特征和值,得到第一分裂结果;

步骤s402:在第二端局部最优分裂点为第一决策树的最优分裂点情况下,第一端发送第二端局部最优分裂点至第二端;

步骤s403:第一端接收第二端发送的第二分裂结果,分裂结果是第二端根据第二端局部最优分裂点所在位置的节点进行分裂,存储分裂的第二特征和值得到的;

步骤s404:第一端根据第一分裂结果和第二分裂结果进行递归分裂,直至所有节点成为叶子节点,得到第二决策树。

在一种示例中,通过递归分裂的方式,直到所有的节点都是叶子节点,生成一颗新的决策树。第一端和第二端同步新的决策树的结构。

实施例二

在一种实施方式中,提供有多台机器,每台机器上都允许了一个模型训练的程序。然后将每台机器对应的样本数据分别输入各自对应的本地的模型训练的程序,同时开始运行程序。多个程序运行的过程中,会交互部分加密的信息,共同生成一个模型,整个过程称为多方联合梯度提升树建模的过程。

以a机器和b机器两方为例进行具体说明。a、b两方分别有第一样本数据集合qa和第二样本数据集合qb。qa包括形成行的列的多个第一标识、形成行的标签名称和多个第一特征名称,以及与多个第一标识对应的多个第一标签值和多个第一特征值;qb包括形成一列的多个第二标识、形成行的多个第二特征名称,以及与多个第二标识对应的多个第二特征值。

具体的,可参见表1和表2。每行对应一个唯一标识,例如,qa集合中的多个第一标识,包括张三、李四、周一、王五,qb集合中的多个第二标识,包括张三、李四以及周一。qa集合还包括了签名名称y,含义是,是否买保险,标签值为1表示买保险,标签值为0表示没买保险。当然,标签名称的含义还可以是其它含义。qa集合中的多个第一特征名称包括身高x1、体重x2以及收入x3,对应的特征值如表1所示。qb集合中的多个第二特征名称包括理财金额x4和存款金额x5,对应的特征值如表2所示。

为了便于联合训练,将qa,qb两个数据集的标识列进行安全求交运算。其中,求交过程可以采用了安全快速求交的棣弗-赫尔曼(diffe-hellman)算法,此算法是一种确保共享钥匙安全穿越不安全网络的方法。两方求交之后,生成第一交集xa和第二交集xb,其中,xa、xb中的同一行数据为相同的标识数据。如图表3所示,xa和xb有共同的标识张三、李四以及周一,xa还包括张三、李四以及周一分别对应的标签名称以及标签值,张三、李四以及周一对应身高、体重、收入的特征名称以及对应的特征值。

表1:a方的qa集合

表2:b方的qb集合

表3:a方的xa集合

表4:b方的xb集合

进入梯度提升回归树(gbdt)联合建模流程,本实施方式以两方为例进行说明。如图3所示,a方对应的模型参数是向量(w1,w2,w3),b方对应的模型参数是向量(w4,w5)。y=w1*x1+w2*x2+w3*x3+w4*x4+w5*x5,每一方只对应一个模型参数,只是具体的值在不断的变化。对a方中的程序进行初始化,初始化就是最开始随机把a方对应的模型参数赋初值。初始化之后,a方生成公钥和私钥,将公钥同步至b方。

根据预设的迭代轮数,进入通过迭代生成决策树的步骤中:

首先,在a方,根据上一棵决策树的预测值(上一棵决策树结果)和标签值(label值),计算第一决策树的目标值(target)。并利用公钥将目标值加密,生成加密目标值(enc_target),并将加密目标值同步至b方。

然后,进入递归寻找最优划分点的过程中。即从决策树的所有根节点中寻找最优分裂点,直到所有的根节点分裂为叶子节点。例如,在表3中找一个最优划分的位置。其中,需要划分的节点称为根节点,每一个根节点包括行数据信息,行数据信息包括多个行数据,其中,行数据为每一行对应的全部数据,包括标识、标签值以及各种特征值。行数据的个数称为数据行数。例如,表3中根节点包括张三、李四和周一对应的行数据。判断当前节点是否为叶子节点,若是,则判断当前节点是否达到决策树的最大深度,决策树的最大深度是输入训练模型的模型参数。或者判断当前节点的数据行数是否小于最小节点的数据行数,最小节点的数据行数可以是用户自行配置的模型参数。或者判断当前节点的多个行数据中的标签值是否相同。若以上三种判断的结果为是的情况下,结束递归,若否,则在当前节点的基础上继续分裂。a、b双方同步每个树节点的行数据信息。

a方根据第一交集xa和目标值计算每一个分裂位置的信息增益gain_a,并将最大的信息增益的分裂位置作为a方的局部最优分裂点。b方根据第二交集xb、加密目标值以及公钥,计算每一个分裂位置的加密信息增益enc_gainb,构成enc_gain矩阵。b方将加密信息增益发送至a方,a方根据私钥对加密信息增益进行解密,得到最大的信息增益的分裂位置,并将其作为b方的局部最优分裂点。a方中,比较gain_a和gain_b,数值较大的增益的分裂位置作为全局最优分裂点。

如果全局最优分裂点位于a方,则根据gain_a对应的分裂位置对节点进行分裂,并更新信息增益,存储分裂的特征值。

如果全局最优分裂点位于b方,a方将gain_b对应的分裂位置发回b方。b方根据该分裂位置对节点进行分裂,存储分裂的特征名称(feature)和特征值(value),并将分裂结果同步到a方。a方根据b方同步的结果,划分节点并更新信息增益。递归分裂,直到所有的节点都是叶子节点,生成一棵新的决策树,同时,两方同步决策树结构。

例如,全局最优分裂点为张三的收入x3所在的分裂位置,根据这个分裂点分裂。如图4所示,只要收入大于等于10000的,分入左子节点,例如,李四分到左子节点。小于10000的分到右子节点,例如,张三和周一分到右子节点。下面的左子节点和右子节点,就是上面节点的子节点。这棵树的深度就是2。如果再继续划分右子节点,那么右子节点就变成了当前节点。而左边这个节点因为只有一行数据所以不能划分了。不能划分不会有子节点,就是叶子节点。继续划分得到如图5所示的结果,生成了新的决策树。新决策树中的每个叶子节点上会有一个预测值。比如输入到下一轮进行计算,李四的预测值就是v1,周一的预测值是v2,张三的预测值是v3。新决策树在a方存储的情况如图6所示,新决策树在b方存储的情况如图7所示。

整个过程中,有标签的a方能够获取所有无标签b方的维度数和特征分布,但是无法获取真正的x值。无标签b方持有的都是标签y和上一轮决策树结果的目标值的加密脱敏信息,所以无法获取到真正的y值。最终的整个树的结构模型可以多方进行同步,但是属于每方的分裂点值各自存储在各方,不会泄露到其他方。

本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。

实施例三

在另一种具体实施方式中,提供了一种梯度提升树建模装置,如图8所示,包括:

数据集求交模块10,用于对具有标签值的第一样本数据集和多个第二样本数据集按照标识进行求交运算,得到具有标签值的第一数据交集和多个第二数据交集;

目标值加密模块20,用于根据所述标签值以及前一决策树的预测值得到第一决策树的目标值,并对所述第一决策树的目标值加密,得到第一决策树的加密目标值;

最优分裂点确定模块30,用于根据所述第一决策树的目标值、所述第一数据交集、所述第一决策树的加密目标值以及所述第二数据交集,确定所述第一决策树的最优分裂点;

新决策树生成模块40,用于对所述第一决策树的最优分裂点所在位置的节点进行分裂,得到所述第二决策树;所述第一决策树经过预设训练轮数的迭代之后,生成第n决策树,n大于等于二;

梯度提升树模型生成模块50,用于根据所述第一决策树至所述第n决策树,得到梯度提升树模型。

在一种实施方式中,如图9所示,所述目标值加密模块20,包括:

密钥生成单元201,用于第一端生成公钥和私钥,将所述公钥发送至第二端;

目标值加密单元202,用于第一端根据所述公钥对所述第一决策树的目标值加密,并将所述第一决策树的加密目标值发送至第二端。

在一种实施方式中,如图9所示,所述最优分裂点确定模块30,包括:

第一端局部信息增益计算单元301,用于第一端根据所述第一数据交集和所述第一决策树的目标值,计算所述第一决策树中每一个分裂位置的信息增益,并从所述第一决策树中所有分裂位置对应的信息增益中确定出最大的信息增益,作为第一端局部最大信息增益,所述第一端局部最大信息增益所在的分裂位置为第一端局部最优分裂点;

加密信息增益矩阵接收单元302,用于接收所述第二端发送的加密信息增益矩阵,所述加密信息增益矩阵是所述第一决策树中每一个分裂位置的加密信息增益构成的,所述加密信息增益是所述第二端根据所述第二数据交集和所述第一决策树的加密目标值得到的;

第二端局部信息增益计算单元303,用于所述第一端根据所述私钥对所述加密信息增益矩阵进行解密,并从所述第一决策树中所有分裂位置对应的加密信息增益中确定出最大的加密信息增益,作为第二端局部最大信息增益,所述第二端局部最大信息增益所在的分裂位置为所述第二端局部最优分裂点;

第一决策树的最优分裂点确定单元304,用于所述第一端根据所述第一端局部最大信息增益和所述第二端局部最大信息增益,确定所述第一决策树的最优分裂点。

在一种实施方式中,如图9所示,所述第一决策树的最优分裂点确定单元304,包括:

局部最大增益比较子单元,用于所述第一端比较所述第一端局部最大信息增益和所述第二端局部最大信息增益;

第一局部最优分裂点确定子单元,用于在所述第一端局部最大信息增益大于所述第二端局部最大信息增益的情况下,确定所述第一端局部最优分裂点为所述第一决策树的最优分裂点;

第二局部最优分裂点确定子单元,用于在所述第一端局部最大信息增益小于所述第二端局部最大信息增益的情况下,确定所述第二端局部最优分裂点为所述第一决策树的最优分裂点。

在一种实施方式中,如图9所示,新决策树生成模块40,包括:

第一分裂结果计算单元401,用于在所述第一端局部最优分裂点为所述第一决策树的最优分裂点情况下,所述第一端根据所述第一端局部最优分裂点所在位置的节点进行分裂,存储分裂的第一特征和值,得到第一分裂结果;

第二端局部最优分裂点发送单元402,用于在所述第二端局部最优分裂点为所述第一决策树的最优分裂点情况下,所述第一端发送所述第二端局部最优分裂点至所述第二端;

第二分裂结果接收单元403,用于所述第一端接收所述第二端发送的第二分裂结果,所述分裂结果是所述第二端根据所述第二端局部最优分裂点所在位置的节点进行分裂,存储分裂的第二特征和值得到的;

第n决策树生成单元404,用于所述第一端根据所述第一分裂结果和所述第二分裂结果进行递归分裂,直至所有节点成为叶子节点,得到所述第二决策树;所述第一决策树经过预设训练轮数的迭代之后,生成第n决策树,n大于等于二。

实施例四

图9示出根据本发明实施例的交互终端的结构框图。如图10所示,该终端包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。所述处理器920执行所述计算机程序时实现上述实施例中的梯度提升树建模方法。所述存储器910和处理器920的数量可以为一个或多个。

该终端还包括:

通信接口930,用于与外界设备进行通信,进行数据交互传输。

存储器910可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(isa,industrystandardarchitecture)总线、外部设备互连(pci,peripheralcomponentinterconnect)总线或扩展工业标准体系结构(eisa,extendedindustrystandardarchitecture)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。

本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1