CN103559420B - 一种异常检测训练集的构建方法及装置 - Google Patents

一种异常检测训练集的构建方法及装置 Download PDF

Info

Publication number
CN103559420B
CN103559420B CN201310589362.4A CN201310589362A CN103559420B CN 103559420 B CN103559420 B CN 103559420B CN 201310589362 A CN201310589362 A CN 201310589362A CN 103559420 B CN103559420 B CN 103559420B
Authority
CN
China
Prior art keywords
data
acquisition system
mark
data acquisition
labeled
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.)
Expired - Fee Related
Application number
CN201310589362.4A
Other languages
English (en)
Other versions
CN103559420A (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.)
Suzhou University
Original Assignee
Suzhou University
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 Suzhou University filed Critical Suzhou University
Priority to CN201310589362.4A priority Critical patent/CN103559420B/zh
Publication of CN103559420A publication Critical patent/CN103559420A/zh
Application granted granted Critical
Publication of CN103559420B publication Critical patent/CN103559420B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了一种异常检测训练集构建方法及装置,该方法将获取到的样本数据集合确定为当前数据集合,依据接收到的各个当前标注指令,在当前数据集合中获取已标注数据,将已标注数据加入第一数据集合,将未标注数据组成第二数据集合,判断异常点数据的个数是否达到预设数值,若是,依据已标记数据和未标记数据生成训练集,若否,依据第一数据集合计算未标注数据的异常点概率,依据异常点概率对所述未标注数据进行排序,并确定为当前数据集合,返回执行获取各个当前标注指令。与现有技术单次计算异常点概率相比,本方法利用已标注数据对未标注数据重新计算异常点概率,依据异常点概率排序后异常点排序前移,可减少标注次数,提高训练集构建效率。

Description

一种异常检测训练集的构建方法及装置
技术领域
本申请涉及异常检测技术领域,尤其是一种异常检测训练集的构建方法及装置。
背景技术
异常检测,是对某个事务活动中产生的大量数据进行检测以确定其中的异常数据,所述异常数据被称为异常点。异常点具有不符合正常数据的分布特征或表现模式,通过分析异常点可以获知事务活动的安全状态,例如:信贷事务中的异常点可能代表一项信贷欺诈,网络通信中的异常点可能代表黑客对电脑的攻击。异常检测的主要方式是,利用预先构建的训练集,使用异常检测算法对所述大量数据进行检测。因此,训练集是所述异常检测方式的基础。
发明人通过研究发现,现有的训练集构建方式为:获得多个样本数据,所述各个样本数据可能为异常点,也可能为正常点,利用现有检测算法如无监督异常点检测算法计算各个样本数据是异常点的概率,依据所述概率的大小,对所述各个样本数据进行排序后生成样本数据集合。依次获取所述样本数据集合中的样本数据,人工标注所述各个样本数据是正常点或异常点,当标注的样本数据中异常点达到预设的数量时,停止所述构建过程。
所述构建方式中单次计算样本数据的异常点概率,计算的异常点概率正确率较低,对样本数据进行标注的次数较多,导致训练集的构建效率较低。
发明内容
有鉴于此,本申请提供了一种异常检测训练集的构建方法及装置,以解决现有构建方式中单次计算样本数据的异常点概率,计算的异常点概率正确率较低,对样本数据进行标注的次数较多,导致训练集的构建效率较低的问题。本申请的技术方案如下:
一种异常检测训练集的构建方法,包括:
获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合;
获取各个当前标注指令;
依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据;
判断所述第一数据集合中异常点数据的个数是否达到预设数值;
若是,依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集;
若否,依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,返回执行所述获取各个当前标注指令。
优选的,所述依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合,包括:
解析获取到的所述各个当前标注指令,获得与所述各个当前标注指令相对应的标注;
依据标注指令与数据间的对应关系,为所述各个数据添加相对应的标注;其中,所述各个数据是在所述当前数据集合中获取的;
将所述各个添加标注的数据确定为已标注数据,并将所述已标注数据加入第一数据集合;其中,所述已标注数据包括正常点数据或异常点数据;
将所述当前数据集合中的未标注数据组成第二数据集合。
优选的,正常点的标注为1,异常点的标注为0,则:
所述依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,包括:
将所述样本数据集合表示为X={x1,x2,...xn},将第一数据集合表示为L={x1,x2,...xm},将第二数据集合表示为U={xm+1,xm+2,...xn};
依据所述第一数据集合中各个数据的标注生成标注集合F={u1,u2,...ui...um};其中,所述ui为1或0;
依据所述第一数据集合、所述第二数据集合及所述标注集合,利用公式获取n×k维的矩阵T={tih|1≤i≤n,1≤h≤k};
在所述矩阵中获取与所述集合U中各个数据xi相对应的簇值,生成簇值集合{ti1,ti2,....,tik};
依据与各个数据xi相对应的簇值集合,利用公式分别计算各个数据xi的异常点的概率;
其中:所述n为获取的样本数据集合中的数据个数,所述k为所述样本数据集合中正常点形成簇的预设个数,所述Cj为第j个簇的聚类中心,所述r1、r2为预设的权重值,所述d(Cj,xi)为样本xi的欧式距离。
优选的,当所述当前标注指令为多个时,则所述获取各个当前标注指令,包括:
在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合;
依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同;
将所述K个数据作为待标注数据;
依据所述待标注数据,获取当前标注指令。
一种异常检测训练集的构建装置,包括:
当前数据集合确定单元,用于获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合;
当前标注指令获取单元,用于获取各个当前标注指令;
数据集合区分单元,用于依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据;
判断单元,用于判断所述第一数据集合中异常点数据的个数是否达到预设数值,如果是,触发第一判断结果单元,否则,触发第二判断结果单元;
第一判断结果单元,用于依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集;
第二判断结果单元,用于依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,触发所述当前标注指令获取单元。
优选的,所述数据集合区分单元包括:
解析子单元,用于解析获取到的所述各个当前标注指令,获得与所述各个当前标注指令相对应的标注;
标注子单元,用于依据标注指令与数据间的对应关系,为所述各个数据添加相对应的标注;其中,所述各个数据是在所述当前数据集合中获取的;
加入子单元,用于将所述各个添加标注的数据确定为已标注数据,并将所述已标注数据加入第一数据集合;其中,所述已标注数据包括正常点数据或异常点数据;
组成子单元,用于将所述当前数据集合中的未标注数据组成第二数据集合。
优选的,所述第二判断结果单元包括:
计算单元,用于依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率;
排序单元,用于依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序;
确定单元,用于将排序后的第二数据集合确定为当前数据集合,触发所述当前标注指令获取单元执行所述获取各个当前标注指令。
优选的,正常点的标注为1,异常点的标注为0,则所述计算单元包括:
集合表示子单元,用于将所述样本数据集合表示为X={x1,x2,...xn},将第一数据集合表示为L={x1,x2,...xl},将第二数据集合表示为U={xl+1,xl+2,...xn};其中,所述n为获取的样本数据集合中的数据个数;
集合生成子单元,用于依据所述第一数据集合中各个数据的标注生成标注集合F={u1,u2,...ul};其中,所述ui为1或0;
矩阵获取子单元,用于依据所述第一数据集合、所述第二数据集合及所述标注集合,利用公式获取n×k维的矩阵T={tih|1≤i≤n,1≤h≤k};其中,所述k为所述样本数据集合中正常点形成簇的预设个数,所述Cj为第j个簇的聚类中心,所述r1、r2为预设的权重值,所述d(Cj,xi)Cj为样本xi的欧式距离;
簇值获取子单元,用于在所述矩阵中获取与所述集合U中各个数据xi相对应的簇值,生成簇值集合{ti1,ti2,....,tik};
概率计算子单元,用于依据与各个数据xi相对应的簇值集合,利用公式分别计算各个数据xi的异常点的概率。
优选的,当所述当前标注指令获取单元获取的所述当前标注指令为多个时,所述当前标注指令获取单元包括:
备选数据集合生成子单元,用于在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合;
多个数据获取子单元,用于依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同;
待标注数据生成子单元,用于将所述K个数据作为待标注数据;
当前标注指令获取子单元,用于依据所述待标注数据,获取当前标注指令。
由以上的技术方案可知,本申请提供了一种异常检测训练集构建方法及装置,所述方法包括:获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合;获取各个当前标注指令;依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据;判断所述第一数据集合中异常点数据的个数是否达到预设数值;若是,依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集;若否,依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,返回执行所述获取各个当前标注指令,直至所述第一数据集合中异常点数据的个数达到预设数值。与现有技术单次计算样本数据集合中数据的异常点概率相比,本申请提供的方法在依据获取到的标记指令对数据进行标记后,利用已标记的数据对未标记的数据重新计算异常点概率,未标注数据的异常点概率正确度提高,异常点在未标注数据集合(当前数据集合)中的排序前移,则可减少标注次数,提高了异常检测训练集的构建效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种异常检测训练集的构建方法实施例一的流程图;
图2为本申请提供的一种异常检测训练集的构建方法实施例二的部分流程图;
图3为本申请提供的一种异常检测训练集的构建方法实施例三的部分流程图;
图4为本申请提供的一种异常检测训练集的构建方法实施例四的部分流程图;
图5为本申请提供的一种异常检测训练集的构建装置实施例五的结构示意图;
图6为本申请提供的一种异常检测训练集的构建装置实施例六的部分结构示意图;
图7为本申请提供的一种异常检测训练集的构建装置实施例七的部分结构示意图;
图8为本申请提供的一种异常检测训练集的构建装置实施例八的部分结构示意图;
图9为本申请提供的一种异常检测训练集的构建装置实施例九的部分结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,其示出了本申请提供的一种异常检测训练集的构建方法实施例一的流程图,本实施例可以包括:
步骤101:获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合。
所述样本数据集合与现有技术中的样本数据集合具有相同的特征,即所述样本数据集合中包含有多个样本数据,所述各个样本数据可能为异常点,也可能为正常点,利用现有检测算法如无监督异常点检测算法计算各个样本数据是异常点的概率,所述各个样本数据依据所述概率的大小依次排列。例如:
x1=(1,1),x2=(2,1),x3=(1,2),x4=(2,2),x5=(0,5),x6=(-1,1),x7=(-1,3),x8=(-2,1),x9=(-2,2),x10=(-0.5,4);
P={0.4,0.45,0.4,0.45,0.85,0.4,0.81,0.35,0.45,0.71};
X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};
其中:所述x1-x10为10个样本数据,所述P集合中的各个数据是利用现有检测算法计算的所述10个样本数据的异常点概率,依据所述P集合中的异常点概率大小,将所述10个样本数据进行排序后形成所述样本数据集合。获取将所述已进行初次排序的样本数据集合X,并确定X为当前数据集合。
当然,所述算法不限定于无监督异常点检测算法,现有技术中能计算所述样本数据异常点概率的其他检测算法都属于本申请的保护范围。
步骤102:获取各个当前标注指令。
在构建训练集的过程中,需要人工对所述当前数据集合中的数据进行判断,以确定所述数据是异常点数据或正常点数据。所述当前数据集合中的数据已按概率大小依次排列,依据其概率的大小,概率较大的数据成为待标注数据,需要人工判断所述待标注数据的类型,即正常点数据或异常点数据。
需要说明的是,所述当前标注指令的个数与所述待标注数据的个数相对应,即人工可一次对一个待标注数据进行判断,也可对多个待标注数据进行判断。当所述待标注数据为一个时,获取的所述当前标注指令为一个;当所述待标注数据为多个时,获取的所述标注指令为多个。
步骤103:依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据。
预先设定标注指令与所述数据之间的对应关系,当步骤102中获取到当前标注指令,则依据所述当前标注指令在所述当前数据集合中获取与所述当前标注指令相对应的数据,将所述已标注数据加入第一数据集合。例如,步骤102中获取的当前标注指令为A1,所述A1与步骤101中的X集合中的x5即(0,5)相对应,获取所述x5,将所述x5加入第一数据集合L,则L为{(0,5)}。
需要说明的是,将所述已标注数据加入第一数据集合的过程为,可以是将所述已标注数据移动入所述第一数据集合,也可以是将所述已标注数据复制入所述第一数据集合且将所述已标注数据从所述当前数据集合中删除。
将所述当前数据集合中的未标注数据组成第二数据集合,例如,第二数据集合为U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}。所述当前数据集合在每次进行接收标注指令后,可被划分为所述第一数据集合L与所述第二数据集合U。其中,所述第一数据集合L中是所有已标注过的数据,所述第二数据集合U中是所有未标注的数据。
步骤104:判断所述第一数据集合中异常点数据的个数是否达到预设数值。
构建训练集前,依据所述样本数据集合中的数据特征会预设异常点数据的个数,所述预设值作为循环截止与否的判断条件。例如,所述步骤101中样本数据集合X的预设数值为3。
所述第一数据集合在每次循环过程中,会加入经过人工判断后的标注数据,所述标注数据被标注为了正常点数据或异常点数据,计算所述第一数据集合中被标注为异常点数据的个数。将所述个数与所述预设数值进行对比获得对比结果。
步骤105:若是,依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集。
若步骤104中的对比结果为是时,进行此步骤。例如,步骤103中的所述第一数据集合L中的数据为{(0,5),(-1,3),(-0.5,4),(2,1),(2,2)},其中:(0,5),(-0.5,4)(2,2)被标记为了异常点数据,异常点数据个数为3,所述预设数值为3,异常点数据的个数达到了预设数值,则依据所述集合L{(0,5),(-1,3),(-0.5,4),(2,1),(2,2)}及相应的第二数据集合U{(-2,2),(1,1),(1,2),(-1,1),(-2,1)},生成训练集。其中,所述训练集中的(0,5),(-0.5,4)(2,2)数据为异常点数据,剩余数据为正常点数据。
步骤106:若否,依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,返回执行所述获取各个当前标注指令。
若步骤104中的对比结果为否时,进行此步骤。例如,步骤103中的所述第一数据集合L中的数据为{(0,5),(-1,3),(-0.5,4)},其中:(-0.5,4)被标记为了异常点数据,异常点数据个数为1,所述预设数值为3,异常点数据的个数没有达到预设数值,则计算所述第二数据集合U={(2,1),(2,2)(-2,2),(1,1),(1,2),(-1,1),(-2,1)}中的未标注数据的异常点概率。
若经过计算后,所述第二数据集合U中的未标注数据的异常点概率为{0.3251,0.3251,0.3251,0.5004,0.6109,0.5004,0.3251},依据所述概率大小,对所述第二数据集合U中的未标注数据进行排序,排序后的U为{(1,2),(1,1),(-1,1),(2,1),(2,2)(-2,2),(-2,1)},将所述排序后的集合U作为当前数据集合,并返回执行步骤102。
由此可见,若在所述样本数据集合X{(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}中的异常点为(-0.5,4)、(1,2)(-2,1),在经过此次概率计算并重新排序后,所述异常点(1,2)由原来的第8位上升为当前数据集合中的第1位,则标注出所述异常点(1,2)的人工判断标记次数将会减少,从而减少人工判断标记的成本,进而提高了训练集的构建效率。
由以上的技术方案可知,本实施例提供了一种异常检测训练集的构建方法,所述方法包括;获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合;获取各个当前标注指令;依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据;判断所述第一数据集合中异常点数据的个数是否达到预设数值;若是,依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集;若否,依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,返回执行所述获取各个当前标注指令。
与现有技术相比,本实施例提供的方法通过在依据接收到的标记指令对数据进行标记后,利用已标记的数据对未标记的数据重新计算异常点概率,未标注数据的异常点概率正确度提高,异常点在未标注数据集合(当前数据集合)中的排序前移,则可减少标注次数,提高了异常检测训练集的构建效率。
请参阅图2,其示出了本申请提供的一种异常检测训练集的构建方法实施例二的部分流程图,实施例一中的步骤103可以包括:
步骤201:解析获取到的所述各个当前标注指令,获得与所述各个当前标注指令相对应的标注。
预先设定所述标注指令与标注的对应关系,实施例一中的步骤102获取到各个当前标注指令,解析所述各个当前标注指令,可获得与所述标注指令相对应的标注。例如,预先设定标注指令为0时,标注为异常点;标注指令为1时,标注为正常点。接收到的标注指令为A1,解析所述标注指令A1为0,则所述标注指令A1的标注为异常点。
步骤202:依据标注指令与数据间的对应关系,为所述各个数据添加相对应的标注;其中,所述各个数据是在所述当前数据集合中获取的。
预先设定标注指令与数据间的对应关系,依据所述对应关系,当实施例一中的步骤102获取到各个当前标注指令后,获取与所述各个当前标注指令相对应的各个数据,为所述各个数据添加相对应的标注。
例如,预先设定标注指令A1与所述当前数据集合U中的第一个数据即(1,2)相对应,且所述标注指令A1的标注为异常点,则为所述数据(1,2)添加异常点的标注,所述标注形式可以以数字形式,如0。当然,所述添加的标注形式包括但不限定于数字形式,字母、字符等能进行标记的形式都属于本申请的保护范围。
步骤203:将所述各个添加标注的数据确定为已标注数据,并将所述已标注数据加入第一数据集合;其中,所述已标注数据包括正常点数据或异常点数据。
步骤202中各个添加标注的数据为已标注数据,将所述各个已标注数据加入第一数据集合中。需要说明的是,将所述已标注数据加入第一数据集合的过程为,可以是将所述已标注数据移动入所述第一数据集合,也可以是将所述已标注数据复制入所述第一数据集合且将所述已标注数据从所述当前数据集合中删除。
步骤204:将所述当前数据集合中的未标注数据组成第二数据集合。
将步骤203后的所述当前数据集合中剩余的数据即未标注数据组成第二数据集合。
请参阅图3,其示出了本申请提供的一种异常检测训练集的构建方法实施例三的部分流程图,实施例一步骤106中的所述依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率可以包括:
步骤301:将所述样本数据集合表示为X={x1,x2,...xn},将第一数据集合表示为L={x1,x2,...xm},将第二数据集合表示为U={xm+1,xm+2,...xn};其中:所述n为获取的样本数据集合中的数据个数。
例如,样本数据集合为X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};第一数据集合为L={(0,5)};第二数据集合为U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}。
步骤302:依据所述第一数据集合中各个数据的标注生成标注集合F={u1,u2,...ui...um};其中,所述ui为1或0。
所述步骤301中的第一数据集合中的数据为标注数据,所述标注数据有相对应的标注,获取所述第一数据集合中各个数据相对应的标注,将所述各个标注生成标注集合F={u1,u2,...ui...um}。若所述各个标注的形式为数字形式,且所述正常点的标注为1,所述异常点的标注为0,则所述标注集合F为1和/或0的集合,即所述ui为1或0。
例如,所述第一数据集合L={(0,5)}中数据(0,5)的标注为1,则所述标注集合F={1}。
步骤303:依据所述第一数据集合、所述第二数据集合及所述标注集合,利用公式获取n×k维的矩阵T={tih|1≤i≤n,1≤h≤k};其中,所述n为获取的样本数据集合中的数据个数,所述所述k为所述样本数据集合中正常点形成簇的预设个数,所述Cj为第j个簇的聚类中心,所述r1、r2为预设的权重值,所述d(Cj,xi)为样本xi的欧式距离。
所述样本数据集合中包含的各个数据中可能有正常点数据,也可能有异常点数据,所述各个正常点数据可以形成簇,形成的簇的个数是预先设定的,而异常点不属于任何簇。所述T中每一行数据代表所述样本数据集合X中的一个数据属于各个簇的情况,每一行中的各个数值tih表示所述数据分别以何种程度值属于所述各个簇,所述程度值被称为簇值。需要说明的是,所述矩阵T中的行数据与样本数据集合X中的数据存在对应关系,即所述行数据是由所述数据计算获得的。
其中:所述公式Q中的第一项用于找到所述每个数据分别属于哪个簇,若不属于任何簇,则第二项用于避免所述第一项将所有或大部分数据的异常点概率计算过大,即避免将所有或大部分数据识别为异常点数据;第三项用于使已标注数据异常点概率的计算结果与该已标注数据的标注相一致。
另外,所述r1的选择过程基于自适应算法的思想,即预设一组数值如{20,30,40,50,60,70},将所述各个数值依次代入所述公式Q中,获得所述各个数据的异常点概率,其中包括所述已标注数据的异常点概率,依据所述已标注数据的标注(人工判断的结果)及公式Q的计算结果,判断各个r1数值下公式Q计算结果的精准度,将精准度最高的数值确定为r1的值。所述r2的取值是较大的整数值,例如,100000,1000000等。
以下试举一例,对依据所述公式Q计算矩阵T的过程进行说明。
例如,所述样本数据集合为X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};所述样本数据集合中的正常点数据可形成的簇的预设个数为2;所述第一数据集合L={(0,5)};相对应,所述标注集合F={1};所述第二数据集合U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};n值为10;簇的预设个数为2,即簇1及簇2;预设的r1值为60,预设的r2值为100000,依据所述公式Q,计算得出n×k维即10×2维的矩阵T。所述矩阵T为:
0.8 0.2 0.9 0.1 0.7 0.3 0.9 0.1 0 0 0.2 0.8 0.35 0.65 0.1 0.9 0.1 0.9 0.4 0.6
其中:第一行(0.8,0.2)说明(0,5)数据以0.8的程度属于簇1,以0.2的程度属于簇2。
步骤304:在所述矩阵中获取与所述集合U中各个数据xi相对应的簇值,生成簇值集合{ti1,ti2,....,tik}。
在所述步骤303中获得的矩阵T中分别获取与所述集合U中的各个数据相对应的簇值,生成簇值集合。例如,集合U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}中的数据(-1,3)所对应的簇值集合为{0.35,0.65}。
步骤305:依据与各个数据xi相对应的簇值集合,利用公式分别计算各个数据xi的异常点的概率;
集合U中各个数据xi存在相对应的簇值集合,例如:数据(-1,3)所对应的簇值集合为{0.35,0.65},利用公式计算得出数据(-1,3)的异常点概率为0.6474。
由以上的技术方案可知,本实施例提供的一种异常检测训练集的构建方法,通过步骤301至步骤305的方法计算获得所述第二数据集合中各个未标注数据的异常点概率,计算过程中使用了由已标注数据组成的第一数据集合,计算的异常点概率正确度提高,则所述第二数据集合中的异常点的异常点概率的正确度也随之提高,在依据所述异常点概率对所述第二数据集合进行排序后,所述第二数据集合中的异常点排序会前移。因此,在训练集的构建过程中,人工判断标注的次数也随之减少,从而提高了训练集的构建效率。
请参阅图4,其示出了本申请提供的一种异常检测训练集的构建方法实施例四的部分流程示意图,当所述当前标注指令为多个时,在实施例一中的步骤102可以包括:
步骤401:在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合。
针对当前数据集合中各个数据的异常点概率,存在预设阈值,用以表示异常点概率大于或等于所述预设阈值的数据可能为异常点数据。因此,在所述当前数据集合中,依据所述预设阈值获取异常点概率大于等于所述预设阈值的各个数据,并将所述获取的各个数据生成备选数据集合。其中,所述数据可以是一个或多个。
例如:当前数据集合为X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)},所述集合X中各个数据的异常点概率为P={0.4,0.45,0.4,0.45,0.85,0.4,0.81,0.35,0.45,0.71},预设阈值为0.4,则异常点概率大于或等于0.4的数据为(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(-1,1),(-2,1),则生成备选数据集合{(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(-1,1),(-2,1)}。
步骤402:依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同。
所述聚类算法可以为K-Means聚类算法。所述K-Means聚类算法需要预设值K,所述K-Means聚类算法可以将输入的多个数据划分为预设值K个聚类,然后选取所述预设值K个聚类的聚类中心数据。
例如,所述备选数据集合为{(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(-1,1),(-2,1)},所述预设值为5,利用所述K-Means聚类算法在所述包含9个数据中选取5个数据,选取的数据可以为(0,5),(-0.5,4),(2,1),(-2,2),(-2,1)。
步骤403:将所述K个数据作为待标注数据。
例如,将所述步骤402中获取的5个数据(0,5),(-0.5,4),(2,1),(-2,2),(-2,1)作为待标注数据。
步骤404:依据所述待标注数据,获取当前标注指令。
将所述步骤403中生成的K个待标注数据显示给用户,用户人工判断所述待标注数据的属性,即所述待标注数据为正常点数据或异常点数据,获取与所述各个待标注数据相对应的标注指令,即所述K个当前标注指令。例如:将步骤403中生成的5个待标注数据显示给用户,用户判断所述5个待标注数据的属性,触发生成5个与所述待标注数据相对应的标注指令,获取所述5个标注指令。
由以上的技术方案可知,本实施例提供了一种异常检测训练集的构建方法,本方法中包括在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合;依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同;将所述K个数据作为待标注数据,获取K个当前标注指令,并依据所述K个当前标注指令,对与所述K个当前标注指令相对应的所述待标注数据进行标注。通过本方法可以实现,每次在当前数据集合中获取多个数据进行人工判断所述多个数据的属性(异常点数据或正常点数据),并对所述多个数据进行标注,相较于在样本数据集合中获取一个数据进行判断并标注,本方法可以提高训练集的构建效率。
请参阅图5,其示出了本申请提供的一种异常检测训练集的构建装置实施例五的结构示意图,本实施例可以包括:当前数据集合确定单元501、当前标注指令获取单元502、数据集合区分单元503、判断单元504、第一判断结果单元505及第二判断结果单元506。其中:
所述当前数据集合确定单元501,用于获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合。
所述样本数据集合与现有技术中的样本数据集合具有相同的特征,即所述样本数据集合中包含有多个样本数据,所述各个样本数据可能为异常点,也可能为正常点,利用现有检测算法如无监督异常点检测算法计算各个样本数据是异常点的概率,所述各个样本数据依据所述概率的大小依次排列。例如:
x1=(1,1),x2=(2,1),x3=(1,2),x4=(2,2),x5=(0,5),x6=(-1,1),x7=(-1,3),x8=(-2,1),x9=(-2,2),x10=(-0.5,4);
P={0.4,0.45,0.4,0.45,0.85,0.4,0.81,0.35,0.45,0.71};
X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};
其中:所述x1-x10为10个样本数据,所述P集合中的各个数据是利用现有检测算法计算的所述10个样本数据的异常点概率,依据所述P集合中的异常点概率大小,将所述10个样本数据进行排序后形成所述样本数据集合。所述当前数据集合确定单元501获取将所述已进行初次排序的样本数据集合X,并确定X为当前数据集合。
当然,所述算法不限定于无监督异常点检测算法,现有技术中能计算所述样本数据异常点概率的其他检测算法都属于本申请的保护范围。
所述当前标注指令获取单元502,用于获取各个当前标注指令。
在构建训练集的过程中,需要人工对所述当前数据集合中的数据进行判断,以确定所述数据是异常点数据或正常点数据。所述当前数据集合中的数据已按概率大小依次排列,依据其概率的大小,概率较大的数据成为待标注数据,需要人工判断所述待标注数据的类型,即正常点数据或异常点数据。
需要说明的是,所述当前标注指令获取单元502获取到的所述当前标注指令的与所述待标注数据的个数相对应,即人工可一次对一个待标注数据进行判断,也可对多个待标注数据进行判断。当所述待标注数据为一个时,所述当前标注指令获取单元502获取的所述当前标注指令为一个;当所述待标注数据为多个时,所述当前标注指令获取单元502获取到的所述标注指令为多个。
所述数据集合区分单元503,用于依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据。
预先设定标注指令与所述数据之间的对应关系,当所述当前标注指令获取单元502获取到当前标注指令,则所述数据集合区分单元503依据所述当前标注指令在所述当前数据集合中获取与所述当前标注指令相对应的数据,将所述已标注数据加入第一数据集合。例如,所述当前标注指令获取单元502获取到的当前标注指令为A1,所述A1与所述当前数据集合确定单元501确定的X集合中的x5即(0,5)相对应,所述数据集合区分单元503获取所述x5,将所述x5加入第一数据集合L,则L为{(0,5)}。
需要说明的是,所述数据集合区分单元503将所述已标注数据加入第一数据集合的过程为,可以是将所述已标注数据移动入所述第一数据集合,也可以是将所述已标注数据复制入所述第一数据集合且将所述已标注数据从所述当前数据集合中删除。
所述数据集合区分单元503将所述当前数据集合中的未标注数据组成第二数据集合,例如,第二数据集合为U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}。所述当前数据集合在每次进行接收标注指令后,可被划分为所述第一数据集合L与所述第二数据集合U。其中,所述第一数据集合L中是所有已标注过的数据,所述第二数据集合U中是所有未标注的数据。
所述判断单元504,用于判断所述第一数据集合中异常点数据的个数是否达到预设数值,如果是,触发所述第一判断单元505,否则,触发所述第二判断单元506。
构建训练集前,依据所述样本数据集合中的数据特征会预设异常点数据的个数,所述预设值作为循环截止与否的判断条件。例如,所述当前数据集合确定单元501确定的集合X的预设数值为3。
所述第一数据集合在每次循环过程中,会加入经过人工判断后的标注数据,所述标注数据被标注为了正常点数据或异常点数据,所述判断单元504计算所述第一数据集合中被标注为异常点数据的个数,并将所述个数与所述预设数值进行对比获得对比结果。
所述第一判断结果单元505,用于依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集。
若所述判断单元504判断的结果为是,触发所述第一判断结果单元505。例如,所述数据集合区分单元503生成的所述第一数据集合L中的数据为{(0,5),(-1,3),(-0.5,4),(2,1),(2,2)},其中:(0,5),(-0.5,4)(2,2)被标记为了异常点数据,异常点数据个数为3,所述预设数值为3,异常点数据的个数达到了预设数值,则所述第一判断结果单元505依据所述集合L{(0,5),(-1,3),(-0.5,4),(2,1),(2,2)}及相应的第二数据集合U{(-2,2),(1,1),(1,2),(-1,1),(-2,1)},生成训练集。其中,所述训练集中的(0,5),(-0.5,4)(2,2)数据为异常点数据,剩余数据为正常点数据。
所述第二判断结果单元506,用于依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,触发所述获取当前标注指令单元502。
若所述判断单元504判断的结果为否,触发所述第二判断结果单元506。例如,所述数据集合区分单元503生成的所述第一数据集合L中的数据为{(0,5),(-1,3),(-0.5,4)},其中:(-0.5,4)被标记为了异常点数据,异常点数据个数为1,所述预设数值为3,异常点数据的个数没有达到预设数值,则所述第二判断结果单元506计算所述第二数据集合U={(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}中的未标注数据的异常点概率。
若所述第二判断结果单元506经过计算后,所述第二数据集合U中的未标注数据的异常点概率为{0.3251,0.3251,0.3251,0.5004,0.6109,0.5004,0.3251},所述第二判断结果单元506依据所述概率大小,对所述第二数据集合U中的未标注数据进行排序,排序后的U为{(1,2),(1,1),(-1,1),(2,1),(2,2),(-2,2),(-2,1)},所述第二判断结果单元506将所述排序后的集合U作为当前数据集合,并触发所述当前标注指令获取单元502。
需要说明的是,所述第二判断结果单元506与所述当前标注指令获取单元502相连,所述第二判断结果单元506将排序后的第二数据集合确定为当前数据集合后,并触发所述当前标注指令获取单元502获取各个当前标注指令。
由此可见,若在所述样本数据集合X{(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}中的异常点为(-0.5,4)、(1,2)(-2,1),在经过此次概率计算并重新排序后,所述异常点(1,2)由原来的第8位上升为当前数据集合中的第1位,则标注出所述异常点(1,2)的人工判断标记次数将会减少,从而减少人工判断标记的成本,进而提高了训练集的构建效率。
由以上的技术方案可知,本实施例提供了一种异常检测训练集的构建装置,通过获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合;获取各个当前标注指令;依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据;判断所述第一数据集合中异常点数据的个数是否达到预设数值;若是,依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集;若否,依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,返回执行所述获取各个当前标注指令。
与现有技术相比,本实施例提供的装置通过在依据接收到的标记指令对数据进行标记后,利用已标记的数据对未标记的数据重新计算异常点概率,未标注数据的异常点概率正确度提高,异常点在未标注数据集合(当前数据集合)中的排序前移,则可减少标注次数,提高了异常检测训练集的构建效率。
请参阅图6,其示出了本申请提供的一种异常检测训练集构建装置实施例六的部分结构示意图,实施例五中的数据集合区分单元503可以包括:解析子单元601、标注子单元602、加入子单元603及组成子单元604。其中:
所述解析子单元601,用于解析接收到的所述各个当前标注指令,获得与所述各个当前标注指令相对应的标注。
预先设定所述标注指令与标注的对应关系,实施例五中的当前标注指令获取单元502获取到各个当前标注指令后,所述解析子单元601解析所述各个当前标注指令,可获得与所述标注指令相对应的标注。例如,预先设定标注指令为0时,标注为异常点;标注指令为1时,标注为正常点。所述当前标注指令获取单元502获取到的标注指令为A1,所述解析子单元601解析所述标注指令A1为0,则所述标注指令A1的标注为异常点。
所述标注子单元602,用于依据标注指令与数据间的对应关系,为所述各个数据添加相对应的标注;其中,所述各个数据是在所述当前数据集合中获取的。
预先设定标注指令与数据间的对应关系,依据所述对应关系,实施例五中的当前标注指令获取单元502获取到各个当前标注指令后,所述标注子单元602获取与所述各个当前标注指令相对应的各个数据,为所述各个数据添加相对应的标注。
例如,预先设定标注指令A1与所述当前数据集合U中的第一个数据即(1,2)相对应,且所述标注指令A1的标注为异常点,则为所述数据(1,2)添加异常点的标注,所述标注形式可以以数字形式,如0。当然,所述添加的标注形式包括但不限定于数字形式,字母、字符等能进行标记的形式都属于本申请的保护范围。
所述加入子单元603,用于将所述各个添加标注的数据确定为已标注数据,并将所述已标注数据加入第一数据集合;其中,所述已标注数据包括正常点数据或异常点数据。
所述标注子单元602为各个数据添加标注,所述加入子单元603将所述各个已标注数据加入第一数据集合中。需要说明的是,将所述已标注数据加入第一数据集合的过程为,可以是将所述已标注数据移动入所述第一数据集合,也可以是将所述已标注数据复制入所述第一数据集合且将所述已标注数据从所述当前数据集合中删除。
所述组成子单元604,用于将所述当前数据集合中的未标注数据组成第二数据集合。
所述组成子单元604将所述当前数据集合中剩余的数据即未标注数据组成第二数据集合。
请参阅图7,其示出了本申请提供的一种异常检测训练集的构建装置实施例七的部分结构示意图,实施例五中的所述第二判断结果单元506可以包括:计算单元5061,用于依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率;排序单元5062,用于依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序;确定单元5063,用于将排序后的第二数据集合确定为当前数据集合,触发所述当前标注指令获取单元502执行所述获取各个当前标注指令。其中,所述确定单元5063与所述当前标注指令获取单元502相连。
需要说明的是,所述5061至5063的功能请参阅实施例五中的506单元,在此不作赘述。
请参阅图8,其示出了本申请提供的一种异常检测训练集的构建装置实施例八的部分结构示意图,实施例七中的所述计算单元5061可以包括:集合表示子单元801、集合生成子单元802、矩阵获取子单元803、簇值获取子单元804及概率计算子单元805。其中:
所述集合表示子单元801,用于将所述样本数据集合表示为X={x1,x2,...xn},将第一数据集合表示为L={x1,x2,...xm},将第二数据集合表示为U={xm+1,xm+2,...xn};其中,所述n为获取的样本数据集合中的数据个数。
例如,样本数据集合为X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};第一数据集合为L={(0,5)};第二数据集合为U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}。
所述集合生成子单元802,用于依据所述第一数据集合中各个数据的标注生成标注集合F={u1,u2,...ui...um};其中,所述正常点的标注为1,所述异常点的标注为0,所述ui为1或0。
所述集合表示子单元801表示的第一数据集合中的数据为标注数据,所述标注数据有相对应的标注,所述集合生成子单元802获取所述第一数据集合中各个数据相对应的标注,将所述各个标注生成标注集合F={u1,u2,...ul}。若所述各个标注的形式为数字形式,且所述正常点的标注为1,所述异常点的标注为0,则所述标注集合F为1和/或0的集合,即所述ui为1或0。
例如,所述第一数据集合L={(0,5)}中数据(0,5)的标注为1,则所述标注集合F={1}。
所述矩阵获取子单元803,用于依据所述第一数据集合、所述第二数据集合及所述标注集合,利用公式获取n×k维的矩阵T={tih|1≤i≤n,1≤h≤k};其中,所述k为所述样本数据集合中正常点形成簇的预设个数,所述Cj为第j个簇的聚类中心,所述r1、r2为预设的权重值,所述d(Cj,xi)为样本xi的欧式距离。
所述样本数据集合中包含的各个数据中可能有正常点数据,也可能有异常点数据,所述各个正常点数据可以形成簇,形成的簇的个数是预先设定的,而异常点不属于任何簇。所述T中每一行数据代表所述样本数据集合X中的一个数据属于各个簇的情况,每一行中的各个数值tih表示所述数据分别以何种程度值属于所述各个簇,所述程度值被称为簇值。需要说明的是,所述矩阵T中的行数据与样本数据集合X中的数据存在对应关系,即所述行数据是由所述数据计算获得的。
其中:所述公式Q中的第一项用于找到所述每个数据分别属于哪个簇,若不属于任何簇,则第二项用于避免所述第一项将所有或大部分数据的异常点概率计算过大,即避免将所有或大部分数据识别为异常点数据;第三项用于使已标注数据异常点概率的计算结果与该已标注数据的标注相一致。
另外,所述r1的选择过程基于自适应算法的思想,即预设一组数值如{20,30,40,50,60,70},将所述各个数值依次代入所述公式Q中,获得所述各个数据的异常点概率,其中包括所述已标注数据的异常点概率,依据所述已标注数据的标注(人工判断的结果)及公式Q的计算结果,判断各个r1数值下公式Q计算结果的精准度,将精准度最高的数值确定为r1的值。所述r2的取值是较大的整数值,例如,100000,1000000等。
以下试举一例,对依据所述公式Q计算矩阵T的过程进行说明。
例如,所述样本数据集合为X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};所述样本数据集合中的正常点数据可形成的簇的预设个数为2;所述第一数据集合L={(0,5)};相对应,所述标注集合F={1};所述第二数据集合U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)};n值为10;簇的预设个数为2,即簇1及簇2;预设的r1值为60,预设的r2值为100000,依据所述公式Q,计算得出n×k维即10×2维的矩阵T。所述矩阵T为:
0.8 0.2 0.9 0.1 0.7 0.3 0.9 0.1 0 0 0.2 0.8 0.35 0.65 0.1 0.9 0.1 0.9 0.4 0.6
其中:第一行(0.8,0.2)说明(0,5)数据以0.8的程度属于簇1,以0.2的程度属于簇2。
所述簇值获取子单元804,用于在所述矩阵中获取与所述集合U中各个数据xi相对应的簇值,生成簇值集合{ti1,ti2,....,tik}。
所述矩阵获取子单元803获得的矩阵T中分别获取与所述集合U中的各个数据相对应的簇值,生成簇值集合。例如,集合U={(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)}中的数据(-1,3)所对应的簇值集合为{0.35,0.65}。
所述概率计算子单元805,用于依据与各个数据xi相对应的簇值集合,利用公式分别计算各个数据xi的异常点的概率。
集合U中各个数据xi存在相对应的簇值集合,例如:数据(-1,3)所对应的簇值集合为{0.35,0.65},所述概率计算子单元805利用公式计算得出数据(-1,3)的异常点概率为0.6474。
由以上的技术方案可知,本实施例提供的一种异常检测训练集的构建装置,通过计算获得所述第二数据集合中各个未标注数据的异常点概率,计算过程中使用了由已标注数据组成的第一数据集合,计算的异常点概率正确度提高,则所述第二数据集合中的异常点的异常点概率的正确度也随之提高,在依据所述异常点概率对所述第二数据集合进行排序后,所述第二数据集合中的异常点排序会前移。因此,在训练集的构建过程中,人工判断标注的次数也随之减少,从而提高了训练集的构建效率。
请参阅图9,其示出了本申请提供的一种异常检测训练集的构建装置实施例九的部分结构示意图,当所述当前标注指令获取单元获取的所述当前标注指令为多个时,实施例五的当前标注指令获取单元502可以包括:备选数据集合生成子单元901、多个数据获取子单元902、待标注数据生成子单元903及当前标注指令获取子单元904。其中:
所述备选数据集合生成子单元901,用于在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合。
针对当前数据集合中各个数据的异常点概率,存在预设阈值,用以表示异常点概率大于或等于所述预设阈值的数据可能为异常点数据。因此,在所述当前数据集合中,所述备选数据集合生成子单元901依据所述预设阈值获取异常点概率大于等于所述预设阈值的各个数据,并将所述获取的各个数据生成备选数据集合。其中,所述数据可以是一个或多个。
例如:当前数据集合为X={(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(1,2),(-1,1),(-2,1)},所述集合X中各个数据的异常点概率为P={0.4,0.45,0.4,0.45,0.85,0.4,0.81,0.35,0.45,0.71},预设阈值为0.4,则异常点概率大于或等于0.4的数据为(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(-1,1),(-2,1),则生成备选数据集合{(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(-1,1),(-2,1)}。
所述多个数据获取子单元902,用于依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同。
所述聚类算法可以为K-Means聚类算法。所述K-Means聚类算法需要预设值K,所述多个数据获取子单元902利用所述K-Means聚类算法,将输入的多个数据划分为预设值K个聚类,然后选取所述预设值K个聚类的聚类中心数据。
例如,所述备选数据集合为{(0,5),(-1,3),(-0.5,4),(2,1),(2,2),(-2,2),(1,1),(-1,1),(-2,1)},所述预设值为5,利用所述K-Means聚类算法在所述包含9个数据中选取5个数据,选取的数据可以为(0,5),(-0.5,4),(2,1),(-2,2),(-2,1)。
所述待标注数据生成子单元903,用于将所述K个数据作为待标注数据。
例如,将所述多个数据获取子单元902获取的5个数据(0,5),(-0.5,4),(2,1),(-2,2),(-2,1)作为待标注数据。
所述当前标注指令获取子单元904,用于依据所述待标注数据,获取当前标注指令。
将所述待标注数据生成子单元903生成的K个待标注数据显示给用户,用户人工判断所述待标注数据的属性,即所述待标注数据为正常点数据或异常点数据,所述当前标注指令获取子单元904获取与所述各个待标注数据相对应的标注指令,即所述K个当前标注指令。例如:将生成的5个所述待标注数据显示给用户,用户判断所述5个待标注数据的属性,触发生成5个与所述待标注数据相对应的标注指令,所述当前标注指令获取子单元904获取所述5个标注指令。
由以上的技术方案可知,本实施例提供了一种异常检测训练集的构建装置,所述装置通过在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合;依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同;将所述K个数据作为待标注数据,获取K个当前标注指令,并依据所述K个当前标注指令,对与所述K个当前标注指令相对应的所述待标注数据进行标注。通过本方法可以实现,每次在当前数据集合中获取多个数据进行人工判断所述多个数据的属性(异常点数据或正常点数据),并对所述多个数据进行标注,相较于在样本数据集合中获取一个数据进行判断并标注,本方法可以提高训练集的构建效率。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种异常检测训练集的构建方法及装置进行了详细介绍,对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种异常检测训练集的构建方法,其特征在于,包括:
获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合;
获取各个当前标注指令;
依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据,且所述当前标注指令用于为所述当前数据集合中的数据添加对应的标注,以使所述当前数据集合中的数据成为所述已标注数据;
判断所述第一数据集合中异常点数据的个数是否达到预设数值;
若是,依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集;
若否,依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,返回执行所述获取各个当前标注指令;
其中,正常点的标注为1,异常点的标注为0,则:
所述依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,包括:
将所述样本数据集合表示为X={x1,x2,...xn},将第一数据集合表示为L={x1,x2,...xm},将第二数据集合表示为U={xm+1,xm+2,...xn};
依据所述第一数据集合中各个数据的标注生成标注集合F={u1,u2,...ui...um};其中,所述ui为1或0;
依据所述第一数据集合、所述第二数据集合及所述标注集合,利用公式获取n×k维的矩阵T={tih|1≤i≤n,1≤h≤k};
在所述矩阵中获取与所述集合U中各个数据xi相对应的簇值,生成簇值集合{ti1,ti2,....,tik};
依据与各个数据xi相对应的簇值集合,利用公式分别计算各个数据xi的异常点的概率;
其中:所述n为获取的样本数据集合中的数据个数,所述k为所述样本数据集合中正常点形成簇的预设个数,所述Cj为第j个簇的聚类中心,所述r1、r2为预设的权重值,所述d(Cj,xi)为样本xi的欧式距离。
2.根据权利要求1所述的方法,其特征在于,所述依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合,包括:
解析获取到的各个所述当前标注指令,获得与各个所述当前标注指令相对应的标注;
依据标注指令与数据间的对应关系,为各个数据添加相对应的标注;其中,所述各个数据是在所述当前数据集合中获取的;
将所述各个添加标注的数据确定为已标注数据,并将所述已标注数据加入第一数据集合;其中,所述已标注数据包括正常点数据或异常点数据;
将所述当前数据集合中的未标注数据组成第二数据集合。
3.根据权利要求1所述的方法,其特征在于,当所述当前标注指令为多个时,则所述获取各个当前标注指令,包括:
在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合;
依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同;
将所述K个数据作为待标注数据;
依据所述待标注数据,获取当前标注指令。
4.一种异常检测训练集的构建装置,其特征在于,包括:
当前数据集合确定单元,用于获取样本数据集合,并将所述获取到的样本数据集合确定为当前数据集合;
当前标注指令获取单元,用于获取各个当前标注指令;
数据集合区分单元,用于依据获取到的所述各个当前标注指令,在所述当前数据集合中获取与所述各个当前标注指令相对应的已标注数据,将所述已标注数据加入第一数据集合,将所述当前数据集合中的未标注数据组成第二数据集合;其中,所述已标注数据包括正常点数据或异常点数据,且所述当前标注指令用于为所述当前数据集合中的数据添加对应的标注,以使所述当前数据集合中的数据成为所述已标注数据;
判断单元,用于判断所述第一数据集合中异常点数据的个数是否达到预设数值,如果是,触发第一判断结果单元,否则,触发第二判断结果单元;
第一判断结果单元,用于依据所述第一数据集合中的已标注数据和所述第二数据集合中的未标注数据,生成训练集;
第二判断结果单元,用于依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率,依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序,将排序后的第二数据集合确定为当前数据集合,触发所述当前标注指令获取单元;
其中,所述第二判断结果单元包括:
计算单元,用于依据所述第一数据集合,计算所述第二数据集合中的未标注数据的异常点概率;
排序单元,用于依据所述异常点概率,对所述第二数据集合中的未标注数据进行排序;
确定单元,用于将排序后的第二数据集合确定为当前数据集合,触发所述当前标注指令获取单元执行所述获取各个当前标注指令;
其中,所述正常点的标注为1,异常点的标注为0,则所述计算单元包括:
集合表示子单元,用于将所述样本数据集合表示为X={x1,x2,...xn},将第一数据集合表示为L={x1,x2,...xm},将第二数据集合表示为U={xm+1,xm+2,...xn};其中,所述n为获取的样本数据集合中的数据个数;
集合生成子单元,用于依据所述第一数据集合中各个数据的标注生成标注集合F={u1,u2,...ui...um};其中,所述ui为1或0;
矩阵获取子单元,用于依据所述第一数据集合、所述第二数据集合及所述标注集合,利用公式获取n×k维的矩阵T={tih|1≤i≤n,1≤h≤k};其中,所述k为所述样本数据集合中正常点形成簇的预设个数,所述Cj为第j个簇的聚类中心,所述r1、r2为预设的权重值,所述d(Cj,xi)为样本xi的欧式距离;
簇值获取子单元,用于在所述矩阵中获取与所述集合U中各个数据xi相对应的簇值,生成簇值集合{ti1,ti2,....,tik};
概率计算子单元,用于依据与各个数据xi相对应的簇值集合,利用公式分别计算各个数据xi的异常点的概率。
5.根据权利要求4所述的装置,其特征在于,所述数据集合区分单元包括:
解析子单元,用于解析获取到的各个所述当前标注指令,获得与各个所述当前标注指令相对应的标注;
标注子单元,用于依据标注指令与数据间的对应关系,为所述各个数据添加相对应的标注;其中,所述各个数据是在所述当前数据集合中获取的;
加入子单元,用于将所述各个添加标注的数据确定为已标注数据,并将所述已标注数据加入第一数据集合;其中,所述已标注数据包括正常点数据或异常点数据;
组成子单元,用于将所述当前数据集合中的未标注数据组成第二数据集合。
6.根据权利要求4所述的装置,其特征在于,当所述当前标注指令获取单元获取的所述当前标注指令为多个时,所述当前标注指令获取单元包括:
备选数据集合生成子单元,用于在所述当前数据集合中获取多个概率大于等于预设阈值的数据,生成备选数据集合;
多个数据获取子单元,用于依据所述备选数据集合及预设值,利用聚类算法,在所述备选数据集合中获取K个数据;其中,所述预设值为大于1的整数,所述K值与所述预设值相同;
待标注数据生成子单元,用于将所述K个数据作为待标注数据;
当前标注指令获取子单元,用于依据所述待标注数据,获取当前标注指令。
CN201310589362.4A 2013-11-20 2013-11-20 一种异常检测训练集的构建方法及装置 Expired - Fee Related CN103559420B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310589362.4A CN103559420B (zh) 2013-11-20 2013-11-20 一种异常检测训练集的构建方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310589362.4A CN103559420B (zh) 2013-11-20 2013-11-20 一种异常检测训练集的构建方法及装置

Publications (2)

Publication Number Publication Date
CN103559420A CN103559420A (zh) 2014-02-05
CN103559420B true CN103559420B (zh) 2016-09-28

Family

ID=50013666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310589362.4A Expired - Fee Related CN103559420B (zh) 2013-11-20 2013-11-20 一种异常检测训练集的构建方法及装置

Country Status (1)

Country Link
CN (1) CN103559420B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899408A (zh) * 2014-03-05 2015-09-09 孙宝文 有趣项集获取方法和装置
CN104462379A (zh) * 2014-12-10 2015-03-25 深圳大学 一种基于距离的高准确率全局离群点检测算法
CN105046081B (zh) * 2015-07-21 2018-03-16 深圳市永兴元科技股份有限公司 消防地点的抽样检查方法及装置
CN106603324A (zh) * 2015-10-20 2017-04-26 富士通株式会社 训练集的获取装置以及方法
CN105975980B (zh) * 2016-04-27 2019-04-05 百度在线网络技术(北京)有限公司 监控图像标注质量的方法和装置
CN108038211A (zh) * 2017-12-13 2018-05-15 南京大学 一种基于上下文的无监督关系数据异常检测方法
CN108062394A (zh) * 2017-12-18 2018-05-22 北京中关村科金技术有限公司 一种数据集的标注方法及相关装置
CN110472646B (zh) * 2018-05-09 2023-02-28 富士通株式会社 数据处理设备、数据处理方法及介质
CN109067722B (zh) * 2018-07-24 2020-10-27 湖南大学 一种基于两步聚类和检测片分析联合算法的LDoS检测方法
CN111291096B (zh) * 2020-03-03 2023-07-28 腾讯科技(深圳)有限公司 数据集构建方法、装置和存储介质及异常指标检测方法
CN111400547B (zh) * 2020-03-05 2023-03-24 西北工业大学 一种人机协作的视频异常检测方法
CN114078008A (zh) * 2020-08-20 2022-02-22 腾讯科技(深圳)有限公司 异常行为检测方法、装置、设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1749988A (zh) * 2004-09-14 2006-03-22 安捷伦科技有限公司 用于管理及预测自动分类器性能的方法和装置
CN101561878A (zh) * 2009-05-31 2009-10-21 河海大学 基于改进cure聚类算法的无监督异常检测方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112421B2 (en) * 2007-07-20 2012-02-07 Microsoft Corporation Query selection for effectively learning ranking functions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1749988A (zh) * 2004-09-14 2006-03-22 安捷伦科技有限公司 用于管理及预测自动分类器性能的方法和装置
CN101561878A (zh) * 2009-05-31 2009-10-21 河海大学 基于改进cure聚类算法的无监督异常检测方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Constructing Training Sets for Outlier Detection";Li-Ping Liu等;《SDM.2012》;20121231;第919-929页 *

Also Published As

Publication number Publication date
CN103559420A (zh) 2014-02-05

Similar Documents

Publication Publication Date Title
CN103559420B (zh) 一种异常检测训练集的构建方法及装置
CN106503148B (zh) 一种基于多知识库的表格实体链接方法
Rao et al. Loop based pseudo hamming values—I testing isomorphism and rating kinematic chains
JP6928206B2 (ja) 連合クラスタリング深層学習ニューラルネットワークに基づくデータ識別方法
CN105224600B (zh) 一种样本相似度的检测方法及装置
CN107315954A (zh) 一种文件类型识别方法及服务器
CN104598632B (zh) 热点事件检测方法和装置
You et al. Early-bird gcns: Graph-network co-optimization towards more efficient gcn training and inference via drawing early-bird lottery tickets
CN110362995A (zh) 一种基于逆向与机器学习的恶意软件检测及分析系统
CN115577701A (zh) 针对大数据安全的风险行为识别方法、装置、设备及介质
CN103514284B (zh) 数据显示系统和数据显示方法
CN107015993A (zh) 一种用户类型识别方法及装置
CN106776965B (zh) 特征串集合的分组方法和装置
CN106411704A (zh) 一种分布式垃圾短信识别方法
Patri et al. Multivariate time series classification using inter-leaved shapelets
CN105989284B (zh) 网页入侵脚本特征的识别方法及设备
CN105279238B (zh) 字符串处理方法和装置
CN107357632A (zh) 一种命令行解析方法及装置
CN104008136A (zh) 一种文本查找的方法和装置
Mendivelso et al. Approximate abelian periods to find motifs in biological sequences
Cazaux et al. Practical lower and upper bounds for the shortest linear superstring
JP7140268B2 (ja) 警告装置、制御方法、及びプログラム
CN106778858A (zh) 一种基于小子集分组的聚类方法
CN110022212A (zh) 一种重叠子序列检测和近似熵检测的组合实现方法
CN101582106A (zh) 细粒度数据完整性检验方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: Suzhou City, Jiangsu province 215123 Xiangcheng District Ji Road No. 8

Patentee after: SOOCHOW University

Address before: 215123 Suzhou Industrial Park, Jiangsu Road, No. 199

Patentee before: Soochow University

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160928

CF01 Termination of patent right due to non-payment of annual fee