CN113723477B - 一种基于孤立森林的跨特征联邦异常数据检测方法 - Google Patents

一种基于孤立森林的跨特征联邦异常数据检测方法 Download PDF

Info

Publication number
CN113723477B
CN113723477B CN202110937849.1A CN202110937849A CN113723477B CN 113723477 B CN113723477 B CN 113723477B CN 202110937849 A CN202110937849 A CN 202110937849A CN 113723477 B CN113723477 B CN 113723477B
Authority
CN
China
Prior art keywords
node
splitting
federal
isolated
sub
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.)
Active
Application number
CN202110937849.1A
Other languages
English (en)
Other versions
CN113723477A (zh
Inventor
朱帆
孟丹
李宏宇
李晓林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tongdun Technology Co ltd
Tongdun Holdings Co Ltd
Original Assignee
Tongdun Technology Co ltd
Tongdun Holdings Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tongdun Technology Co ltd, Tongdun Holdings Co Ltd filed Critical Tongdun Technology Co ltd
Priority to CN202110937849.1A priority Critical patent/CN113723477B/zh
Publication of CN113723477A publication Critical patent/CN113723477A/zh
Application granted granted Critical
Publication of CN113723477B publication Critical patent/CN113723477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating 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;
在步骤513中,由测试样本在孤立森林中各棵孤立树的h(x)求平均值,计算得到上述第一平均路径长度E(h(x));再由公式 H(k)=ln(k)+ξ,计算待测试样本的异常得分;
其中,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任一所述的基于孤立森林的跨特征联邦异常数据检测方法的步骤。
CN202110937849.1A 2021-08-16 2021-08-16 一种基于孤立森林的跨特征联邦异常数据检测方法 Active CN113723477B (zh)

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 CN113723477A (zh) 2021-11-30
CN113723477B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114548429B (zh) * 2022-04-27 2022-08-12 蓝象智联(杭州)科技有限公司 一种安全高效的横向联邦神经网络模型训练方法
CN115907029B (zh) * 2022-11-08 2023-07-21 北京交通大学 面向联邦学习投毒攻击的防御方法及系统
CN117114677A (zh) * 2023-07-12 2023-11-24 北京中盛九橙企业管理咨询有限公司 一种数字钱包管理系统和方法

Citations (11)

* Cited by examiner, † Cited by third party
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 国网河北省电力有限公司营销服务中心 用户用能异常数据检测方法及设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
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 国网河北省电力有限公司营销服务中心 用户用能异常数据检测方法及设备

Also Published As

Publication number Publication date
CN113723477A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN113723477B (zh) 一种基于孤立森林的跨特征联邦异常数据检测方法
US10742574B2 (en) Method and device for implementing instant communication
US7537523B2 (en) Dynamic player groups for interest management in multi-character virtual environments
Squire " Should We Move to Stack Overflow?" Measuring the Utility of Social Media for Developer Support
Desmarais et al. The fates of challengers in US house elections: The role of extended party networks in supporting candidates and shaping electoral outcomes
CN111177473B (zh) 人员关系分析方法、装置和可读存储介质
CN108833484B (zh) Pos机制下记账节点选择方法
CN106055630A (zh) 日志存储的方法及装置
CN112597240B (zh) 一种基于联盟链的联邦学习的数据处理方法与系统
CN107169871B (zh) 一种基于关系组合优化和种子扩张的多关系社区发现方法
Pratesi et al. List-based web surveys: Quality, timeliness, and nonresponse in the steps of the participation flow
Carpenter et al. Do people who identify as popular become popular in a new network? A 9-month longitudinal network analysis
CN112861064B (zh) 一种社会信用评价源数据处理方法、系统、终端及介质
CN115938600A (zh) 一种基于关联分析的心理健康状态预测方法与系统
CN115687280A (zh) 一种基于云平台的社区信息共享系统及方法
CN110909072A (zh) 一种数据表建立方法、装置及设备
CN103701939B (zh) 数据交换方法
CN110895604B (zh) 一种虚拟身份信息的关联融合方法
CN114692888A (zh) 系统参数处理方法、装置、设备及存储介质
CN112732470A (zh) 电能量数据的联邦学习可靠性评估方法和装置
JP2022086931A5 (zh)
CN112862436A (zh) 在线面试方法、装置、设备和存储介质
CN112396150B (zh) 谣言事件的分析方法、装置、设备及计算机可读存储介质
CN113704635B (zh) 一种社交网络事件推荐方法及系统
Carlson Modeling-Related Processes With an Excess of Zeros

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