一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

异常数据检测方法、装置、计算机设备和存储介质与流程

2021-12-07 23:56:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种异常数据检测方法、装置、计算机设备和存储介质。


背景技术:

2.在数据分析挖掘中,异常检测(anomaly detection)是对数据集中与大多数数据有显著差异或不符合预期模式的异常数据点进行识别,这些数据点可以是各种条目,特征,事件等的观测值。近两年在异常检测应用中崭露头角的孤立森林算法在很多数据集上的总体表现领先,尤其在大数据和高维度的数据集上及计算性能上。但是和很多模型训练一样,孤立森林的训练是一次性完成的,然后把新来的样本丢入历史数据训练出的模型进行预测,直到模型预测性能衰退,纳入最新数据重新训练模型,如此迭代。
3.然而,模型上线后,更新的周期会比较长,这种模型上线后,一般是静态的(一段时间内不会改变),不会与线上的状况有任何互动,假设预测错了,只能在下一次更新的时候完成更正,容易导致异常数据检测准确率低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种异常数据检测方法、装置、计算机设备和存储介质,能够将加入的新数据灌入到已训练好的目标孤立树中,修正需要预测的新数据在过往所有数据中的位置或深度的度量,使得是否异常这件事的判断能够根据新的业务情况变化而变化,提高异常数据检测准确率,且逐个将每个新的数据的情况纳入模型中,升级模型,提高模型的准确度。
5.一种异常数据检测方法,该方法包括:
6.获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树;
7.获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树;
8.计算新的目标孤立树对应的目标孤立树平均深度;
9.计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度;
10.根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值;
11.根据异常分数值确定待测数据的异常情况。
12.在其中一个实施例中,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,将待测数据归入至目标节点位置,得到新的目标孤立树,包括:将待测数据输入至目标孤立树,通过目标孤立树对待测数据进行预测,得到待测数据在目标孤立树上的目标节点位置,对待测数据不继续分裂,直接将待测数据加入至目标节点位置,更新目标孤立树,得到新的目标孤立树。
13.在其中一个实施例中,计算新的目标孤立树对应的目标孤立树平均深度,包括:获
取未加入待测数据的目标孤立树对应的历史数据点的第一数目,第一数目是目标孤立树需要设置的数据子集的大小,获取待测数据的待测数据点的第二数目,基于预设函数,根据第一数目和第二数目计算得到新的目标孤立树的目标孤立树平均深度。
14.在其中一个实施例中,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,包括:获取未加入待测数据的目标节点位置在目标孤立树中的历史节点深度,获取待测数据对应的第二数目,基于预设函数,根据第二数目计算得到新加入待测数据后的目标节点位置在新的目标孤立树中的待调整节点深度,根据历史节点深度和待调整节点深度计算得到目标节点深度。
15.在其中一个实施例中,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值,包括:获取预设异常分数计算函数,通过预设异常分数计算函数,根据目标孤立树平均深度和目标节点深度计算得到待测数据对应的异常分数值。
16.在其中一个实施例中,根据异常分数值确定待测数据的异常情况,包括:获取预设异常分数阈值,在异常分数值大于预设异常分数阈值时,确定待测数据为异常数据,在异常分数值小于预设异常分数阈值时,确定待测数据为正常数据,在异常分数值等于预设异常分数阈值时,无法确定待测数据是否为正常数据。
17.在其中一个实施例中,异常数据检测方法还包括:根据目标孤立树平均深度和目标节点深度调整目标孤立树的模型参数,得到调整后的目标孤立树,获取下一待测数据,通过调整后的目标孤立树对下一待测数据进行分类,确定下一待测数据在调整后的目标孤立树上的位置。
18.一种异常数据检测装置,该装置包括:
19.第一获取模块,用于获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树;
20.第二获取模块,用于获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树;
21.第一计算模块,用于计算新的目标孤立树对应的目标孤立树平均深度;
22.第二计算模块,用于计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度;
23.异常分数值生成模块,用于根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值;
24.异常情况确定模块,用于根据异常分数值确定待测数据的异常情况。
25.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
26.获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树;
27.获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树;
28.计算新的目标孤立树对应的目标孤立树平均深度;
29.计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度;
30.根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值;
31.根据异常分数值确定待测数据的异常情况。
32.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
33.获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树;
34.获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树;
35.计算新的目标孤立树对应的目标孤立树平均深度;
36.计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度;
37.根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值;
38.根据异常分数值确定待测数据的异常情况。
39.上述异常数据检测方法、装置、计算机设备和存储介质,获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树,计算新的目标孤立树对应的目标孤立树平均深度,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值,根据异常分数值确定待测数据的异常情况。
40.因此,能够将加入的新数据灌入到已训练好的目标孤立树中,修正需要预测的新数据在过往所有数据中的位置或深度的度量,使得是否异常这件事的判断能够根据新的业务情况变化而变化,提高异常数据检测准确率,且逐个将每个新的数据的情况纳入模型中,升级模型,提高模型的准确度。
附图说明
41.图1为一个实施例中异常数据检测方法的应用环境图;
42.图2为一个实施例中异常数据检测方法的流程示意图;
43.图3为一个实施例中目标节点位置确定步骤的流程示意图;
44.图3a为一个实施例中未加入待测数据前的目标孤立树的结构示意图;
45.图4为一个实施例中目标孤立树平均深度计算步骤的流程示意图;
46.图5为一个实施例中目标节点深度计算步骤的流程示意图;
47.图6为一个实施例中异常分数值确定步骤的流程示意图;
48.图7为一个实施例中异常数据检测方法的流程示意图;
49.图8为一个实施例中异常数据检测装置的结构框图;
50.图9为一个实施例中计算机设备的内部结构图;
51.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
52.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不
用于限定本技术。
53.本技术提供的异常数据检测方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
54.具体地,终端102将待测数据发送至服务器104,服务器104接收到待测数据,获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树,计算新的目标孤立树对应的目标孤立树平均深度,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值,根据异常分数值确定待测数据的异常情况。最后,服务器104将待测数据的异常情况返回至终端102。
55.在另一个实施例中,终端102获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树,计算新的目标孤立树对应的目标孤立树平均深度,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值,根据异常分数值确定待测数据的异常情况。
56.在一个实施例中,如图2所示,提供了一种异常数据检测方法,以该方法应用于图1中的终端或服务器为例进行说明,包括以下步骤:
57.步骤202,获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树。
58.其中,孤立森林是一种用来找出数据中离群点(和大多数数据点显著不同的数据点)的模型,孤立森林包括多棵孤立树,即由多棵孤立树组成的一个森林,其中可以从孤立森林的多棵孤立树中确定一棵孤立树为目标孤立树,目标孤立树的确定具体可以根据实际业务需求、实际产品需求或实际应用场景确定得到。
59.这里的孤立森林是已经训练好的模型,可以通过大量业务相关的数据点完成建立、训练过程,将完成训练好的孤立森林进行存储。其中,孤立森林属于非参数的无监督学习方法,即不用定义数学模型也不需要有标记的训练。例如,假设用一个随机阈值来切割特征空间,切一次可以生成两个特征子空间。之后再继续用随机阈值来分别切割这两个特征子空间,循环下去,直到每个特征子空间里面只有一个数据点为止。直观上来讲,可以发现那些密度很高的数据集群是被切很多次才会停止切割,但是那些密度很低的孤立点很容易很早的就停到一个特征子空间了。
60.步骤204,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树。
61.其中,这里的待测数据是需要检测的数据或者是新加入的数据,新加入的数据可以是新业务相关的数据,也可以是原本业务相关的数据。由于已训练好的孤立森林上线后,一般处于静态的(即一段时间内是不会改变的),而线上的数据是实时变化的,可能会根据业务的实际情况进行变化,也有可能是全新的业务数据,因此,将待测数据丢进目标孤立树
中,目标孤立树可以对待测数据进行划分,可以确定待测数据在目标孤立树中的节点位置,即目标节点位置。此时,确定待测数据对应的目标节点位置后,不再继续分裂,直接将待测数据归入至目标节点位置,更新目标孤立树,得到新的目标孤立树。其中,目标节点位置是待测数据注入到目标孤立树中,最终停止的节点。
62.其中,由于待测数据是实时变化的,可能是全新的业务数据,而孤立森林更新周期比较长,并没有实时更新,因此,可能会将待测数据归入至异常点所在的节点中,即目标孤立树会认为待测数据是异常数据。但实际情况是,随着时间的推移,业务的扩展,待测数据在新的场景中并不是异常数据,因此,已训练好的孤立森林就会出现检测错误。
63.步骤206,计算新的目标孤立树对应的目标孤立树平均深度。
64.其中,为了避免已训练好的孤立森林对新的待测数据进行检测失败,可以动态调整目标节点位置的深度计算方法,使得待测数据是否是异常这件事可以根据新的情况变化而变化。具体可以是,计算新的目标孤立树对应的目标孤立树的目标孤立树平均深度,这里的目标孤立树平均深度是指目标孤立树的整棵树的平均深度。其中,目标孤立树平均深度可以根据目标孤立树之前的历史数据点和待测数据进行预定的函数计算得到的。
65.步骤208,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度。
66.其中,可以通过调整新加入待测数据后的目标节点位置在新的目标孤立树中的目标节点深度来重新确定待测数据是否异常。目标节点深度可以是目标节点位置离目标孤立树中的根节点的距离,可通过目标节点位置在未加入待测数据时的历史节点深度和待测数据的大小计算得到目标节点深度。
67.步骤210,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值。
68.具体地,在得到目标孤立树平均深度,和目标节点深度后,通过预设异常分数函数,根据目标孤立树平均深度,和目标节点深度计算得到待测数据集的异常分数值。在另一个实施例中,需要计算待测数据在整个孤立森林中各个孤立树中的目标节点深度,根据各个孤立树中的目标节点深度求均值,得到整个森林的平均值,进而得到待测数据的异常分数值。
69.其中,这里的异常分数值是待测数据对应的分数值,由于在确定待测数据在目标孤立树上的目标节点位置后,不再继续分裂,而是直接将待测数据归入至目标节点位置上。
70.步骤212,根据异常分数值确定待测数据的异常情况。
71.具体地,可以将异常分数值和预设分数阈值来确定待测数据是否是异常的。即使孤立森林没有实时更新,可能会将新加入的待测数据归入至异常节点中,但是通过调整新加入的待测数据的节点的深度计算方法,使得新加入的待测数据是否是异常这件事重新进行判断,可以随着新的情况变化而变化。
72.上述异常数据检测方法中,获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树,计算新的目标孤立树对应的目标孤立树平均深度,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,根据目标孤立树平均深度和目标节点深度确定待
测数据对应的异常分数值,根据异常分数值确定待测数据的异常情况。
73.因此,能够将加入的新数据灌入到已训练好的目标孤立树中,修正需要预测的新数据在过往所有数据中的位置或深度的度量,使得是否异常这件事的判断能够根据新的业务情况变化而变化,提高异常数据检测准确率,且逐个将每个新的数据的情况纳入模型中,升级模型,提高模型的准确度。
74.在一个实施例中,如图3所示,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,将待测数据归入至目标节点位置,得到新的目标孤立树,包括:
75.步骤302,将待测数据输入至目标孤立树,通过目标孤立树对待测数据进行预测,得到待测数据在目标孤立树上的目标节点位置。
76.步骤304,对待测数据不继续分裂,直接将待测数据加入至目标节点位置,更新目标孤立树,得到新的目标孤立树。
77.其中,由于已训练好的孤立森林上线后,一般处于静态的,而线上的数据是实时变化的,可能会根据业务的实际情况进行变化,也有可能是全新的业务数据,因此,可以将待测数据丢进目标孤立树中,目标孤立树可以对待测数据进行预测,可以确定待测数据在目标孤立树中最终停止的节点位置,即目标节点位置。此时,确定待测数据对应的目标节点位置后,不需要对待测数据继续分裂,直接可以将待测数据归入至目标节点位置,更新目标孤立树,得到新的目标孤立树。
78.例如,如图3a所示,图3a示出一个实施例中未加入待测数据前的目标孤立树的结构示意图,图3a中x
i
是唯一的年龄小于22岁的用户,这棵目标孤立树会将其认为是异常用户,如果此时业务发生变化,开始接收年龄小于22岁的用户,新的数据中出现大量的18

22岁之间的人,如果这棵目标孤立树不变,这些人都会被判定为异常。
79.在一个实施例中,如图4所示,计算新的目标孤立树对应的目标孤立树平均深度,包括:
80.步骤402,获取未加入待测数据的目标孤立树对应的历史数据点的第一数目,第一数目是目标孤立树需要设置的数据子集的大小。
81.步骤404,获取待测数据对应的第二数目。
82.步骤406,基于预设函数,根据第一数目和第二数目计算得到新的目标孤立树的目标孤立树平均深度。
83.具体的,在未加入待测数据之前,获取目标孤立树对应的历史数据点的第一数目,所谓第一数目是目标孤立树需要设置的一棵树需要的数据子集的大小。
84.其中,待测数据的数目就是第二数目,待测数据通常是一个接着一个的,因此,待测数据的第二数目通常是1。
85.具体地,可通过预设函数,根据第一数目和第二数据计算得到新的目标孤立树的目标孤立树平均深度。具体可以是,这里的预设函数有固定预设的公式/计算方法:预设函数c(n)是由n个数据点生成的树中搜索的平均路径长度,即c(n)=2h(n

1)

(2(n

1)/n),其中h(i)是调和级数,其近似求和公式如下,最后一项常数为欧拉常数:
86.h(i)≈ln(i) 0.5772156649
87.例如,如图3a所示,未加入待测数据的目标孤立树对应的历史数据点的第一数目为300,新加入的待测数据中待测数据的总数目为200,目标孤立树的整棵树的平均深度,即
目标孤立树平均深度c(300 200)=l n(500) 0.57=6.78。
88.在一个实施例中,如图5所示,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,包括:
89.步骤502,获取未加入待测数据的目标节点位置在目标孤立树中的历史节点深度。
90.步骤504,获取待测数据对应的第二数目。
91.步骤506,基于预设函数,根据第二数目计算得到新加入待测数据后的目标节点位置在新的目标孤立树中的待调整节点深度。
92.步骤508,根据历史节点深度和待调整节点深度计算得到目标节点深度。
93.其中,这里的历史节点深度是指目标节点位置在未加入待测数据之前,离目标孤立树的根节点的距离,获取未加入待测数据的目标节点位置离目标孤立树的根节点的距离,即历史节点深度。
94.其中,待测数据是至少一个待测数据组成的集合,获取待测数据的待测数据的第二数目,第二数目是待测数据中的待测数据点的总数目。其中,待测数据的数据通常是一个个来的:来一个预测一个,修正模型一下;再来一个再预测一个,再修正模型一下,所以第二数目一般就是1。
95.具体地,这里的预设函数有固定预设的公式/计算方法:预设函数c(n)是由n个数据点生成的树中搜索的平均路径长度,即c(n)=2h(n

1)

(2(n

1)/n),其中h(i)是调和级数,其近似求和公式如下,最后一项常数为欧拉常数:
96.h(i)≈ln(i) 0.5772156649
97.其中,根据第二数目计算得到新加入待测数据后的目标节点位置在新的目标孤立树中的待调整节点深度。最后,可以根据历史节点深度和待调整节点深度计算得到目标节点深度,目标节点深度可以是统计历史节点深度和待调整节点深度得到,即根据历史节点深度和待调整节点深度进行求和得到。
98.例如,如图3a所示,假设这棵树当时用了300个数据点训练,则这棵树的平均深度为c(300)=ln(300) 0.57=6.27,x
i
是唯一的年龄小于22的用户(异常),他/她在此棵树中的深度为1,即h(x
i
)=1,据异常分数s(x,n)定义,x
i
的异常分数为s=2^(

1/6.27)=0.89,远大于0.5,接近1,因此x
i
为异常。x
k
在此棵树中很深,假设深度为9,即h(x
k
)=9,据异常分数s(x,n)定义,x
k
的异常分数为s=2^(

9/6.27)=0.36,远小于0.5,接近0,因此x
k
为正常。
99.假设业务场景为申请个人贷款,以前原则上不接受小于22岁的用户,所以,上面x
i
为异常,但是如果业务发生变化,开始接受大学生申请个人贷款,新的数据中出现大量的18

22岁之间的人。如果模型不变,这些人都会被判定为异常。因此,需要本技术的新方法动态的修改树的深度。
100.假设又来了200个人全是18

22岁的,那么这些人全在x
i
的那个位置,不再做分裂,但是调整那个节点的深度计算方法。
101.新的树的平均深度为c(300 200)=6.78,则x
i
在新的树中的深度为1 t.size,(t.size为树的深度,即上文中树的平均深度的,也是上文中由n个数据点生成的树中搜索的平均路径长度c(n))
102.其中,根据原孤立森林计算节点深度的方法t.size=c(200)=5.87,则h(xi)=1 5.87=6.87。
103.据s(x,n)的定义,xi的异常分数为s=2^(

6.87/6.78)=0.49,小于0.5,因此x
i
在新场景为正常。
104.在一个实施例中,如图6所示,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值,包括:
105.步骤602,获取预设异常分数计算函数。
106.步骤604,通过预设异常分数计算函数,根据目标孤立树平均深度和目标节点深度计算得到待测数据对应的异常分数值。
107.其中,这里的预设异常分数计算函数是用来计算异常分数的,可以是以下公式:
[0108][0109]
其中,x是被预测的节点;
[0110]
n是孤立森林算法中需要设置的每训一棵树需要的数据子集的大小;
[0111]
h(x)是x在孤立森林中某棵树的深度,即在这棵树中从根节点到该点属于的分裂到最底的节点的边的总数;
[0112]
e(h(x))是x在孤立森林中所有树的深度平均值;
[0113]
c(n)是由n个数据点生成的树中搜索的平均路径长度。
[0114]
其中,单独一棵树的异常分数可以通过以下公式计算:
[0115][0116]
其中,h(x)是目标节点深度,c(n)是目标孤立树平均深度。
[0117]
在一个实施例中,根据异常分数值确定待测数据的异常情况,包括:获取预设异常分数阈值,在异常分数值大于预设异常分数阈值时,确定待测数据为异常数据,在异常分数值小于预设异常分数阈值时,确定待测数据为正常数据,在异常分数值等于预设异常分数阈值时,无法确定待测数据是否为正常数据。
[0118]
具体地,待测数据可以通过异常分数值确定为三种情况,异常数据、正常数据和无法判断,可以通过预设异常分数阈值来确定具体的情况。具体可以是,将异常分数值与预设异常分数阈值进行比较,如果异常分数值大于预设异常分数阈值时,说明待测数据离目标孤立树的根节点很近,确定为异常数据。如果异常分数值小于预设异常分数阈值时,说明待测数据离目标孤立树的根节点较远,确定待测数据为正常数据。在异常分数值等于预设异常分数阈值时,无法判断待测数据是否为正常数据。
[0119]
在一个实施例中,如图7所示,异常数据检测方法还包括:
[0120]
步骤702,根据目标孤立树平均深度和目标节点深度调整目标孤立树的模型参数,得到调整后的目标孤立树。
[0121]
步骤704,获取下一待测数据,通过调整后的目标孤立树对下一待测数据进行分类,确定下一待测数据在调整后的目标孤立树上的位置。
[0122]
其中,对新来的数据点,调整孤立森林模型中那些被影响到的树的节点的子女个数的计数,从而达到调整树深和该数据点深度的计算,最终达到对后面新来的数据点用最新调整后的深度进行异常度的衡量,这样就能尽量把最新的数据点给整体数据带来的影响纳入模型。具体地,可以根据目标孤立树平均深度和目标节点深度,调整目标孤立树的模型
参数,可以利用每一个数据点,在下一个新数据点来之前,模型已经根据上一个数据点调整过。因此,获取下一待测数据,调整后的目标孤立树就可以对下一待测数据进行分类,确定下一待测数据在调整后的目标孤立树上的位置,使得孤立森林模型可以及时反应最新数据的变化,提高异常数据的检测准确率。
[0123]
也就是说,依次计算新加入的每个待测数据在每棵孤立树中的深度,并计算这个待测数据在整个森林中的平均深度,因为不断有新的待测数据加入,每次都重新计算新的孤立树的平均搜索深度,并重新计算新的森林的平均深度;根据这个新加入的待测数据在新的森林中的平均深度和整个森林的平均深度确定待测数据队员的异常值分数。
[0124]
在一个具体的实施例中,提供了一种异常数据检测方法,具体包括以下步骤:
[0125]
1、获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树。
[0126]
2、获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树。
[0127]2‑
1、将待测数据输入至目标孤立树,通过目标孤立树对待测数据进行预测,得到待测数据在目标孤立树上的目标节点位置。
[0128]2‑
2、对待测数据不继续分裂,直接将待测数据加入至目标节点位置,更新目标孤立树,得到新的目标孤立树。
[0129]
3、计算新的目标孤立树对应的目标孤立树平均深度。
[0130]3‑
1、获取未加入待测数据的目标孤立树对应的历史数据点的第一数目,第一数目是目标孤立树需要设置的数据子集的大小。
[0131]3‑
2、获取待测数据的待测数据点的第二数目。
[0132]3‑
3、基于预设函数,根据第一数目和第二数目计算得到新的目标孤立树的目标孤立树平均深度。
[0133]
4、计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度。
[0134]4‑
1、获取未加入待测数据的目标节点位置在目标孤立树中的历史节点深度。
[0135]4‑
2、获取待测数据对应的第二数目。
[0136]4‑
3、基于预设函数,根据第二数目计算得到新加入待测数据后的目标节点位置在新的目标孤立树中的待调整节点深度。
[0137]4‑
4、根据历史节点深度和待调整节点深度计算得到目标节点深度。
[0138]
5、根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值。
[0139]5‑
1、获取预设异常分数计算函数。
[0140]5‑
2、通过预设异常分数计算函数,根据目标孤立树平均深度和目标节点深度计算得到待测数据对应的异常分数值。
[0141]
6、根据异常分数值确定待测数据的异常情况。
[0142]6‑
1、获取预设异常分数阈值。
[0143]6‑
2、在异常分数值大于预设异常分数阈值时,确定待测数据为异常数据。
[0144]6‑
3、在异常分数值小于预设异常分数阈值时,确定待测数据为正常数据。
[0145]6‑
4、在异常分数值等于预设异常分数阈值时,无法确定待测数据是否为正常数据。
[0146]
7、根据目标孤立树平均深度和目标节点深度调整目标孤立树的模型参数,得到调整后的目标孤立树。
[0147]
8、获取下一待测数据,通过调整后的目标孤立树对下一待测数据进行分类,确定下一待测数据在调整后的目标孤立树上的位置。
[0148]
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0149]
在一个实施例中,如图8所示,提供了一种异常数据检测装置800,包括:第一获取模块802、第二获取模块804、第一计算模块806、第二计算模块808、异常分数值生成模块810和异常情况确定模块812,其中:
[0150]
第一获取模块802,用于获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树。
[0151]
第二获取模块804,用于获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树。
[0152]
第一计算模块806,用于计算新的目标孤立树对应的目标孤立树平均深度。
[0153]
第二计算模块808,用于计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度。
[0154]
异常分数值生成模块810,用于根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值。
[0155]
异常情况确定模块812,用于根据异常分数值确定待测数据的异常情况。
[0156]
在一个实施例中,第二获取模块804将待测数据输入至目标孤立树,通过目标孤立树对待测数据进行预测,得到待测数据在目标孤立树上的目标节点位置,对待测数据不继续分裂,直接将待测数据加入至目标节点位置,更新目标孤立树,得到新的目标孤立树。
[0157]
在一个实施例中,第一计算模块806获取未加入待测数据的目标孤立树对应的历史数据点的第一数目,第一数目是目标孤立树需要设置的数据子集的大小,获取待测数据对应的第二数目,基于预设函数,根据第一数目和第二数目计算得到新的目标孤立树的目标孤立树平均深度。
[0158]
在一个实施例中,第二计算模块808获取未加入待测数据的目标节点位置在目标孤立树中的历史节点深度,获取待测数据对应的第二数目,基于预设函数,根据第二数目计算得到新加入待测数据后的目标节点位置在新的目标孤立树中的待调整节点深度,根据历史节点深度和待调整节点深度计算得到目标节点深度。
[0159]
在一个实施例中,异常分数值生成模块810获取预设异常分数计算函数,通过预设异常分数计算函数,根据目标孤立树平均深度和目标节点深度计算得到待测数据对应的异常分数值。
[0160]
在一个实施例中,异常情况确定模块812获取预设异常分数阈值,在异常分数值大
于预设异常分数阈值时,确定待测数据为异常数据,在异常分数值小于预设异常分数阈值时,确定待测数据为正常数据,在异常分数值等于预设异常分数阈值时,无法确定待测数据是否为正常数据。
[0161]
在一个实施例中,异常数据检测装置800根据目标孤立树平均深度和目标节点深度调整目标孤立树的模型参数,得到调整后的目标孤立树,获取下一待测数据,通过调整后的目标孤立树对下一待测数据进行分类,确定下一待测数据在调整后的目标孤立树上的位置。
[0162]
关于异常数据检测装置的具体限定可以参见上文中对于异常数据检测方法的限定,在此不再赘述。上述异常数据检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0163]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储已训练好的孤立森林。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异常数据检测方法。
[0164]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异常数据检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0165]
本领域技术人员可以理解,图9或图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0166]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树,计算新的目标孤立树对应的目标孤立树平均深度,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值,根据异常分数值确定待
测数据的异常情况。
[0167]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将待测数据输入至目标孤立树,通过目标孤立树对待测数据进行预测,得到待测数据在目标孤立树上的目标节点位置,对待测数据不继续分裂,直接将待测数据加入至目标节点位置,更新目标孤立树,得到新的目标孤立树。
[0168]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取未加入待测数据的目标孤立树对应的历史数据点的第一数目,第一数目是目标孤立树需要设置的数据子集的大小,获取待测数据对应的第二数目,基于预设函数,根据第一数目和第二数目计算得到新的目标孤立树的目标孤立树平均深度。
[0169]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取未加入待测数据的目标节点位置在目标孤立树中的历史节点深度,获取待测数据的待测数据点的第二数目,基于预设函数,根据第二数目计算得到新加入待测数据后的目标节点位置在新的目标孤立树中的待调整节点深度,根据历史节点深度和待调整节点深度计算得到目标节点深度。
[0170]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设异常分数计算函数,通过预设异常分数计算函数,根据目标孤立树平均深度和目标节点深度计算得到待测数据对应的异常分数值。
[0171]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设异常分数阈值,在异常分数值大于预设异常分数阈值时,确定待测数据为异常数据,在异常分数值小于预设异常分数阈值时,确定待测数据为正常数据,在异常分数值等于预设异常分数阈值时,无法确定待测数据是否为正常数据。
[0172]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据目标孤立树平均深度和目标节点深度调整目标孤立树的模型参数,得到调整后的目标孤立树,获取下一待测数据,通过调整后的目标孤立树对下一待测数据进行分类,确定下一待测数据在调整后的目标孤立树上的位置。
[0173]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取目标孤立树,目标孤立树是已训练好的孤立森林中的任意一棵,孤立森林包括多棵孤立树,获取待测数据,确定待测数据在目标孤立树上的目标节点位置,不再继续分裂,直接将待测数据归入至目标节点位置,得到新的目标孤立树,计算新的目标孤立树对应的目标孤立树平均深度,计算新加入待测数据后的目标节点位置在新的目标孤立树中目标节点深度,根据目标孤立树平均深度和目标节点深度确定待测数据对应的异常分数值,根据异常分数值确定待测数据的异常情况。
[0174]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将待测数据输入至目标孤立树,通过目标孤立树对待测数据进行预测,得到待测数据在目标孤立树上的目标节点位置,对待测数据不继续分裂,直接将待测数据加入至目标节点位置,更新目标孤立树,得到新的目标孤立树。
[0175]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取未加入待测数据的目标孤立树对应的历史数据点的第一数目,第一数目是目标孤立树需要设置的数据子集的大小,获取待测数据对应的第二数目,基于预设函数,根据第一数目和第二数目计算得
到新的目标孤立树的目标孤立树平均深度。
[0176]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取未加入待测数据的目标节点位置在目标孤立树中的历史节点深度,获取待测数据的待测数据点的第二数目,基于预设函数,根据第二数目计算得到新加入待测数据后的目标节点位置在新的目标孤立树中的待调整节点深度,根据历史节点深度和待调整节点深度计算得到目标节点深度。
[0177]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设异常分数计算函数,通过预设异常分数计算函数,根据目标孤立树平均深度和目标节点深度计算得到待测数据对应的异常分数值。
[0178]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设异常分数阈值,在异常分数值大于预设异常分数阈值时,确定待测数据为异常数据,在异常分数值小于预设异常分数阈值时,确定待测数据为正常数据,在异常分数值等于预设异常分数阈值时,无法确定待测数据是否为正常数据。
[0179]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据目标孤立树平均深度和目标节点深度调整目标孤立树的模型参数,得到调整后的目标孤立树,获取下一待测数据,通过调整后的目标孤立树对下一待测数据进行分类,确定下一待测数据在调整后的目标孤立树上的位置。
[0180]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0181]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0182]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献