本公开涉及神经网络技术领域,特别涉及一种异常对象识别方法、装置、介质及电子设备。
背景技术:
在将计算机相关技术应用到实际业务领域时,经常需要识别出不符合一定要求的实体,然后对识别出的这些实体按照一定策略进行处理。比如,在网络流量监控领域,为了对异常的不合法流量或者大流量进行监控,目前一般需要设置相应的规则进行限制。然而,这种利用固定规则来识别特定实体的方式存在识别准确率低和漏识别率高等缺陷。
技术实现要素:
在神经网络技术领域,为了解决上述技术问题,本公开的目的在于提供一种异常对象识别方法、装置、介质及电子设备。
根据本申请的一方面,提供了一种异常对象识别方法,所述方法包括:
获取多个对象数据和与每一所述对象数据对应的代表对象是否异常的标签,所述对象数据包括多个对象特征值;
将所述多个对象数据按照预定规则分为训练集和测试集,其中,所述训练集和所述测试集中分别包含多个对象数据;
将所述训练集中的多个对象数据和各对象数据对应的标签分别输入至多个待训练深度神经网络模型,对所述多个待训练深度神经网络模型进行训练,以得到多个深度神经网络模型,其中,每一所述待训练深度神经网络模型中各神经元之间的连接权重被随机初始化;
将所述测试集中对象数据分别输入至所述多个深度神经网络模型,以得到每一所述深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率;
根据各深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率,在所述多个深度神经网络模型中确定出目标深度神经网络模型;
将所述目标深度神经网络模型与极端梯度提升模型级联,得到级联模型,并利用所述训练集中的多个对象数据对所述级联模型进行训练,得到训练好的级联模型;
将待识别的对象数据输入至所述训练好的级联模型,以对待识别的对象数据对应的对象是否异常进行预测。
根据本申请的另一方面,提供了一种异常对象识别装置,所述装置包括:
获取模块,被配置为获取多个对象数据和与每一所述对象数据对应的代表对象是否异常的标签,所述对象数据包括多个对象特征值;
对象数据划分模块,被配置为将所述多个对象数据按照预定规则分为训练集和测试集,其中,所述训练集和所述测试集中分别包含多个对象数据;
训练模块,被配置为将所述训练集中的多个对象数据和各对象数据对应的标签分别输入至多个待训练深度神经网络模型,对所述多个待训练深度神经网络模型进行训练,以得到多个深度神经网络模型,其中,每一所述待训练深度神经网络模型中各神经元之间的连接权重被随机初始化;
输入模块,被配置为将所述测试集中对象数据分别输入至所述多个深度神经网络模型,以得到每一所述深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率;
确定模块,被配置为根据各深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率,在所述多个深度神经网络模型中确定出目标深度神经网络模型;
级联模块,被配置为将所述目标深度神经网络模型与极端梯度提升模型级联,得到级联模型,并利用所述训练集中的多个对象数据对所述级联模型进行训练,得到训练好的级联模型;
预测模块,被配置为将待识别的对象数据输入至所述训练好的级联模型,以对待识别的对象数据对应的对象是否异常进行预测。
根据本申请的另一方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。
根据本申请的另一方面,提供了一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明所提供的异常对象识别方法包括如下步骤:获取多个对象数据和与每一所述对象数据对应的代表对象是否异常的标签,所述对象数据包括多个对象特征值;将所述多个对象数据按照预定规则分为训练集和测试集,其中,所述训练集和所述测试集中分别包含多个对象数据;将所述训练集中的多个对象数据和各对象数据对应的标签分别输入至多个待训练深度神经网络模型,对所述多个待训练深度神经网络模型进行训练,以得到多个深度神经网络模型,其中,每一所述待训练深度神经网络模型中各神经元之间的连接权重被随机初始化;将所述测试集中对象数据分别输入至所述多个深度神经网络模型,以得到每一所述深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率;根据各深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率,在所述多个深度神经网络模型中确定出目标深度神经网络模型;将所述目标深度神经网络模型与极端梯度提升模型级联,得到级联模型,并利用所述训练集中的多个对象数据对所述级联模型进行训练,得到训练好的级联模型;将待识别的对象数据输入至所述训练好的级联模型,以对待识别的对象数据对应的对象是否异常进行预测。
此方法下,首先通过训练多个深度神经网络模型,然后在训练好的深度神经网络模型中挑选出最适合进行异常对象识别的目标深度神经网络模型,使得选出的目标深度神经网络模型性能是最优的,在此基础上,通过将目标深度神经网络模型和极端梯度提升模型级联,同时保留了两个模型在分类和预测方面的长处,提高了识别异常对象的准确率,降低了异常对象的漏识别率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种用于异常对象识别方法的模型结构示意图;
图2是根据一示例性实施例示出的一种异常对象识别方法的流程图;
图3是根据图2对应实施例示出的一实施例的步骤250的细节的流程图;
图4是根据图2对应实施例示出的另一实施例的步骤250的细节的流程图;
图5是根据一示例性实施例示出的一种异常对象识别装置的框图;
图6是根据一示例性实施例示出的一种实现上述异常对象识别方法的电子设备示例框图;
图7是根据一示例性实施例示出的一种实现上述异常对象识别方法的计算机可读存储介质。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
本公开首先提供了一种异常对象识别方法。对象可以是任何能够对其施加一定作用的有形或者无形的实体,可以是任何能够被计算设备处理的事物。而异常对象则是其特点或属性不满足一定要求的对象,有必要在所有对象中进行异常对象的监控和识别,并按照预定的方式或者规则进行相应的处理或者限制。本公开提供的异常对象识别方法可以应用于网络流量监控领域和保险领域。比如,在网络流量监控领域,对象是访问者的流量,异常对象则是异常的流量,比如非法用户的流量或者异常的大流量等,有必要对这些异常流量进行监控和限制以避免网络阻塞,从而保障网络平台的可用性。而在保险领域,对象是发起投保申请的客户,异常对象则是骗保风险较高不允许为其办理保险的客户或者保险生效可能性较大的客户,所以有必要对这种客户进行识别,从源头上避免为这些不适合投保的客户办理保险业务,从而降低因为这些客户的存在导致的保险公司利益受损的可能,可以提高保险公司的效益。
本公开的实施终端可以是任何具有运算和处理功能的设备,该设备可以与外部设备相连,用于接收或者发送数据,具体可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑、pda(personaldigitalassistant)等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等,还可以是多个设备的集合,比如云计算的物理基础设施。
优选地,本公开的实施终端可以为服务器或者云计算的物理基础设施。
图1是根据一示例性实施例示出的一种用于异常对象识别方法的模型结构示意图。如图1所示,该用于异常对象识别方法的模型结构包括深度神经网络模型110和极端梯度提升模型120。深度神经网络模型(deepneuralnetworkmodule,dnnmodule)是深度学习系列算法下的一种网络,是模仿大脑进行神经元传递来处理信息的一种模式,包括多层神经元,每一层多个神经元节点,深度神经网络模型至少可以包括输入层、隐藏层、输出层等多层神经元结构,还可以包括至少一层全连接层,其中,深度神经网络模型的隐藏层也可以为层叠的多层结构,深度神经网络中的深度是指输入至输出所流经的路径是足够长的。极端梯度提升模型即xgboost(extremegradientboosting)模型,是将多个弱分类器集合在一起组成的一个强分类器模型,是一种提升树模型,使用的树模型一般为cart(classificationandregressiontree,分类与回归树)回归树。参考图1所示,极端梯度提升模型120包括多个弱分类器——cart回归二叉树,xgboost通过不断进行特征分裂生长每一棵树,每一棵树代表了训练出的一个函数,每生长成的一棵树都能够拟合之前生成的树所预测的残差。
图2是根据一示例性实施例示出的一种异常对象识别方法的流程图。如图2所示,可以包括以下步骤:
步骤210,获取多个对象数据和与每一所述对象数据对应的代表对象是否异常的标签。
其中,所述对象数据包括多个对象特征值,所述对象数据与对象对应,每一对象特征值与一个对象特征对应。
对象数据即与对象有关的数据,可以是对象自身产生的数据,也可以是在对象活动时对对象的行为进行记录而得到的数据。比如,在网络流量监控领域,对象是访问者的流量,异常对象则是异常的流量,如非法访问者产生的流量或者异常大的流量,此时的对象数据即为访问者流量对应的ip地址、wifi名称等在对象活动时对对象的行为进行记录而得到的数据;而在保险领域,对象是发起投保申请的客户,异常对象则是骗保风险较高不允许为其办理保险的客户或者保险生效可能性较大的客户,此时对象数据即为客户的职业、年龄、养老金、公积金、个人资产等对象自身产生的数据。
与每一所述对象数据对应的代表对象是否异常的标签标识了与对应的对象数据对应的对象是否异常,该标签可以是人工的方式进行标注的,比如依赖于专家的经验进行标签的标注;该标签还可以是通过机器自动执行的标注,比如事先专家根据经验将各对象数据分好类,通过机器根据各对象数据所在的类别自动执行标签的标注。
与每一所述对象数据对应的代表对象是否异常的标签的具体形式可以是任意的,只要能被计算机设备识别。比如,代表对象异常的标签可以为“no”,而代表对象不异常的标签可以为“yes”,再比如,代表对象异常的标签可以为“ok”,而对应的代表对象不异常的标签可以为“”(空)或者代表对象异常的标签可以为“1”,而对应的代表对象不异常的标签可以为“0”。
在一个实施例中,对象数据和与每一所述对象数据对应的代表对象是否异常的标签同时存储在数据库中,通过查询该数据库,获取对象数据和与每一所述对象数据对应的代表对象是否异常的标签。
在一个实施例中,所述多个对象数据和与每一对象数据对应的数据标识对应存储在第一终端,与每一所述对象数据对应的代表对象是否异常的标签和与每一对象数据对应的数据标识对应存储在第二终端,先从所述第一终端获取多个对象数据和与每一对象数据对应的数据标识,然后利用与每一对象数据对应的数据标识从所述第二终端获取与各个数据标识对应的与每一所述对象数据对应的代表对象是否异常的标签,从而实现获取对象数据和与每一所述对象数据对应的代表对象是否异常的标签。
每一对象特征值代表了对象数据在一个维度上的对象特征的取值,对象特征亦可以称为对象属性,而对象特征值亦可以称为对象属性值。比如,在网络流量监控领域,若对象特征为ip地址,则与ip地址这一对象特征对应的对象特征值,即ip地址的取值可以为158.135.213.25;而在保险领域,若对象特征为月缴纳养老金数额,则月缴纳养老金数额这一对象特征的取值可以为1000。
步骤220,将所述多个对象数据按照预定规则分为训练集和测试集。
其中,所述训练集和所述测试集中分别包含多个对象数据,即,训练集和测试集均为对象数据的集合。
在一个实施例中,所述预定规则为使训练集中的对象数据的数目与测试集中对象数据的数目保持在预定比例。
本实施例的好处在于,使训练集和测试集之间数目的相对关系保持在相对稳定的范围内。
比如,该预定比例可以为7:3,即,每为训练集分配7个对象数据,则要对应地为测试集分配3个对象数据,如果所述多个对象数据中对象数据的数目为100,那么分得的训练集中对象数据的数目为70,而测试集中对象数据的数目为30。
在一个实施例中,所述多个对象数据中获取预定数目个对象数据组成训练集,并将剩余的对象数据组成测试集。
在一个实施例中,所述预定规则为使训练集中的对象数据的数目与测试集中对象数据的数目保持在预定比例并且使训练集和测试集中标签为代表对象异常的标签的对象数据的比例均相同。
本实施例的好处在于,避免了训练集和测试集的数据在数据划分时同样标签的对象数据的比例不同导致的引入了建模过程中的额外偏差的可能性,在一定程度上保证了建立的模型的精度。
本实施例的好处在于,通过限制组成训练集的对象数据的数目,保证了利用训练集进行模型训练时能够实现良好的训练效果。
步骤230,将所述训练集中的多个对象数据和各对象数据对应的标签分别输入至多个待训练深度神经网络模型,对所述多个待训练深度神经网络模型进行训练,以得到多个深度神经网络模型。
其中,每一所述待训练深度神经网络模型中各神经元之间的连接权重被随机初始化。
当将所述训练集中的多个对象数据和各对象数据对应的标签输入至待训练深度神经网络模型后,各对象数据对应的标签会被转换为数值型,对象数据中的对象特征值会先被转换为向量,分别通过深度神经网络模型中多层神经元的连接对该向量进行变换和映射,最终得到该深度神经网络模型输出的预测值,然后计算该预测值与对象的对象数据标签转换为的数值之间的差值,基于该差值利用随机梯度下降法(stochasticgradientdescent,sgd)和误差反向传播算法(backpropagationalgorithm,bp算法)调整深度神经网络模型中多层神经元的连接权重;迭代执行上述过程,直至迭代次数达到预定迭代次数阈值或者对模型的训练满足预定条件,此时得到的模型即为经过训练的深度神经网络模型。
在一个实施例中,在对待训练深度神经网络模型进行训练时,可以设置批大小(batchsize)、学习率(learningrate)等参数。
每一所述待训练深度神经网络模型中各神经元之间的连接权重被随机初始化是指,每一所述待训练深度神经网络模型中每一对神经元之间的连接权重在起始是随机进行设置的,同一待训练深度神经网络模型中各对神经元之间的连接权重很可能是不同的,而不同待训练深度神经网络模型中各对神经元之间的连接权重也很可能是不同的,这样就可以使训练出的各个深度神经网络模型中各对神经元之间的连接权重基本上都是不同的,保证了训练出的每一深度神经网络模型的特异性,即,使得训练出的每一深度神经网络模型都是独一无二的模型。
步骤240,将所述测试集中对象数据分别输入至所述多个深度神经网络模型,以得到每一所述深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率。
经过训练的深度神经网络模型便可以对各个对象数据进行预测,可以根据对象数据的输入而输出相应的预测结果,预测结果为对象数据的异常概率,即衡量了对象数据对应的对象为异常的可能性,即对象数据的异常概率越大,对象数据对应的对象越可能是异常对象。
易于理解,由于对象数据与对象是一一对应的,我们通过对象数据的异常来判断对象的异常,因此,对象的异常亦可以称为对象数据的异常。
测试集用于检验和评估训练好的每一深度神经网络模型的性能。易于理解,训练好的每一深度神经网络模型中神经元之间的权重是不同的,因此各深度神经网络模型是不同的模型。针对所述测试集中每一对象数据,各深度神经网络模型对该对象数据输出的异常概率可能都是不同的,有必要利用测试集对训练好的若干个不同的模型进行测试,从而实现对训练好的模型的评估。
步骤250,根据各深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率,在所述多个深度神经网络模型中确定出目标深度神经网络模型。
在本步骤中,通过基于每一深度神经网络模型对测试集中每一对象数据输出的异常概率,在训练好的多个深度神经网络模型中选出目标深度神经网络模型。
由于训练好的各深度神经网络模型中神经元之间的连接权重不同,所以各深度神经网络模型的性能往往不同,通过根据各深度神经网络模型对测试集中各对象数据输出的异常概率,可以实现对训练好的各深度神经网络模型的性能评估,从而能够选出最适合用来进行异常对象预测的深度神经网络模型。
在一个实施例中,步骤250的具体步骤可以如图3所示。图3是根据图2对应实施例示出的一实施例的步骤250的细节的流程图。如图3所示,包括以下步骤:
步骤251,获取所述测试集中对应的代表对象异常的标签的对象数据的数目与所述测试集中包含的所有对象数据的数目的比值,作为第一比值。
在一个实施例中,本公开的实施终端中内嵌有计数器,可以统计对象数据的数目。具体而言,本公开实施终端中的第一计数器会计算所述测试集中对应的代表对象异常的标签的对象数据的数目,首先将第一计数器和第二计数器置为0,对于所述测试集中每一对象数据,判断与该对象数据对应的标签是否代表对象异常,如果是,则将第一计数器加1,与此同时,对测试集中的对象数据每进行一次判断,第二计数器也会加1,直至所有对象数据均经过了判断。
步骤252,针对每一深度神经网络模型,对该深度神经网络模型输出的所述测试集中各对象数据的异常概率从大到小进行排序。
在一个实施例中,利用冒泡排序算法对各对象数据的异常概率进行排序。
在一个实施例中,利用快速排序算法对各对象数据的异常概率进行排序。
步骤253,针对每一深度神经网络模型,将与所述深度神经网络模型对应的各对象数据按照所述排序顺序分为预定数目组。
每一对象数据属于一组。分组的目的是使大部分组中包含的对象数据的数目均相同。
在一个实施例中,将所有对象数据平均分为预定数目组,其中,当所有对象数据的数目能够被所述预定数目整除时,每一组包含的对象数据的数目均相同,当所有对象数据的数目不能够被所述预定数目整除时,除最后一组外所有组包含的对象数据的数目均相同。
在一个实施例中,所述预定数目为第一预定数目,在对各对象数据进行分组时,为前第二预定数目组分配预设数量的对象数据,并将剩余的对象数据分配至未分配的组,其中,第一预定数目大于第二预定数目。
步骤254,针对每一深度神经网络模型,针对与该深度神经网络模型对应的每一组对象数据,获取该组对象数据中包含了代表对象异常的标签的对象数据的数目与该组对象数据中包含的所有对象数据的数目的比值,作为第二比值。
针对每一深度神经网络模型,都有与该深度神经网络模型对应的对象数据的分组和排序方式,所以与各深度神经网络模型对应的相同次序的对象数据分组的第二比值都可能是不同的。
步骤255,基于所述第一比值和针对每一深度神经网络模型获取的各个第二比值,在所述多个深度神经网络模型中确定出目标深度神经网络模型。
在一个实施例中,步骤255可以包括:
针对每一深度神经网络模型,获取和与该深度神经网络模型对应的排序在最前的一组对象数据对应的第二比值,作为目标第二比值;针对每一深度神经网络模型,确定针对该深度神经网络模型获取的目标第二比值与所述第一比值的比值,作为第三比值;将所述第三比值最大的深度神经网络模型作为目标深度神经网络模型。
每一深度神经网络模型都有对应的一套对象数据的分组和排序方式,因此,与每一深度神经网络模型对应的各组对象数据中都有排序在最前的一组对象数据,相应地,排序在最前的该组对象数据具有第二比值,此时即可将该第二比值作为对应的深度神经网络模型的目标第二比值。
由于与每一深度神经网络模型对应的各组对象数据是按照每一深度神经网络模型对各对象数据输出的异常概率从大到小进行排序的,这意味着,一个对象数据的排序越靠前,则该对象数据越可能被对应的深度神经网络模型识别为异常对象数据(判定该对象数据对应的对象为异常对象)的可能性越大,所以与一个深度神经网络模型对应的排序在最前的一组对象数据是该深度神经网络模型认为的在所有对象数据中对应的对象最可能是异常对象的数据,而第一比值反映了所有对象数据中对应的标签代表对象异常的对象数据的比例,即反映了所有对象数据中对应的对象为异常对象的比例,所以一个深度神经网络模型的目标第二比值与第一比值的比值,即第三比值越大,说明与通过随机的方式从所有对象数据中挑选出对应的对象为异常对象的对象数据相比,该深度神经网络模型识别异常对象数据方面表现得更好,识别异常对象数据的准确率更高。所以本实施例的好处在于,通过将第三比值最大的深度神经网络模型选为目标深度神经网络模型,使得选出的目标深度神经网络模型的性能是最优的,从而提高了最终建立的用于识别异常对象的模型的精度。
在一个实施例中,步骤255可以包括:
针对每一深度神经网络模型,获取和与该深度神经网络模型对应的排序在前第三预定数目组对象数据对应的第二比值的平均值,作为目标第二比值;针对每一深度神经网络模型,确定针对该深度神经网络模型获取的目标第二比值与所述第一比值的比值,作为第三比值;将所述第三比值最大的深度神经网络模型作为目标深度神经网络模型。
比如第三预定数目是3,则要针对每一深度神经网络模型获取前3组对象数据对应的第二比值的平均值。
由于排序在最前的组对应的第二比值并不一定能够完全客观地反映一个深度神经网络模型的性能,比如当一个深度神经网络模型对应的排序在最前的组的第二比值较小,但对应的排序在前的几个组整体的第二比值足够大时,也能说明该深度神经网络模型的性能是比较优异的,所以本实施例的好处在于,通过用平均值的方式确定每一深度神经网络模型对应的排序在前的几个组的第二比值的整体大小,进而利用该整体大小来进行目标深度神经网络模型的选择,提高了选择目标深度神经网络模型这一环节的公平性和可靠性。
在一个实施例中,步骤255可以包括:
针对每一深度神经网络模型,将该深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率与预设的异常概率阈值进行比较,以确定该深度神经网络模型对所述测试集中每一所述对象数据的预测结果是否为异常;基于所述测试集中各对象数据对应的代表对象是否异常的标签和各深度神经网络模型对所述测试集中各对象数据的预测结果,计算每一深度神经网络模型的查全率和查准率;根据每一深度神经网络模型的查全率、查准率、所述第一比值和针对每一深度神经网络模型获取的各个第二比值,在所述多个深度神经网络模型中确定出目标深度神经网络模型。
在一个实施例中,分别利用如下公式计算每一深度神经网络模型的查全率和查准率:
其中,p为查准率,r为查全率,tp为在所述测试集中,深度神经网络模型对对象数据的预测结果为异常,且与该对象数据对应的标签代表对象异常的对象数据的数目,fp为在所述测试集中,深度神经网络模型对对象数据的预测结果为正常,且与该对象数据对应的标签代表对象异常的对象数据的数目,fn为在所述测试集中,深度神经网络模型对对象数据的预测结果为异常,且与该对象数据对应的标签代表对象正常的对象数据的数目。
在一个实施例中,所述根据每一深度神经网络模型的查全率和查准率以及所述第一比值和针对每一深度神经网络模型获取的各个第二比值,在所述多个深度神经网络模型中确定出目标深度神经网络模型,包括:
利用每一深度神经网络模型的查全率和查准率计算每一深度神经网络模型的第一参数;利用所述第一比值和针对每一深度神经网络模型获取的各个第二比值,获取每一深度神经网络模型的第二参数;基于各深度神经网络模型的所述第一参数和所述第二参数,在所述多个深度神经网络模型中确定出目标深度神经网络模型。
本实施例的好处在于,通过综合深度神经网络模型对应的第二比值、查全率、查准率多个维度的指标来选择目标深度神经网络模型,能够使得选出的目标深度神经网络模型的性能更优异,更适合用于对异常对象进行识别。
在一个实施例中,所述利用每一深度神经网络模型的查全率和查准率计算每一深度神经网络模型的第一参数,包括:将每一深度神经网络模型的查全率和查准率的平均值作为每一深度神经网络模型的第一参数;所述利用所述第一比值和针对每一深度神经网络模型获取的各个第二比值,获取每一深度神经网络模型的第二参数,包括:分别获取每一深度神经网络模型对应的前预定数目组第二比值的加权和,并计算所述加权和与所述第一比值的比值作为每一深度神经网络模型的第二参数;所述基于各深度神经网络模型的所述第一参数和所述第二参数,在所述多个深度神经网络模型中确定出目标深度神经网络模型,包括:分别获取第一参数和第二参数的权重;针对每一深度神经网络模型,利用所述权重确定该深度神经网络模型的第一参数和第二参数的加权和;将所述加权和最大的深度神经网络模型作为目标深度神经网络模型。
步骤260,将所述目标深度神经网络模型与极端梯度提升模型级联,得到级联模型,并利用所述训练集中的多个对象数据对所述级联模型进行训练,得到训练好的级联模型。
将所述目标深度神经网络模型与极端梯度提升模型级联是指将所述目标深度神经网络模型的输出直接作为输入传递至极端梯度提升模型。
在一个实施例中,所述目标深度神经网络模型包括输出层和至少一层隐藏层,所述将所述目标深度神经网络模型与极端梯度提升模型级联,得到级联模型,并利用所述训练集中的多个对象数据对所述级联模型进行训练,得到训练好的级联模型,包括:
去除所述目标深度神经网络模型中的输出层,并将所述目标深度神经网络模型的最后一层隐藏层与极端梯度提升模型级联,以使所述目标深度神经网络模型的最后一层隐藏层输出的特征向量能够输入至极端梯度提升模型,得到级联模型;
利用所述训练集中的多个对象数据对所述级联模型进行训练,得到训练好的级联模型。
对级联模型的训练可以使用随机梯度下降法以及误差反向传播算法。
步骤270,将待识别的对象数据输入至所述训练好的级联模型,以对待识别的对象数据对应的对象是否异常进行预测。
如前所述,对象数据与对象是一一对应的,对对象数据是否异常进行预测即相当于对对象是否异常进行预测。
级联模型被训练好后,即可用于对对象数据进行预测,比如在保险领域,预测的是否不允许为对应的客户办理保险,而在网络流量监控领域,预测的是访问者的流量是否为异常流量。级联模型综合了深度神经网络模型和极端梯度提升(xgboost)模型的优点,与单独的深度神经网络模型相比,提高了可解释性,而与xgboost模型相比,在一定程度上提高了预测的精度。
综上所述,根据图2实施例示出的异常对象识别方法,通过将选出的精度较高的目标深度神经网络模型和极端梯度提升模型级联,同时保留了两种模型在分类和预测方面的优点,提高了识别异常对象的准确率,降低了异常对象的漏识别率。
图4是根据图2对应实施例示出的另一实施例的步骤250的细节的流程图。如图4所示,包括以下步骤:
步骤251',针对每一深度神经网络模型,将该深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率与预设的异常概率阈值进行比较,确定该深度神经网络模型对所述测试集中每一所述对象数据的预测结果是否为异常。
比如,若预设的异常概率阈值为0.7,而深度神经网络模型对一个对象数据对应输出的异常概率为0.75,0.75>0.7,此时即可确定该深度神经网络模型对该对象数据的预测结果为异常。
步骤252',基于所述测试集中各对象数据对应的代表对象是否异常的标签和各深度神经网络模型对所述测试集中各对象数据的预测结果,计算每一所述深度神经网络模型的查全率和查准率。
查全率和查准率的计算可以采用前述实施例提供的方式来进行,此处不再赘述。
步骤253',在查全率大于预设查全率阈值的深度神经网络模型中选择出查准率最大的深度神经网络模型,作为目标深度神经网络模型。
查全率反映了在所述测试集中,深度神经网络模型对对象数据的预测结果为异常的对象数据中真正异常的对象数据的占比,因此为了尽可能地识别出异常对象,需要使选择出的模型的查全率足够高,本实施例的好处在于,通过限制选择出的目标深度神经网络模型的查全率,并在此基础上选出查准率最大的模型,使得选出的目标深度神经网络模型更适合用于识别异常对象,并能保持足够高的精度。
本公开还提供了一种异常对象识别装置,以下是本公开的装置实施例。
图5是根据一示例性实施例示出的一种异常对象识别装置的框图。如图5所示,装置500包括:
获取模块510,被配置为获取多个对象数据和与每一所述对象数据对应的代表对象是否异常的标签,所述对象数据包括多个对象特征值;
对象数据划分模块520,被配置为将所述多个对象数据按照预定规则分为训练集和测试集,其中,所述训练集和所述测试集中分别包含多个对象数据;
训练模块530,被配置为将所述训练集中的多个对象数据和各对象数据对应的标签分别输入至多个待训练深度神经网络模型,对所述多个待训练深度神经网络模型进行训练,以得到多个深度神经网络模型,其中,每一所述待训练深度神经网络模型中各神经元之间的连接权重被随机初始化;
输入模块540,被配置为将所述测试集中对象数据分别输入至所述多个深度神经网络模型,以得到每一所述深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率;
确定模块550,被配置为根据各深度神经网络模型输出的所述测试集中每一所述对象数据的异常概率,在所述多个深度神经网络模型中确定出目标深度神经网络模型;
级联模块560,被配置为将所述目标深度神经网络模型与极端梯度提升模型级联,得到级联模型,并利用所述训练集中的多个对象数据对所述级联模型进行训练,得到训练好的级联模型;
预测模块570,被配置为将待识别的对象数据输入至所述训练好的级联模型,以对待识别的对象数据对应的对象是否异常进行预测。
据本公开的第三方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(rom)623。
存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。