CN113723477A - 一种基于孤立森林的跨特征联邦异常数据检测方法 - Google Patents
一种基于孤立森林的跨特征联邦异常数据检测方法 Download PDFInfo
- Publication number
- CN113723477A CN113723477A CN202110937849.1A CN202110937849A CN113723477A CN 113723477 A CN113723477 A CN 113723477A CN 202110937849 A CN202110937849 A CN 202110937849A CN 113723477 A CN113723477 A CN 113723477A
- Authority
- CN
- China
- Prior art keywords
- node
- splitting
- isolated
- federal
- initiator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 93
- 238000001514 detection method Methods 0.000 title claims abstract description 43
- 239000003999 initiator Substances 0.000 claims abstract description 141
- 238000012360 testing method Methods 0.000 claims abstract description 22
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 243
- 238000000034 method Methods 0.000 claims description 65
- 230000008569 process Effects 0.000 claims description 25
- 238000005070 sampling Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 17
- 230000007246 mechanism Effects 0.000 description 55
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013450 outlier detection Methods 0.000 description 2
- 238000012502 risk assessment Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010205 computational analysis Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种基于孤立森林的跨特征联邦异常数据检测方法、***、电子设备及存储介质,该方法在对联邦孤立森林模型中的各孤立树进行构建时,由发起方随机从发起方及各参与方选择一个作为当前结点的结点***方,并在结点***方完成当前结点的***,并将结点***信息发送至非结点***方,以供非结点***方进行同样的结点***,从而可以在***露本方所存储的特征数据的情况下,利用各方所存储的特征数据,构建结构相同的孤立树,进而可以形成孤立森林,并利用该孤立森林更全面地从测试样本中检测出异常数据。
Description
技术领域
本申请涉及联邦学习领域,特别是涉及一种基于孤立森林的跨特征联邦异常数据检测方法、***、电子设备及存储介质。
背景技术
异常值是指样本中的极个别值,其数值明显偏离其所属样本的其他观测值。样本中通常会存在一些异常值,如果不加分析地将所有样本数据带入计算分析或模型训练过程中,其中的异常值会对结果产生不良影响,因此,在数据分析或处理前需要进行异常值检测,如风控领域的信用风险评估或欺诈风险评估,检测之后对异常用户进行标记,降低商业交易中的风险。
当前,可以采用由多棵孤立树构成的孤立森林模型等方式从海量的数据中检测异常数据。但是,现有方式检测异常数据的过程中,需要获取训练样本及测试样本的全部特征数据及标签数据,在面对特征数据分布在不同参与方的跨特征样本时,要求***露各方特征数据与标签数据(若有),则难以充分利用各参与方的特征实现异常数据的检测。
发明内容
鉴于上述问题,本申请实施例提供一种基于孤立森林的跨特征联邦异常数据检测方法,能够解决在样本的特征数据分布在不同参与方且要求***露各方特征数据情况下,难以充分利用各参与方的特征数据进行异常数据检测的问题。
相应的,本申请实施例还提供了一种电子设备及存储介质,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种基于孤立森林的跨特征联邦异常数据检测方法,应用于联邦***,所述联邦***包括发起方和参与方,所述方法包括:
所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,在联邦孤立森林模型每棵孤立树的每个结点训练过程中,所述发起方随机从所述发起方及各所述参与方选择一个作为当前结点的结点***方,并在所述结点***方完成对当前结点的***,并将结点***信息发送至非结点***方;
所述发起方和所述参与方中的非结点***方,在每个训练阶段中根据所述***信息进行结点***,最终得到跨特征的联邦孤立森林模型;
所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的各预测样本数据的异常得分,在所述异常得分大于预设分数阈值的情况下,确定所述异常得分对应的预测样本数据为异常数据,完成异常数据检测。
相应的,本申请实施例还提供一种基于孤立森林的跨特征联邦异常数据检测装置,其中,应用于联邦***,所述联邦***包括发起方和参与方,所述装置包括:
联邦训练模块,用于控制所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,在联邦孤立森林模型每棵孤立树的每个结点训练过程中,所述发起方随机从所述发起方及各所述参与方选择一个作为当前结点的结点***方,并在所述结点***方完成对当前结点的***,并将结点***信息发送至非结点***方;
模型生成模块,用于控制所述发起方和所述参与方中的非结点***方,在每个训练阶段中根据所述***信息进行结点***,最终得到跨特征的联邦孤立森林模型;
异常数据检测模块,用于控制所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的各预测样本数据的异常得分,在所述异常得分大于预设分数阈值的情况下,确定所述异常得分对应的预测样本数据为异常数据,完成异常数据检测。
本申请实施例还提供一种电子设备,包括处理器以及存储器,其中,
所述处理器执行所述存储器所存放的计算机程序代码,以实现本申请所述的基于孤立森林的跨特征联邦异常数据检测方法。
本申请实施例还提供了一种可读存储介质,所述可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现本申请所述的基于孤立森林的跨特征联邦异常数据检测方法的步骤。
本申请实施例包括以下优点:
发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,并在联邦孤立森林模型每棵孤立树的每个结点训练过程中,由发起方随机从发起方及各参与方选择一个作为当前结点的结点***方,并在结点***方完成对当前结点的***,并将结点***信息发送至非结点***方;发起方和参与方在每个训练阶段中根据***信息进行结点***,最终得到跨特征的联邦孤立森林模型;发起方和参与方利用本地的预测样本数据和联邦孤立森林模型进行联邦预测,得到本地的预测样本数据的异常得分,在异常得分大于预设分数阈值的情况下,确定该异常得分对应的预测样本数据为异常数据,完成异常数据检测。也即在对联邦孤立森林模型中的各孤立树进行构建时,由发起方随机从发起方及各参与方选择一个作为当前结点的结点***方,并在结点***方完成对当前结点的***,并将结点***信息发送至非结点***方,以供非结点***方进行同样的结点***,从而可以在***露本方所存储的特征数据的情况下,利用各方所存储的特征数据,在各参与方均构建结构相同的孤立树,进而可以构建出孤立森林,并利用该孤立森林更全面地从测试样本中测试出异常数据。
附图说明
图1是本申请中提供的一种基于孤立森林的跨特征联邦异常数据检测方法实施例的步骤流程图;
图2是本申请中提供的一种联邦孤立森林模型的训练流程图;
图3是本申请中提供的一种单棵孤立树的训练流程图;
图4是本申请中提供的一种单棵孤立树的结点***流程图;
图5是本申请中提供的一种利用孤立森林进行异常值检测的流程图;
图6是本申请中提供的一种利用单棵孤立树计算测试样本的路径长度的流程图;
图7是本申请中提供的一种基于孤立森林的跨特征联邦异常数据检测装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请中提供的一种基于孤立森林的跨特征联邦异常数据检测方法实施例的步骤流程图,应用于联邦***,该联邦***包括发起方和参与方,所述方法包括步骤100~步骤300。
本申请实施例中,上述发起方与至少一个参与方之间相互通信,上述发起方及上述至少一个参与方存储有样本的不同特征数据,也即各参与方均存储有特征数据与样本的对应关系,对于同一个样本,可以确定在各参与方中对应的特征数据;而对于任一参与方中的特征数据,可以唯一确定其所属的样本,进而确定该样本在其他参与方中存储的特征数据。
本申请实施例中,上述发起方及参与方均为加入联邦异常数据检测的数据提供方,可以为组织、机构或终端。
步骤100、所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,并在联邦孤立森林模型每棵孤立树的每个结点训练过程中,由所述发起方随机从所述发起方及各所述参与方选择一个作为当前结点的结点***方,并在所述结点***方完成对当前结点的***,并将结点***信息发送至非结点***方。
该步骤中,在训练联邦孤立森林模型的过程中,对任意一棵孤立树进行构建时,针对该孤立树的每个结点,由发起方发起联邦训练,并随机从发起方与各参与方中选择一方作为结点***方,然后由该结点***方根据本方所存储的特征数据对训练样本进行***,即进行二叉树划分,并将划分后落在第一子结点的训练样本标识及落在第二子结点的训练样本标识,发送给其他参与方,以供其他参与方进行同步的结点***。
其中,第一子结点具体可以为进行二叉树划分后得到的两个子结点中的左子结点,而第二子结点具体可以为进行二叉树划分后得到的两个子结点中的右子结点。
步骤200、所述发起方和所述参与方中的非结点***方,在每个训练阶段中根据所述***信息进行结点***,最终得到跨特征的联邦孤立森林模型。
该步骤中,在发起方及参与方未被选作结点***方时,接收结点***方发送的***信息,对孤立树在当前训练阶段对应的结点,也即当前结点进行***,从而在***露结点***方所存储的特征数据的情况下,在非结点***方处进行相同的结点***;然后重新执行随机从发起方与各参与方中选择一参与方作为结点***方的步骤,以对其他结点进行***,直至训练样本集合中的全部训练样本均落在孤立树的叶子结点上,即可以在各参与方均构建结构相同的单棵孤立树。
对联邦孤立森林模型中的每棵孤立树均采用上述单棵孤立树的训练过程,直至得到所需数目的多棵孤立树,即可以在发起方及各参与方均得到多棵孤立树,并由上述多棵孤立树组成跨特征的联邦孤立森林模型。上述跨特征的联邦孤立森林的构建是在***露本方所存储的特征数据的情况下,利用各方所存储的特征数据,由发起方及各参与方共同构建形成,且对于任意一棵孤立树,其在发起方及各参与方处的树结构均相同。
步骤300、所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的各预测样本数据的异常得分,在所述异常得分大于预设分数阈值的情况下,确定所述异常得分对应的预测样本数据为异常数据,完成异常数据检测。
该步骤中,联邦孤立森林模型由发起方和各参与方共同构建形成,在各方对本地的预测样本数据进行异常得分检测时,需要利用上述联邦孤立森林模型联邦计算各预测样本数据的异常得分,并将异常得分大于预设分数阈值的预测样本数据确定为异常数据。
综上所述,本申请实施例提供的基于孤立森林的跨特征联邦异常数据检测方法,在对联邦孤立森林模型中的各孤立树进行构建时,由发起方随机从发起方及各参与方选择一个作为当前结点的结点***方,并在结点***方完成对当前结点的***,并将结点***信息发送至非结点***方,以供非结点***方进行同样的结点***,从而可以在***露本方所存储的特征数据的情况下,利用各方所存储的特征数据,在各参与方构建结构相同的孤立树,进而可以构建出孤立森林,并利用该孤立森林更全面地从测试样本中检测出异常数据。
可选地,在一种实施方式中,本申请所提供的基于孤立森林的跨特征联邦异常数据检测方法中,上述步骤100包括步骤101~104。
步骤101、所述发起方根据本地的训练样本数据进行多次随机抽样得到所述联邦孤立森林模型中每棵孤立树的本地训练样本,将每棵孤立树的所述本地训练样本的索引号发送给各参与方。
该步骤中,若训练样本数据在发起方存储的第一特征数据具有多维的情况下,可以根据第一特征采样比例,随机从多维第一特征数据中选择相应数量维度的第一特征数据,形成上述在发起方侧参与联邦孤立森林模型训练的特征数据集合,进而获得每棵孤立树的本地训练样本。
其中,因为特征数据与样本一一对应,每一个上述特征数据集合即对应有一个训练样本集合,在确定了特征数据集合后,也即确定了参与孤立森林训练的一个训练样本集合;因为发起方及各参与方之间相互通信,因而可以将每棵孤立树的本地训练样本的索引号发送给各参与方。
其中,构建单棵孤立树的训练样本数量由发起方在构建联邦孤立森林模型前进行定义;上述第一特征采样比例参数由发起方根据本方的特征数量自行定义。
步骤102、各所述参与方根据所述索引号和所述本地的训练样本数据得到每棵孤立树的本地训练样本。
该步骤中,因为发起方及各参与方之间相互通信,所以参与方可以接受发起方发送的上述索引号,并由各参与方根据接收到的索引号,对本方的训练样本进行采样,得到本方的本地训练样本。
其中,在发起方将第一特征数据集合对应的训练样本标识发送给参与方之前,还需要向各参与方发起联邦异常检测的请求,在各参与方同意参与的情况下,发起方才会将上述训练样本标识发送给各参与方,否则该参与方不参与孤立森林模型训练及异常数据检测。
其中,若训练样本在参与方存储的第二特征数据具有多维的情况下,可以根据第二特征采样比例,随机从多维第二特征数据中选择相应数量维度的第二特征数据,形成上述第二特征数据集合。上述第二特征采样比例由各参与方根据本方的特征数量自行定义。
步骤103、对每棵孤立树,所述发起方和各所述参与方根据所述本地训练样本对其根结点数据进行初始化,并将当前结点更新为根结点,从当前结点开始该棵孤立树的联邦训练。
该步骤中,即对联邦孤立森林模型中的任何一个孤立树,确定对应的一个本地训练样本,然后将该本地训练样本的全部数据置于根结点处开始对该孤立树进行训练,即开始对本地训练样本进行结点***。
步骤104、每棵孤立树训练完成后,所述的所述发起方和参与方得到所述跨特征的联邦孤立森林模型。
该步骤中,因为每个孤立树均是由发起方及各参与方共同参与构建,而发起方及各参与方在各自本地存储的训练样本不同特征的数据,因而由前述步骤训练好的多棵孤立树,即可共同组建得到跨特征的联邦孤立森林模型。
可选地,在一种具体实施方式中,本申请实施例所提供的基于孤立森林的跨特征联邦异常数据检测方法中,跨特征的联邦孤立森林模型包含多棵跨特征的孤立树,每一棵孤立树的联邦训练步骤包括步骤131~步骤135:
步骤131、所述发起方随机从所述发起方及各所述参与方中选择一方作为当前结点的结点***方,并将结点***方标识发送给各所述参与方。
该步骤中,由发起方随机从发起方及各参与方中选择执行当次结点***的结点***方,然后将该结点***方的***方标识发送给各所述参与方,以告知各参与方由该结点***方执行当前结点***。
步骤132、所述发起方和所述参与方若为当前结点的结点***方时,从本地的训练样本特征中随机选择一维作为当前结点的***特征,从本地训练样本的所述***特征中随机选择一个特征值作为***特征值,根据***特征和***特征值将当前结点上的本地训练样本划分成第一子结点训练样本及第二子结点训练样本;将第一子结点训练样本对应的索引号及第二子结点训练样本对应的索引号分别发送给非结点***方。
该步骤中,在发起方和参与方中的任意一方被选作结点***方的情况下,说明是由该结点***方所选取的特征数据集合对应的特征对训练样本进行结点***,因而随机从该结点***方所选取的特征数据集合中选择特征作为***特征,并基于该特征在特征数据集合中的数值确定***特征值,然后基于该***特征及***特征值对本地训练样本进行结点***,将当前结点上的本地训练样本划分成第一子结点训练样本及第二子结点训练样本,得到划分后的两个子样本集合,分别对应第一子结点训练样本及第二子结点训练样本,从而确定各子样本集合对应的训练样本标识,然后由发起方更新本方孤立树中的结点信息,即新增一个结点,同时记录上述***特征,并记录上述***特征值,作为当次结点***的结点信息;同时,将第一子结点训练样本对应的索引号及第二子结点训练样本对应的索引号分别发送给非结点***方,以供非结点***方进行相同结构的结点***。
步骤133、所述发起方和所述参与方若为当前结点的非结点***方时,接收结点***方发送来的结点***结果,并根据所述结点***结果记录当前结点由所述结点***方***,并根据***结果中第一子结点上的索引号及第二子结点上的索引号,将本地的训练样本分成第一子结点训练样本及第二子结点训练样本。
该步骤中,在发起方及参与方未被选作当前结点的结点***方时,因为由结点***方执行当次结点***,且会将***后得到的第一子结点训练样本对应的索引号及第二子结点训练样本对应的索引号分别发送给非结点***方,因而在发起方及参与方作为非结点***方时,接收由结点***方发送的结点***结果即可,并记录当前结点由所述结点***方发起***,并根据***结果中第一子结点上的索引号及第二子结点上的索引号,将本地的训练样本分成第一子结点训练样本及第二子结点训练样本,从而在***露结点***方所存储的特征数据的情况下,利用结点***方的特征数据在发起方及各参与方构建孤立树。
步骤134、在当前结点为非叶子结点的情况下,所述发起方和所述参与方,分别将划分后的第一子结点训练样本及第二子结点训练样本分别作为新的训练样本,并将当前结点更新为第一子结点或第二子结点,并返回执行所述发起方随机从所述发起方及各所述参与方中选择一方作为当前结点的结点***方的步骤。
该步骤中,在当前结点为非叶子结点的情况下,说明划分后的两个子样本集合可以继续进行结点***,因而分别将划分后的第一子结点训练样本及第二子结点训练样本分别作为新的训练样本,并将当前结点更新为第一子结点或第二子结点,并返回执行所述发起方随机从所述发起方及各所述参与方中选择一方作为当前结点的结点***方的步骤,继续对更新后的当前结点进行***。
步骤135、在当前结点为叶子结点的情况下,终止对当前结点的***。
该步骤中,在当前结点为叶子结点的情况下,说明划分后的两个子样本集合无法再继续进行结点***,或者无需再进行结点***,因而终止当前结点的***,也即终止对第一子结点训练样本及第二子结点训练样本的结点***。
可选地,在一种具体实施方式中,在本申请实施例上述步骤132中,在所述发起方和所述参与方作为所述结点***方时,从本地训练样本的所述***特征中随机选择一个特征值作为***特征值,根据***特征和***特征值将当前结点上的本地训练样本划分成第一子结点训练样本及第二子结点训练样本的步骤,具体包括步骤1321~1322。
步骤1321、从所述本地特征数据集合中的最大值与最小值的区间内随机选择一个值,作为***特征值。
上述步骤1321中,在确定了特征数据集合后,即可以确定特征数据集合所包含的各特征对应的最大值与最小值,并由该最大值与最小值确定特征取值区间;在随机从本地的训练样本特征中选择一维作为当前结点的***特征后,由上述特征取值区间内随机选取一个值,作为按该***特征对训练样本进行结点***的***特征值。
步骤1322、基于所述***特征值,对本地训练样本进行结点***。
上述步骤1322中,将特征数据小于上述***特征值的训练样本划分至当前进行结点***所处结点的左边,将特征数据大于或等于上述***特征值的训练样本划分至当前进行结点***所处结点的右边。
本申请实施例中,在进行结点***新增一个结点后,可以基于该结点划分后的子样本集合及该结点在孤立树中的深度确定该结点是否为叶子结点。
可选地,在上述结点所在深度大于或等于预设深度阈值的情况下,或者上述子样本集合中的训练样本数目小于或等于预设训练样本数量阈值的情况下,确定上述结点为叶子结点,即可以终止对上述子样本集合的结点***;而在上述结点所在深度小于预设深度阈值的情况下,且各上述子样本集合中的训练样本数目均大于预设训练样本数量阈值的情况下,确定上述结点为非叶子结点;
其中,上述预设深度阈值为根据每棵孤立树的抽样训练样本数量S计算得到的每棵孤立树的最大深度max_depth,具体可以根据max_depth=log2S计算得到,具体可以由发起方计算得到并发送给各参与方;上述预设训练样本数量阈值为预先设置的叶子结点的最少训练样本数量,例如为1。
本申请实施例中,当所有孤立树训练完成后,每个参与方均得到联邦的孤立森林模型,孤立森林模型由多棵孤立树构成,每棵孤立树由多个结点构成。若孤立树中的结点为叶子结点,所有参与方的结点记录信息相同;若孤立树中的结点为非叶子结点,根据上述步骤302及步骤303可知,根据参与方是否为结点***方,各参与方对此结点信息的记录内容略有差别,仅当参与方是结点***方时,记录***特征和对应的***特征值,这样不会向其他参与方泄露结点***方的数据隐私。
可选地,在上述结点为非叶子结点的情况下,上述结点信息记录的内容包括{‘is_leaf’:False,‘split_role’:split_role,‘split_feature’:split_feature,‘split_value’:split_value};其中,split_feature表示***特征,split_role表示结点***方;
在上述结点为非叶子结点的情况下,上述结点信息记录的内容包括{‘is_leaf’:False,‘split_role’:split_role}。
可选地,在确定上述结点为叶子结点的情况下,在上述结点的结点信息上记录上述结点上的训练样本数目;具体地,在孤立树中新增一个叶子结点,结点信息记录的内容包括{‘is_leaf’:Ture,‘leaf_sample_number’:sample_number},其中,‘is_leaf’和’leaf_sample_number’项记录为的该结点是否为叶子结点以及落在该结点上的训练样本数目。
可选地,在一种实施方式中,本申请实施例所提供的方法,在上述步骤131之前,还包括步骤121:
定义联邦建模参数,所述联邦建模参数包括孤立树数量、每棵孤立树的训练样本数量、每棵孤立树叶子结点的预设训练样本数量阈值。
上述步骤121中,预先根据构建联邦孤立森林模型要求,定义构建联邦孤立森林模型所需的孤立树数量N、每棵孤立树所需的训练样本数量S,以及定义用于判定孤立树中结点为叶子结点的最少训练样本数量,也即上述预设训练样本数量阈值。同时,还需要由发起方根据每棵孤立树的训练样本数量S,确定计算每棵孤立树的最大深度max_depth,将联邦建模参数以及每棵孤立树的最大深度max_depth发送给其他每个参与方。示例地,可以定义构建孤立森林所需的孤立树数量为100、每棵孤立树所需的训练样本数量为256,以及定义用于判定孤立树中结点为叶子结点的最少训练样本数量为1。
可选地,在一种实施方式中,本申请实施例所提供的基于孤立森林的跨特征联邦异常数据检测方法中,上述步骤300包括步骤301~步骤302。
步骤301、所述发起方和参与方,根据所述联邦孤立森林模型对预测样本数据进行检测,确定所述预测样本数据最终落在的叶子结点,计算所述预测样本数据在所述联邦孤立森林模型中的第一平均路径长度及所述联邦孤立森林模型中每棵孤立树的第二平均路径长度。
该步骤中,在每棵孤立树上确定各预测样本数据分别落在哪个叶子结点上,根据叶子结点上的训练样本数目和叶子结点的层数计算落在该结点上的预测样本数据的深度,从而计算得到各预测样本数据在每棵孤立树中的路径长度,针对每个预测样本数据,取该预测样本数据在联邦孤立森林模型中每棵孤立树中的路径长度的平均值,即获得该预测样本数据的上述第一平均路径长度。
其中,通过公式h(x)计算测试样本数据在单棵孤立树中的路径长度。
其中,h(x)=e+C(T.size) (a),
e表示测试样本数据x从孤立树的根结点到叶子结点过程中所经历的边的数目,T.size为测试样本数据所在叶子结点上的样本数目,C(T.size)为一修正值,表示用T.size条样本数据构建的孤立树的平均路径长度;然后由测试样本数据在联邦孤立森林模型中对各棵孤立树的h(x)求平均值,计算得到上述第一平均路径长度E(h(x))。
其中,通过公式c(n)计算联邦孤立森林模型中各棵孤立树的平均深度,即得到上述第二平均路径长度。
步骤302、根据所述第一平均路径长度及所述第二平均路径长度,计算所述待测试样本的异常得分。
该步骤中,因为第一平均路径长度反映了对应预测样本数据在联邦孤立森林模型的各棵孤立树中的平均路径长度,而第二平均路径长度为组成联邦孤立森林模型的各棵孤立树的平均路径长度,通过上述二者可以判定出该预测样本数据与所属集合中其他样本的偏离程度,也即可以确定出该预测样本数据的异常得分。
具体地,上述根据所述第一平均路径长度及所述第二平均路径长度,计算所述待测试样本的异常得分的步骤,包括:
H(k)=ln(k)+ξ (d),
计算所述预测样本数据的异常得分;
其中,n为样本总数目,E(h(x))表示样本x在孤立森林所有孤立树上的平均路径长度,c(n)为用n条数据构建孤立树的平均路径长度,ξ为欧拉常数。
其中,预设分数阈值为判断预测样本数据是否为异常数据的分数阈值。在预测样本数据的异常得分大于上述预设分数阈值的情况下,说明对应预测样本数据的数值明显偏离所属集合的其他观测值,故判定其为异常数据。
可选地,在一种实施方式中,本申请所提供的基于孤立森林的跨特征联邦异常数据检测方法中,上述步骤301包括步骤3011~3016。
步骤3011、对于每棵所述孤立树,所述发起方和参与方中将所述预测样本数据置于所述孤立树的根结点,并将当前结点更新为根结点。
上述步骤3011中,对于孤立森林中的任意一棵孤立树,将预测样本数据置于孤立树的根结点处,并将预测样本数据当前所处的结点更新为对应孤立树的根结点。
步骤3012、所述发起方和参与方获取所述当前结点的结点信息。
上述步骤3012中,在构建孤立树时均记录了每个结点的结点信息,该结点信息记录了对应的结点是否为叶子结点;且在对应的结点不是叶子结点时,结点信息记录了其***特征及对应的***特征值,或者记录了其***特征来源于结点***方。
步骤3013、所述发起方和参与方根据所述当前结点的结点信息,确定所述当前结点是否为叶子结点。
上述步骤3013中,因为结点信息记录了对应的结点是否为叶子结点,因而可以通过获得当前结点的结点信息判定其是否为叶子结点。
步骤3014、在所述当前结点为非叶子结点的情况下,若所述发起方或参与方为当前结点的结点***方,所述当前结点的结点信息包括***特征及***特征值,则根据所述***特征及所述***特征值判定所述当前结点上的预测样本数据划分为其第一子结点和第二子结点上的预测样本数据,并将所述第一子结点和第二子结点的预测样本数据标识发送给各非结点***方,供非结点***方将所述当前结点对当前结点上的预测样本数据进行划分;并将所述当前结点更新为所述第一子结点或第二子结点。
上述步骤3014中,在当前结点不是叶子结点的情况下,如果其结点信息包括***特征及***特征值,说明此当前结点是基于本地所存储的特征数据进行结点***形成,因而可以直接根据上述***特征及***特征值判定预测样本数据进行结点***后,当前结点的第一子结点和第二子结点上的预测样本数据,并将第一子结点和第二子结点的预测样本数据标识发送给各非结点***方,以供非结点***方将其对应的当前结点上的预测样本数据进行划分;然后将所述当前结点更新为所述第一子结点或第二子结点,然后继续判定待测试样本所属的下一子结点。
步骤3015、在所述当前结点为非叶子结点的情况下,若所述发起方或参与方为当前结点的非结点***方,当前结点的结点信息包括所述***特征来源于所述当前结点对应的结点***方,则接收作为所述当前结点对应的结点***方发送的第一子结点和第二子结点的预测样本标识,根据第一子结点和第二子结点上的预测样本数据标识对本方当前结点的预测样本数据进行划分;并将所述当前结点更新为所述第一子结点或第二子结点。
上述步骤3015中,在当前结点不是叶子结点的情况下,如果其结点信息仅包括***特征来源于结点***方,说明此当前结点是基于***特征来源对应的结点***方,即由结点***方所存储的特征数据进行结点***形成,具体可能是参与方或发起方处所存储的特征数据,因而需要由该结点***方根据其在当前结点对应的结点信息处记录的***特征及***特征值判定预测样本数据进行结点***后得到的第一子结点及第二子结点,并将第一子结点和第二子结点的预测样本数据标识发送给各非结点***方,并将当前结点更新为对应的第一子结点或第二子结点。因此,在发起方或参与方为当前结点的非结点***方,等待并直接接收当前结点对应的结点***方发送的第一子结点和第二子结点的预测样本标识,然后根据第一子结点和第二子结点上的预测样本数据标识对本方当前结点上的预测样本数据进行划分;然后将当前结点更新为本方当前结点的第一子结点或第二子结点,然后继续判定待测试样本所属的子结点。
步骤3016、在所述当前结点为叶子结点的情况下,计算落在所述叶子结点上的测试样本数据的深度,获得所述第一路径长度。
上述步骤3016中,在当前结点为叶子结点的情况下,即可以根据测试样本数据从孤立树的根结点到叶子结点的过程中所经历的边的数目,进而获得上述每个测试样本数据在该孤立树上的第一路径长度,单棵孤立树预测结束。
步骤3017、根据各个所述第一路径长度,确定所述第一平均路径长度。
上述步骤3017中,计算单个预测样本数据落在各棵孤立树的叶子结点上的第一路径长度的平均值,获得上述第一平均路径长度。
本申请实施例所提供的基于孤立森林的跨特征联邦异常数据检测方法,不需要将任一方的原始特征数据和标签数据直接或间接地传输给其他任何组织或机构,能够充分保护各方数据的隐私或满足相关监督要求;同时,因为在进行上述跨特征联邦的异常数据检测过程中,各参与方之间传输的内容均不会泄露原始特征数据或标签数据,从而也无须对原始特征数据或传输内容进行加密或解密,所有计算均在本方数据的明文空间进行,计算简单快速,且不需要将所有的特征数据进行集中化存储,且各参与方的计算均在本地进行,存储资源和计算资源的要求低于集中化的联合建模;另外,在联邦训练过程中,参与方的规模不受限制,任一参与方可选择加入或退出某棵孤立树的训练。
参照图2,示出了本申请中提供的一种联邦孤立森林模型的训练流程图。
如图2所示,在步骤211中,各参与方存储有训练样本的不同特征数据,由作为发起方的发起方发起联邦任务,并定义联邦建模参数,包括共训练N棵孤立树、每棵孤立树的抽样训练样本数量S、每棵孤立树叶子结点的最少训练样本数量为L等,同时发起方根据每棵孤立树的抽样训练样本数量S计算每棵孤立树的最大深度max_depth,将联邦建模参数以及每棵孤立树的最大深度max_depth发送给其他每个参与方;
在步骤212中,各参与方定义本地用于构建孤立森林的建模参数;
在步骤213中,各参与方根据本方的建模参数,共同进行联邦孤立森林模型训练,从而建立联邦孤立森林模型。
参照图3,示出了本申请中提供的一种单棵孤立树的训练流程图。
如图3所示,在步骤311中,先由发起方根据建模参数在本方样本中随机采样S个样本,并将S个训练样本的索引序号发送给其他每个参与方;
在步骤312中,其他参与方接收发起方发送来的训练样本的S个索引序号,根据S个索引序号对本方的数据进行采样,得到本方的S个训练样本;
在步骤313中,所有参与方根据本方的特征采样比例对本方特征进行随机采样,得到特征采样后的S个训练特征数据;
在步骤314中,所有参与方根据采样后本方的训练特征数据进行单棵联邦孤立树上的结点训练,当S个训练样本均落在孤立树的叶子结点上时,单棵孤立树训练结束。
本申请中单棵孤立树的结点***步骤如下:
步骤411、所有参与方中若当前结点所在层数为所在孤立树的最大深度max_depth或者落在该结点上的训练样本数目小于叶子结点的最少训练样本数量L,则判定当前结点为叶子结点,转到步骤416,否则转到步骤412;
步骤412、发起方在所有参与方集合中随机选取一方作为本次结点***方split_role,并将split_role发送给其他参与方;其他参与方接收发起方发送来的split_role;
步骤413、若参与方是split_role,在本方的采样特征中随机选取一列作为split_feature;并求得本方抽样的训练样本中split_feature列的最小值、最大值,并从最小值、最大值区间内随机选取一个数值作为split_value;
步骤414、若参与方是spilt_role,根据步骤413中随机选取的split_feature和split_value将该结点上的样本划分成左、右子结点上的样本,并统计落在左、右子结点上的样本数目;若左子结点和左子结点上的样本数目均大于叶子结点的最少训练样本数量L,该结点为非叶子结点,spilt_role将落在左、右子结点上的样本索引号发送给其他参与方,跳到步骤417;否则该结点为叶子结点,spilt_role将该判断结果发送给其他参与方,跳到步骤416;
步骤415、若参与方为非split_role,接收步骤414中split_role发送来的消息,若split_role发送来的是左、右子结点上的训练样本索引号,该结点为非叶子结点,则根据左、右子结点上的训练样本索引号将本方在该结点上的训练样本进行划分,然后转到步骤417;若split_role发送来的是该结点为叶子结点,转到步骤416;
步骤416、所有参与方更新本方孤立树模型中的结点信息,即在孤立树中新增一个叶子结点,结点信息记录的内容包括{‘is_leaf’:Ture,‘leaf_sample_number’:sample_number},其中‘is_leaf’和’leaf_sample_number’项记录为的该结点是否为叶子结点以及落在该结点上的训练样本数目;
步骤417、所有参与方更新本方孤立树模型的结点信息,即在本方的孤立树中新增一个非叶子结点,若参与方是split_role,结点信息记录的内容包括{‘is_leaf’:False,‘split_role’:split_role,‘split_feature’:split_feature,‘split_value’:split_value};若参与方不是split_role,结点信息记录的内容包括{‘is_leaf’:False,‘split_role’:split_role}。
具体地,请参照图4,示出了本申请中提供的一种单棵孤立树的结点***流程图。
如图4所示,在split_role根据当前结点的左子结点和左子结点上的样本数目均大于叶子结点的最少训练样本数量L,判定该当前结点为非叶子结点后,即可告知其他参与方更新孤立树模型,加入上述非叶子结点;然后spilt_role根据左、右子结点上的训练样本索引号将本方在该结点上的训练样本进行划分,同时将落在左、右子结点上的样本索引号发送给其他参与方;然后其他参与方根据从spilt_role接收的左、右子结点的上的训练样本索引号,将本方在该结点上的训练样本进行划分;最后所有参与方将当前结点更新为其左子结点或右子结点。
参照图5,示出了本申请中提供的一种利用孤立森林进行异常值检测的流程图。
如图5所示,在步骤511中,利用孤立森林的任意一棵孤立树孤立树-i,i∈[1~N],检测预测样本落在哪个叶子结点上;
在步骤512中,根据公式公式h(x)计算测试样本在单棵孤立树中的路径长度,其中,h(x)=e+C(T.size),e表示测试样本x从孤立树的根结点到叶子结点过程中所经历的边的数目,T.size为测试样本所在叶子结点上的样本数目,C(T.size)为一修正值,表示一棵用T.size条样本数据构建的孤立树的平均路径长度根据叶子结点上的训练样本数目和叶子结点的层数计算落在该叶子结点上的样本的深度h-i;
其中,n为样本总数目,E(h(x))表示样本x在孤立森林所有孤立树上的平均路径长度,c(n)为用n条数据构建孤立树的平均路径长度,ξ为欧拉常数。
参照图6,示出了本申请中提供的一种利用单棵孤立树计算测试样本的路径长度的流程图。
如图6所示,在步骤611中,每个参与方将本方所有预测样本放在本方孤立树的根结点上,将当前结点更新为根结点;
在步骤612中,根据当前结点的结点信息判定当前结点是否为叶子结点;若当前结点为非叶子结点,进入步骤613中,每个参与方读取当前结点的split_role,否则转到步骤619;
在步骤614中,若参与方是当前结点的split_role,读取当前结点的split_feature和split_value,然后进入步骤615中,根据split_feature和split_value将预测样本划分到左子结点或右子结点上,在步骤616中,将划分到的包括左子结点或右子结点的划分结果发送给其他参与方;
在步骤617中,若参与方不是当前结点的split_role,等待split_role发送来的预测结点的划分结果,并根据split_role发送来的结果将预测样本划分到左子结点或右子结点上;
在步骤618中,所有参与方根据划分结果将当前结点更新为左子结点或右子结点,然后返回步骤612中;
在步骤619中,若当前结点为叶子结点,计算落在该叶子结点上的预测样本的深度h,从而确定得到测试样本在单棵孤立树中的路径长度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
下面结合具体实施例对本申请作进一步说明。
实施例1、模型训练过程
假设机构A、B、C机构均有共同的样本100000个,其中A方拥有这100000个样本的2维特征,机构B拥有这100000个样本的其他5维特征,机构C拥有这100000个样本的另10维特征,三机构的特征数据分布如表1所示。
表1
现机构A希望联邦机构B、C两方的特征数据对上述100000个样本进行异常数据检测,故机构A向机构B、C发起联邦异常检测的请求,且机构B、C同意参与;则机构A为发起方,机构B、C为其中的两个参与方,联邦异常检测实施步骤如下所示:
(1)、机构A作为发起方先将联邦孤立森林模型的建模参数发送给参与方B、C,联邦训练参数如表2所示;
表2
(2)、机构A、B、C分别自行定义本方的特征采样比例参数,定义的特征采样比例参数如表3所示,即机构A、B的所有维特征均参与孤立森林模型的训练,C方的特征采样比例为0.5,即机构C每次只有5维特征进行单棵孤立树的训练;
表3
参与方 | 机构A | 机构B | 机构C |
特征采样比例 | 1.0 | 1.0 | 0.5 |
(3)、机构A、B、C开始联邦孤立森林模型训练,其中每棵孤立树的训练过程如下:
(3.1)、发起方A从样本中随机抽取256个样本作为训练样本,如抽样的样本序号如表4所示;并根据式计算单棵孤立树的最大深度max_depth,得到max_depth为8;将这256个样本的序号以及单棵孤立树的最大深度8发送给机构B、C;
表4
训练样本 | 训练样本_1 | 训练样本_2 | … | 训练样本_256 |
样本序号 | 1 | 78 | … | 98888 |
(3.2)、机构B、C根据机构A发送来的训练样本索引号,且机构B、C根据样本索引号得到本方的256个训练样本;
(3.3)、机构A、B、C根据本方的特征采样比例对本方特征进行随机抽样,如机构A、B、C参与孤立树的特征名称如表5所示;
表5
(3.4)、机构A、B、C根据本方的256个训练样本对单棵孤立树进行训练,直到孤立树树上的所有结点不再***为止,即256个训练样本均落在孤立树的叶子结点上时,单棵孤立树训练结束,得到单棵孤立树模型;
重复迭代上述步骤(3.1)~(3.4)100次后,可得到100棵联邦孤立树组成的联邦孤立森林模型模型,每棵孤立树树模型由随机抽样的256个样本训练得到,每个孤立树的最大深度为8。
其中单棵联邦孤立树的结点的***过程如下:
(3.4.1)、机构A、B、C初始化孤立树树的根结点,根结点上的训练样本为本方采样的256个样本;当前结点更新为孤立树树的根结点;
(3.4.2)、若当前结点所在层数为所在孤立树的最大深度8或者落在该结点上的训练样本数目小于叶子结点的最少训练样本数量1,该结点为叶子结点,转到步骤(3.4.7);否则转到步骤(3.4.3);
(3.4.3)、机构A从A、B、C中随机选取一方作为当前结点的split_role,并将split_role的名称发送给机构B、C;机构B、C接收机构A发送来的split_role的名称;
(3.4.4)、若参与机构是split_role,在本方的采样特征中随机选取split_feature和split_value;如split_role为机构B,则机构B从本方的采样特征中随机选择一目标特征作为split_feature,机构B在抽样的256个训练样本中统计目标特征列中的最大值和最小值构成的区间内随机选取一个值,作为split_value。示例地,机构B选择特征4作为split_feature,机构B在抽样的256个训练样本中统计特征4列中的最大值10.0和最小值1.0,在[1.0,10.0]之间随机选取一个值,如2.5作为split_value;
(3.4.5)、若参与机构是spilt_role,根据4)中随机选取的split_feature和split_value将落在当前结点上的训练样本划分成左、右子结点上的训练样本,并统计落在左、右子结点上的训练样本数目;若左子结点和右子结点上的样本数目均大于叶子结点的最少训练样本数量阈值1,该结点为非叶子结点,将落在左、右子结点上的样本索引号发送给其他参与方,跳到步骤(3.4.8);否则当前结点为叶子结点,将该判断结果发送给其他参与方,跳到步骤(3.4.7)。示例地,如落在当前结点上的训练样本数目为100,机构B为split_role,根据split_feature特征4以及split_value 2.5将当前结点训练样本划分成左、右子结点上的样本,统计左、右子结点上的样本数目分别为60,40,将这60和40个样本的索引序号发送给机构A、B,并跳到步骤(3.4.8)
(3.4.6)、若参与机构为非split_role,接收步骤(3.4.5)中split_role发送来的消息,若split_role发送来的是左、右子结点上的训练样本索引号,则该结点为非叶子结点,根据左、右子结点的上的训练样本索引号将本方该结点上的训练样本进行划分,转到步骤(3.4.8);若split_role发送来的是该结点为叶子结点,转到步骤(3.4.7)。示例地,如机构A、C接收步骤(3.4.5)中机构B发送来的左、右子结点上的60个和40个样本索引号,将本方结点上的训练样本划分成左、右子结点上的样本,跳到步骤(3.4.8);
(3.4.7)、机构A、B、C更新本方孤立树信息,即在该孤立树中新增一个结点,当前结点训练结束;结点信息记录的内容包括{‘is_leaf’:Ture,‘leaf_sample_number’:sample_number},其中‘is_leaf’和’leaf_sample_number’项记录为的该结点是否为叶子结点以及落在该结点上的训练样本数目;
(3.4.8)、机构A、B、C各自更新本方孤立树信息,即在本方的孤立树中新增一个结点,更新该结点信息。示例地,如机构B为split_role,机构B方在该棵孤立树模型中新增结点信息记录的内容包括{‘is_leaf’:False,‘split_role’:B,‘split_feature’:特征4,‘split_value’:2.5},机构A、C在其孤立树模型中新增结点信息记录的内容包括{‘is_leaf’:False,‘split_role’:B};
(3.4.9)、若当前结点为非叶子结点,机构A、B、C将当前结点更新为其对应的左子结点或右结点,然后返回步骤(3.4.2)。
训练结束后,机构A、B、C均得到联邦的孤立森林模型模型,由100棵联邦孤立树组成,每棵孤立树由多个结点构建而成,每个结点上记录的是该结点的***信息。其中,若为叶子结点,记录的是该结点上训练样本的数目;若为非叶子结点,需要记录该结点的split_role、split_feature、split_value,且根据该结点的split_role的不同,机构A、B、C保存的结点信息略有差别,即只在split_role方记录***特征和***特征值,有效地保护了机构A、B、C的特征分布和特征值。
实施例2、预测实施例
(1)、机构A、B、C同时参与,预测样本在测试孤立森林模型中每棵孤立树上划分的叶子结点上,根据叶子结点上的训练样本数目和叶子结点的层数计算落在该叶子结点上的样本的路径长度;
(2)、机构A、B、C根据式(1)计算每个预测样本在所有孤立树中的路径长度,然后计算其在所有孤立树的平均路径长度;
(3)、机构A、B、C根据每个预测样本的平均路径长度及单棵孤立树的训练样本数目,根据公式(b)计算每个预测样本的异常得分,最终机构A、B、C均得到此预测样本的异常得分;
其中,预测样本在单棵孤立树中的路径长度预测过程如下:
(2.1)、机构A、B、C将所有预测样本放在本方孤立树的根结点上,将当前结点更新为孤立树的根结点;
(2.2)、机构A、B、C根据结点信息判断当前结点是否为叶子结点;
(2.3)、若当前结点不是叶子结点,机构A、B、C读取当前结点的split_role;否则转到步骤(2.7);
(2.4)、机构A、B、C中的split_role读取当前结点的split_feature和split_value,根据split_feature和split_value将预测样本划分到左子结点或右子结点;并将划分结果发送给其他机构;
(2.5)、其他机构根据步骤(2.4)中split_role发送来的划分结果,将本方预测样本划分到左子结点或右子结点;
(2.6)、机构A、B、C将当前结点更新为左子结点或右子结点,然后返回步骤(2.2);
(2.7)、机构A、B、C根据本方模型中该棵孤立树模型中的当前结点的训练样本数量以及当前结点的深度计算落在该结点上的预测样本的路径长度。
本申请实施例还提供一种基于孤立森林的跨特征联邦异常数据检测装置,应用于联邦***,所述联邦***包括发起方和参与方,如图7所示,所述装置包括:
联邦训练模块71,用于控制所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,在联邦孤立森林模型每棵孤立树的每个结点训练过程中,所述发起方随机从所述发起方及各所述参与方选择一个作为当前结点的结点***方,并在所述结点***方完成对当前结点的***,并将结点***信息发送至非结点***方;
模型生成模块72,用于控制所述发起方和所述参与方中的非结点***方,在每个训练阶段中根据所述***信息进行结点***,最终得到跨特征的联邦孤立森林模型;
异常数据检测模块73,用于控制所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的各预测样本数据的异常得分,在所述异常得分大于预设分数阈值的情况下,确定所述异常得分对应的预测样本数据为异常数据,完成异常数据检测。
本申请还提供了一种异常数据的检测***,其中,所述检测***包括相互通信的发起方与至少一个参与方,所述发起方及所述至少一个参与方存储有训练样本的不同特征数据;
所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,并在联邦孤立森林模型的每棵孤立树的每个结点训练过程中,由所述发起方随机从所述发起方及各所述参与方选择一个作为当前结点的结点***方,并在所述结点***方完成对当前结点的***,并将结点***信息发送至非结点***方;
所述发起方和所述联邦参方中的非结点***方,在每个训练阶段中根据所述***信息进行结点***,最终得到跨特征的联邦孤立森林模型;
所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的各预测样本数据的异常得分,在所述异常得分大于预设分数阈值的情况下,确定所述异常得分对应的预测样本数据为异常数据,完成异常数据检测。
对于装置及***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种电子设备,包括处理器以及存储器,其中,所述处理器执行所述存储器所存放的计算机程序代码,该计算机程序代码被处理器执行时实现上述基于孤立森林的跨特征联邦异常数据检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种可读存储介质,该可读存储介质中存储有计算机程序代码,该计算机程序代码被处理器执行时实现上述基于孤立森林的跨特征联邦异常数据检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种基于孤立森林的跨特征联邦异常数据检测方法,其特征在于,应用于联邦***,所述联邦***包括发起方和参与方,所述方法包括:
所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,在联邦孤立森林模型每棵孤立树的每个结点训练过程中,所述发起方随机从所述发起方及各所述参与方选择一个作为当前结点的结点***方,并在所述结点***方完成对当前结点的***,并将结点***信息发送至非结点***方;
所述发起方和所述参与方中的非结点***方,在每个训练阶段中根据所述***信息进行结点***,最终得到跨特征的联邦孤立森林模型;
所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的各预测样本数据的异常得分,在所述异常得分大于预设分数阈值的情况下,确定所述异常得分对应的预测样本数据为异常数据,完成异常数据检测。
2.根据权利要求1所述的基于孤立森林的跨特征联邦异常数据检测方法,其特征在于,所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,包括:
所述发起方根据本地的训练样本数据进行多次随机抽样得到所述联邦孤立森林模型中每棵孤立树的本地训练样本,将每棵孤立树的所述本地训练样本的索引号发送给各参与方;
各所述参与方根据所述索引号和所述本地的训练样本数据得到每棵孤立树的本地训练样本;
对每棵孤立树,所述发起方和各所述参与方根据所述本地训练样本对其根结点数据进行初始化,并将当前结点更新为根结点,从当前结点开始该孤立树的联邦训练;
每棵孤立树训练完成后,所述发起方和参与方得到所述跨特征的联邦孤立森林模型。
3.根据权利要求2所述的基于孤立森林的跨特征联邦异常数据检测方法,其特征在于,所述跨特征的联邦孤立森林模型包含多棵跨特征的孤立树,每棵孤立树的联邦训练,包括:
所述发起方随机从所述发起方及各所述参与方中选择一方作为当前结点的结点***方,并将结点***方标识发送给各所述参与方;
所述发起方和所述参与方为当前结点的结点***方时,从本地的训练样本特征中随机选择一维作为当前结点的***特征,从本地训练样本的所述***特征中随机选择一个特征值作为***特征值,根据***特征和***特征值将当前结点的本地训练样本划分成第一子结点训练样本及第二子结点训练样本;将第一子结点训练样本对应的索引号及第二子结点训练样本对应的索引号分别发送给非结点***方;
所述发起方和所述参与方为当前结点的非结点***方时,接收结点***方发送的结点***结果,并根据所述结点***结果记录当前结点由对应的结点***方发起***,并根据***结果中第一子结点上的索引号及第二子结点上的索引号,将本地的训练样本分成第一子结点训练样本及第二子结点训练样本;
若当前结点为非叶子结点,所述发起方和所述参与方,分别将划分后的第一子结点训练样本及第二子结点训练样本分别作为新的训练样本,并将当前结点更新为第一子结点或第二子结点,并返回执行所述发起方随机从所述发起方及各所述参与方中选择一方作为当前结点的结点***方;
若当前结点为叶子结点,终止对当前结点的***。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述当前结点为叶子结点,所述发起方和所述参与方在所述当前结点的结点信息上记录所述当前结点上的训练样本数目。
5.根据权利要求3所述的方法,其特征在于,若当前结点为叶子结点,终止对当前结点的***,包括:
在所述当前结点所在深度大于或等于预设深度阈值的情况下,或者所述当前结点对应的第一子结点训练数据或第二子结点训练数据中的训练样本数目小于或等于预设训练样本数量阈值的情况下,终止对当前结点的***。
6.根据权利要求2所述的方法,其特征在于,所述发起方根据本地的训练样本数据进行多次随机抽样得到所述联邦孤立森林模型中每棵孤立树的本地训练样本集合,包括:
对于每棵孤立树,所述发起方根据第一特征采样比例,获取在所述发起方存储的第一特征数据,获得所述孤立树在发起方的本地训练样本。
7.根据权利要求6所述的方法,其特征在于,在所述发起方根据本地的训练样本数据进行多次随机抽样得到所述联邦孤立森林模型中每棵孤立树的本地训练样本之前,所述方法还包括:
所述发起方定义联邦建模参数,并将所述联邦建模参数发送给各所述参与方,所述联邦建模参数包括孤立树数量、每棵孤立树的训练样本数量、每棵孤立树叶子结点的预设训练样本数量阈值、每棵孤立树的预设深度阈值。
8.根据权利要求2所述的方法,其特征在于,各所述参与方根据所述索引号和所述本地的训练样本数据得到每棵孤立树的本地训练样本,包括:
对于每棵孤立树,各所述参与方根据所述索引号及对应的第二特征采样比例,获取在本地存储的第二特征数据,获得所述孤立树在参与方的本地训练样本。
9.根据权利要求1-8任一项所述的基于孤立森林的跨特征联邦异常数据检测方法,所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的预测样本数据的异常得分,包括:
所述发起方和参与方,根据所述联邦孤立森林模型对预测样本数据进行检测,确定所述预测样本数据最终落在的叶子结点,计算所述预测样本数据在所述联邦孤立森林模型中的第一平均路径长度及所述联邦孤立森林模型中各棵孤立树的第二平均路径长度;
根据所述第一平均路径长度及所述第二平均路径长度,计算所述待测试样本的异常得分;
其中,针对每个预测样本数据,所述第一平均路径长度为所述预测样本数据在孤立森林中各棵孤立树中的路径长度的平均值,所述第二平均径长度为联邦孤立森林模型中各棵孤立树的平均深度。
10.根据权利要求9所述的基于孤立森林的跨特征联邦异常数据检测方法,其特征在于,根据所述联邦孤立森林模型对预测样本数据进行检测,确定所述预测样本数据最终落在的叶子结点,计算所述预测样本数据在所述联邦孤立森林模型中的第一平均路径长度,包括:
对于每棵所述孤立树,所述发起方和参与方中将所述预测样本数据置于所述孤立树的根结点,并将当前结点更新为根结点;
所述发起方和参与方获取所述当前结点的结点信息;
所述发起方和参与方根据所述当前结点的结点信息,确定所述当前结点是否为叶子结点;
若所述当前结点为非叶子结点,且所述发起方或参与方为当前结点***方,所述当前结点的结点信息包括***特征及***特征值,则根据所述***特征及所述***特征值,将所述当前结点上的预测样本数据划分为其第一子结点和第二子结点上的预测样本数据,并将所述第一子结点和第二子结点的预测样本数据标识发送给各非结点***方,供非结点***方对所述当前结点上的预测样本数据进行划分;并将所述当前结点更新为所述第一子结点或第二子结点;
若所述当前结点为非叶子结点,且所述发起方或参与方为当前结点的非结点***方,则当前结点的结点信息包括所述***特征来源于所述当前结点对应的结点***方,则接收作为所述当前结点对应的结点***方发送的第一子结点和第二子结点的预测样本数据标识,根据第一子结点和第二子结点上的预测样本数据标识对本方当前结点的预测样本数据进行划分;并将所述当前结点更新为所述第一子结点或第二子结点;
若所述当前结点为叶子结点,计算落在所述叶子结点上的测试样本数据的深度,获得所述测试样本数据在对应孤立树上的第一路径长度;
根据所述测试样本数据在每棵孤立树上的所述第一路径长度,确定所述第一平均路径长度。
11.一种基于孤立森林的跨特征联邦异常数据检测装置,其特征在于,应用于联邦***,所述联邦***包括发起方和参与方,所述装置包括:
联邦训练模块,用于控制所述发起方和参与方利用本地的训练样本数据进行联邦训练,得到联邦孤立森林模型,在联邦孤立森林模型每棵孤立树的每个结点训练过程中,所述发起方随机从所述发起方及各所述参与方选择一个作为当前结点的结点***方,并在所述结点***方完成对当前结点的***,并将结点***信息发送至非结点***方;
模型生成模块,用于控制所述发起方和所述参与方中的非结点***方,在每个训练阶段中根据所述***信息进行结点***,最终得到跨特征的联邦孤立森林模型;
异常数据检测模块,用于控制所述发起方和参与方利用本地的预测样本数据和所述联邦孤立森林模型进行联邦预测,得到本地的各预测样本数据的异常得分,在所述异常得分大于预设分数阈值的情况下,确定所述异常得分对应的预测样本数据为异常数据,完成异常数据检测。
12.一种电子设备,包括处理器以及存储器,其特征在于,所述处理器执行所述存储器所存放的计算机程序代码,以实现如权利要求1~10任一所述的基于孤立森林的跨特征联邦异常数据检测方法。
13.一种可读存储介质,所述可读存储介质上存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~10任一所述的基于孤立森林的跨特征联邦异常数据检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110937849.1A CN113723477B (zh) | 2021-08-16 | 2021-08-16 | 一种基于孤立森林的跨特征联邦异常数据检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110937849.1A CN113723477B (zh) | 2021-08-16 | 2021-08-16 | 一种基于孤立森林的跨特征联邦异常数据检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113723477A true CN113723477A (zh) | 2021-11-30 |
CN113723477B CN113723477B (zh) | 2024-04-30 |
Family
ID=78676010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110937849.1A Active CN113723477B (zh) | 2021-08-16 | 2021-08-16 | 一种基于孤立森林的跨特征联邦异常数据检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113723477B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114548429A (zh) * | 2022-04-27 | 2022-05-27 | 蓝象智联(杭州)科技有限公司 | 一种安全高效的横向联邦神经网络模型训练方法 |
CN115907029A (zh) * | 2022-11-08 | 2023-04-04 | 北京交通大学 | 面向联邦学习投毒攻击的防御方法及*** |
CN117114677A (zh) * | 2023-07-12 | 2023-11-24 | 北京中盛九橙企业管理咨询有限公司 | 一种数字钱包管理***和方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109034398A (zh) * | 2018-08-10 | 2018-12-18 | 深圳前海微众银行股份有限公司 | 基于联邦训练的特征选择方法、装置及存储介质 |
CN109165683A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦训练的样本预测方法、装置及存储介质 |
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、***及可读存储介质 |
WO2019233189A1 (zh) * | 2018-06-04 | 2019-12-12 | 江南大学 | 一种传感网络异常数据检测方法 |
CN111368901A (zh) * | 2020-02-28 | 2020-07-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的多方联合建模方法、设备和介质 |
CN111598186A (zh) * | 2020-06-05 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于纵向联邦学习的决策模型训练方法、预测方法及装置 |
CN111666169A (zh) * | 2020-05-13 | 2020-09-15 | 云南电网有限责任公司信息中心 | 一种基于改进的孤立森林算法和高斯分布的联合数据异常检测方法 |
CN112052875A (zh) * | 2020-07-30 | 2020-12-08 | 华控清交信息科技(北京)有限公司 | 一种训练树模型的方法、装置和用于训练树模型的装置 |
CN112700031A (zh) * | 2020-12-12 | 2021-04-23 | 同济大学 | 一种保护多方数据隐私的XGBoost预测模型训练方法 |
WO2021114821A1 (zh) * | 2019-12-12 | 2021-06-17 | 支付宝(杭州)信息技术有限公司 | 基于联邦学习的孤立森林模型构建和预测方法和装置 |
CN112990330A (zh) * | 2021-03-26 | 2021-06-18 | 国网河北省电力有限公司营销服务中心 | 用户用能异常数据检测方法及设备 |
-
2021
- 2021-08-16 CN CN202110937849.1A patent/CN113723477B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019233189A1 (zh) * | 2018-06-04 | 2019-12-12 | 江南大学 | 一种传感网络异常数据检测方法 |
CN109034398A (zh) * | 2018-08-10 | 2018-12-18 | 深圳前海微众银行股份有限公司 | 基于联邦训练的特征选择方法、装置及存储介质 |
CN109165683A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦训练的样本预测方法、装置及存储介质 |
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、***及可读存储介质 |
WO2020029590A1 (zh) * | 2018-08-10 | 2020-02-13 | 深圳前海微众银行股份有限公司 | 基于联邦训练的样本预测方法、装置及存储介质 |
WO2021114821A1 (zh) * | 2019-12-12 | 2021-06-17 | 支付宝(杭州)信息技术有限公司 | 基于联邦学习的孤立森林模型构建和预测方法和装置 |
CN111368901A (zh) * | 2020-02-28 | 2020-07-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的多方联合建模方法、设备和介质 |
CN111666169A (zh) * | 2020-05-13 | 2020-09-15 | 云南电网有限责任公司信息中心 | 一种基于改进的孤立森林算法和高斯分布的联合数据异常检测方法 |
CN111598186A (zh) * | 2020-06-05 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于纵向联邦学习的决策模型训练方法、预测方法及装置 |
CN112052875A (zh) * | 2020-07-30 | 2020-12-08 | 华控清交信息科技(北京)有限公司 | 一种训练树模型的方法、装置和用于训练树模型的装置 |
CN112700031A (zh) * | 2020-12-12 | 2021-04-23 | 同济大学 | 一种保护多方数据隐私的XGBoost预测模型训练方法 |
CN112990330A (zh) * | 2021-03-26 | 2021-06-18 | 国网河北省电力有限公司营销服务中心 | 用户用能异常数据检测方法及设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114548429A (zh) * | 2022-04-27 | 2022-05-27 | 蓝象智联(杭州)科技有限公司 | 一种安全高效的横向联邦神经网络模型训练方法 |
CN114548429B (zh) * | 2022-04-27 | 2022-08-12 | 蓝象智联(杭州)科技有限公司 | 一种安全高效的横向联邦神经网络模型训练方法 |
CN115907029A (zh) * | 2022-11-08 | 2023-04-04 | 北京交通大学 | 面向联邦学习投毒攻击的防御方法及*** |
CN115907029B (zh) * | 2022-11-08 | 2023-07-21 | 北京交通大学 | 面向联邦学习投毒攻击的防御方法及*** |
CN117114677A (zh) * | 2023-07-12 | 2023-11-24 | 北京中盛九橙企业管理咨询有限公司 | 一种数字钱包管理***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113723477B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113723477A (zh) | 一种基于孤立森林的跨特征联邦异常数据检测方法 | |
CN110991552B (zh) | 基于联邦学习的孤立森林模型构建和预测方法和装置 | |
CN103823888B (zh) | 一种基于节点亲密度的社交网站好友推荐方法 | |
Adamic et al. | How to search a social network | |
CN111222029B (zh) | 一种网络舆情信息传播中关键节点选择方法 | |
US20060003823A1 (en) | Dynamic player groups for interest management in multi-character virtual environments | |
CN111177473B (zh) | 人员关系分析方法、装置和可读存储介质 | |
CN112700031B (zh) | 一种保护多方数据隐私的XGBoost预测模型训练方法 | |
CN106599725B (zh) | 图数据发布的随机化隐私保护方法 | |
Bhowmick et al. | Temporal sequence of retweets help to detect influential nodes in social networks | |
CN105100165B (zh) | 网络服务推荐方法和装置 | |
KR20170050617A (ko) | 크라우드 소싱 기반 지식 검증 시스템 | |
CN111325417A (zh) | 实现隐私保护的多方协同更新业务预测模型的方法及装置 | |
CN112101577B (zh) | 基于XGBoost的跨样本联邦学习、测试方法、***、设备和介质 | |
CN110247805B (zh) | 一种基于k壳分解的识别传播关键节点的方法及装置 | |
US8738564B2 (en) | Method for pollen-based geolocation | |
US9235616B2 (en) | Systems and methods for partial workflow matching | |
CN111966921A (zh) | 一种基于用户场景的社群识别方法及*** | |
CN113420261B (zh) | 基于归因分析的课程推荐方法、装置、设备及介质 | |
CN115687526A (zh) | 一种基于区块链和联邦学习的地震数据模型共享方法 | |
CN112861064B (zh) | 一种社会信用评价源数据处理方法、***、终端及介质 | |
CN114417394A (zh) | 基于区块链的数据存证方法、装置、设备及可读存储介质 | |
CN113392101B (zh) | 构建横向联邦树的方法、主服务器、业务平台和*** | |
CN113127696A (zh) | 一种提高基于行为的影响力度量准确性方法 | |
JP2022086931A5 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |