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

训练方法、异常检测方法、装置、设备和存储介质与流程

2021-10-24 05:54:00 来源:中国专利 TAG:异常 人工智能 介质 检测方法 装置


1.本公开涉及人工智能领域或金融领域等,更具体地涉及一种异常检测模型的训练方法、异常检测方法、装置、设备、介质和程序产品。


背景技术:

2.随着人工智能、自动控制、通信和计算机技术的快速发展,可通过计算机系统、服务器、云服务、数据中心或传感器等对象的正常运行为用户提供服务。而为了保证用户能够正常使用服务,需要时刻监测上述对象的运行情况,以确保及时发现异常进行处理。相关技术中,例如可以采集计算机系统、服务器、云服务、数据中心或传感器等对象在运行过程中产生的数据,并利用采集到的数据进行异常检测。
3.以数据中心为例,随着数据中心中数据库系统规模的变大、复杂度的提高、监控覆盖的更加完善,监控数据量越来越大,运维人员无法很快从海量监控数据中发现运行异常的问题。因此,如何训练获得能够准确检测出对象异常的异常检测模型,从而利用异常检测模型对待检测对象进行异常检测成为亟待解决的问题。


技术实现要素:

4.鉴于上述问题,本公开提供了一种训练方法、装置、设备、介质和程序产品,可以训练获得具有较高检测准确度和检测效率的异常检测模型。
5.本公开实施例的一个方面提供了一种异常检测模型的训练方法,包括:获取n种初始特征,其中,每种初始特征包括待检测对象的一种状态指标数据;利用m个异常检测算法分别处理所述n种初始特征,获得m组异常特征,其中,每组异常特征包含至少一种异常特征;将所述n种初始特征和/或m组异常特征中的每种异常特征作为s个分类模型的输入来进行分类训练;以及从训练后的所述s个分类模型中确定至少一个分类模型,以作为所述待检测对象的异常检测模型,其中,n、m和s分别为大于或等于1的整数。
6.根据本公开的实施例,所述将所述n种初始特征和/或m组异常特征中的每种异常特征作为s个分类模型的输入来进行分类训练包括:将第一训练集合作为所述s个分类模型中的每个分类模型的输入,其中,所述第一训练集合包括至少一种训练特征,每种训练特征对应于一种初始特征或一种异常特征;基于第一评价指标来进行分类训练,其中,所述第一评价指标通过所述每个分类模型对应所述第一训练集合中每种训练特征输出的分类结果获得。
7.根据本公开的实施例,对于所述每个分类模型,基于所述第一训练集合中每种训练特征的分类结果和预设标签,获得每种训练特征对应的所述第一评价指标,其中,所述预设标签包括预先为每种训练特征标注的类别标签;其中,所述基于第一评价指标来进行分类训练包括:获得第二训练集合来进行分类训练,其中,所述第二训练集合包括:在所述第一训练集合中,所述第一评价指标大于或等于第一阈值的一种或多种训练特征。
8.根据本公开的实施例,所述第一训练集合中每种训练特征包括在至少一个时刻的
特征数据,所述基于所述第一训练集合中每种训练特征的分类结果和预设标签获得所述第一评价指标包括:对所述第一训练集合中每种训练特征,基于每个时刻的特征数据的分类结果和预设标签的一致性,获得所有分类结果的准确率和召回率,其中,所述预设标签包括预先为所述每个时刻的特征数据标注的类别标签;基于所述准确率和召回率,获得所述第一评价指标。
9.根据本公开的实施例,所述获得第二训练集合来进行分类训练包括:对于所述每个分类模型,循环执行以下操作:在所述第一训练集合中剔除与所述第二训练集合重复的训练特征;将所述第二训练集合与剔除后的所述第一训练集合中的每种训练特征进行组合,获得一个或多个第三训练集合;在存在至少一个第三训练集合的第二评价指标大于所述第二训练集合的第二评价指标的情况下,将对应最大的第二评价指标的第三训练集合作为所述第二训练集合,其中,所述第二评价指标通过每个第三训练集合或所述第二训练集合中每种训练特征对应的分类结果获得。
10.根据本公开的实施例,在所述将对应最大的第二评价指标的第三训练集合作为所述第二训练集合之后,若新的所述第二训练集合包含所述第一训练集合中的全部训练特征,结束本次循环;或在不存在第三训练集合的第二评价指标大于所述第二训练集合的第二评价指标的情况下,结束本次循环。
11.根据本公开的实施例,所述从训练后的所述s个分类模型中确定至少一个分类模型作为所述异常检测模型包括:在所述每个分类模型结束本次循环后,获得所述每个分类模型对应的所述第二训练集合的第二评价指标;将所述第二评价指标大于或等于第二阈值的至少一个分类模型作为所述异常检测模型。
12.根据本公开的实施例,所述利用m个异常检测算法分别处理所述n种初始特征获得m组异常特征包括:所述m个异常检测算法中每个异常检测算法处理所述n种初始特征以输出一个异常评价值矩阵,其中,每个异常评价值矩阵对应一组异常特征。
13.本公开实施例的另一方面提供了一种异常检测方法,包括:利用权利要求1~8中任一项所述的训练方法,训练获得待检测对象的异常检测模型;获得待检测对象的至少一种初始特征,其中,每种初始特征包括所述待检测对象的一种状态指标数据;基于第二训练集合中的特征种类,处理所述至少一种初始特征以获得至少一种检测特征,其中,所述第二训练集合为训练完成所述异常检测模型时确定的特征集合;利用所述异常检测模型基于所述至少一种检测特征对所述待检测对象进行异常检测。
14.本公开实施例的另一方面提供了一种训练装置,包括:第一特征模块、第二特征模块、分类训练模块和模型确定模块。所述第一特征模块用于获取n种初始特征,其中,每种初始特征包括待检测对象的一种状态指标数据;所述第二特征模块用于利用m个异常检测算法分别处理所述n种初始特征,获得m组异常特征,其中,每组异常特征包含至少一种异常特征;所述分类训练模块用于将所述n种初始特征和/或m组异常特征中的每种异常特征作为s个分类模型的输入来进行分类训练;以及所述模型确定模块用于从训练后的所述s个分类模型中确定至少一个分类模型,以作为所述待检测对象的异常检测模型,其中,n、m和s分别为大于或等于1的整数。
15.本公开实施例的另一方面提供了一种异常检测装置,包括:模型训练模块、第三特征模块、第四特征模块和异常检测模块。模型训练模块,用于利用如上所述的训练方法,训
练获得待检测对象的异常检测模型。所述第三特征模块,用于获得待检测对象的至少一种初始特征,其中,每种初始特征包括所述待检测对象的一种状态指标数据。所述第四特征模块,用于基于第二训练集合中的特征种类,处理所述至少一种初始特征以获得至少一种检测特征,其中,所述第二训练集合为训练完成所述异常检测模型时确定的特征集合。所述异常检测模块,用于利用所述异常检测模型基于所述至少一种检测特征对所述待检测对象进行异常检测。
16.本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
17.本公开的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
18.本公开的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
19.上述一个或多个实施例具有如下优点或有益效果:可以至少部分地解决无法获得能够有效检测异常的异常检测模型的问题,获得n种初始特征,并利用m个异常检测算法获得m组异常特征,从而在n种初始特征的基础上进行了特征的扩充,能够在训练过程中,结合s个分类模型从更多的角度挖掘待检测对象状态数据的异常信息,使得训练获得的异常检测模型能够更准确、更快速地检测到待检测对象的异常情况。另外,通过训练后确定的特征组合,结合获得的异常检测模型对待检测对象进行异常检测,能够自动、实时、准确地从待检测对象的状态指标数据中发现异常,提高后续诊断、修复工作的效率。
附图说明
20.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
21.图1示意性示出了根据本公开实施例的应用于数据库系统的训练方法或异常检测方法的应用场景图;
22.图2示意性示出了根据本公开实施例的异常检测模型的训练方法的流程图;
23.图3示意性示出了根据本公开实施例的进行分类训练的流程图;
24.图4示意性示出了根据本公开实施例的基于第一评价指标来进行分类训练的流程图;
25.图5示意性示出了根据本公开实施例的获得第一评价指标的流程图;
26.图6示意性示出了根据本公开实施例的获得第二训练集合来进行分类训练的流程图;
27.图7示意性示出了根据本公开实施例的确定异常检测模型的流程图;
28.图8示意性示出了根据本公开实施例的异常检测方法的流程图;
29.图9示意性示出了根据本公开实施例的训练装置的结构框图;
30.图10示意性示出了根据本公开实施例的异常检测装置的结构框图;以及
31.图11示意性示出了根据本公开实施例的适于实现训练方法或异常检测方法的电子设备的方框图。
具体实施方式
32.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
33.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
34.相关技术中,通常假设训练样本分布平衡,但是异常检测场景中存在样本分布不平衡的现象。对于不平衡数据集,在训练过程中往往会更关注多数类样本,忽视少数类样本,很容易将少数类样本错分为多数类,导致最终的分类结果不理想。
35.针对不平衡的分类任务,相关技术中通常从监督学习或异常检测的角度出发。若从监督学习的角度出发,不能很好地提取样本特征信息。若仅从异常检测的角度出发,则未能利用标签信息。例如异常检测方法可以采用无监督学习的方式进行分类。其中,无监督学习的方法无法学习数据样本特征与标签之间的关系。
36.本公开的实施例提供了一种异常检测模型的训练方法、装置、设备、介质和程序产品。该训练方法包括:获取n种初始特征,其中,每种初始特征包括待检测对象的一种状态指标数据。利用m个异常检测算法分别处理n种初始特征,获得m组异常特征,其中,每组异常特征包含至少一种异常特征。将n种初始特征和/或m组异常特征中的每种异常特征作为s个分类模型的输入来进行分类训练。以及从训练后的s个分类模型中确定至少一个分类模型,以作为待检测对象的异常检测模型,其中,n、m和s分别为大于或等于1的整数。
37.本公开的实施例还提供了一种异常检测方法、装置、设备、介质和程序产品。该异常检测方法包括:利用如上所述的训练方法,训练获得待检测对象的异常检测模型;获得待检测对象的至少一种初始特征,其中,每种初始特征包括所述待检测对象的一种状态指标数据;基于第二训练集合中的特征种类,处理所述至少一种初始特征以获得至少一种检测特征,其中,所述第二训练集合为训练完成所述异常检测模型时确定的特征集合;利用所述异常检测模型基于所述至少一种检测特征对所述待检测对象进行异常检测。
38.本公开的实施例所涉及的相关术语具有如下含义:
39.异常特征:异常检测算法对初始特征进行处理获得的特征数据。
40.检测特征:在使用训练好的异常检测模型进行检测时,从待检测对象直接采集的状态指标数据进行处理获得的特征数据。
41.待检测对象:在运行过程中产生一种或多种状态指标数据的对象。例如当待检测对象为网站时,可以获得该网站的用户数据,以对用户的行为进行异常检测。例如当待检测对象为生产生活领域中的设备时,如车辆设备,可以根据运行过程中温湿度传感器、光线传感器、声音传感器或振动传感器等采集的数据进行异常检测。例如当待检测对象为数据中心的数据库系统时,可以根据数据库系统的内存使用情况、被访问的磁盘数量和cpu的负载等状态指标数据,对数据中心进行异常检测。
42.需要说明的是,本公开的实施例提供的训练方法或异常检测方法,以及装置、设
备、介质和程序产品可用于大数据、人工智能技术在数据处理、异常检测相关方面,也可用于除计大数据、人工智能技术之外的多种领域,如金融领域等。本公开的实施例对提供的训练方法或异常检测方法,以及装置、设备、介质和程序产品的应用领域不做限定。
43.在本公开的技术方案中,所涉及的待检测对象的数据的收集、存储、使用、加工、传输、提供或应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
44.以下以待检测对象是数据库系统为例,详细描述本公开实施例的训练方法、异常检测方法、装置、设备、介质和程序产品。
45.图1示意性示出了根据本公开实施例的应用于数据库系统的训练方法或异常检测方法的应用场景图。
46.如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104、105、服务器107和数据库系统106,其中数据库系统106可以包括第一数据库服务器1061、第二数据库服务器1062......第n数据库服务器106n。网络104用以在终端设备101、102、103和服务器107之间提供通信链路的介质。网络105用以在服务器107和数据库系统106之间提供通信链路的介质。网络104、105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
47.服务器107可以通过网络105获取数据库系统106中各个数据库服务器的状态指标数据,并进行数据处理、模型训练或异常检测等。
48.用户可以使用终端设备101、102、103通过网络104与服务器107交互,以接收或发送消息等,例如用户可以使用终端设备101、102、103对训练过程中的特征数据进行标注,还可以下发训练指令或检测指令。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
49.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
50.服务器107可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。数据库系统中的各个数据库服务器可以与服务器107相同或不同。
51.需要说明的是,本公开实施例所提供的训练方法或异常检测方法一般可以由服务器107执行。相应地,本公开实施例所提供的训练装置或异常检测装置一般可以设置于服务器107中。本公开实施例所提供的训练方法或异常检测方法也可以由不同于服务器107且能够与终端设备101、102、103和/或服务器107通信的服务器或服务器集群执行。相应地,本公开实施例所提供的训练装置或异常检测装置也可以设置于不同于服务器107且能够与终端设备101、102、103和/或服务器107通信的服务器或服务器集群中。
52.应该理解,图1中的终端设备、网络、服务器和数据库系统的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、服务器和数据库系统。
53.以下将基于图1描述的场景,通过图2~图8对本公开实施例的训练方法和异常检测方法进行详细描述。
54.图2示意性示出了根据本公开实施例的异常检测模型的训练方法的流程图。
55.如图2所示,该实施例的异常检测模型的训练方法包括操作s210~操作s240。
56.在操作s210,获取n种初始特征,其中,每种初始特征包括待检测对象的一种状态指标数据。
57.根据本公开的实施例,可以获取数据库系统的至少一种状态指标数据,例如获取cpu使用率、连接数使用率、磁盘带宽利用率、锁等待和并发数使用率共六种(仅为示例)在一个或多个时刻的状态指标数据。例如,在数据库系统运行高峰阶段,对每种状态指标数据分别获取t1~t10共10个时刻的数据,例如从t1时刻,每隔10s取一个时刻。从而获得一个10行6列(10*6)的矩阵,其中,每一行对应一个时刻,每一列对应一种状态指标数据。
58.其中,cpu使用率为在固定时间间隔内比如1秒,cpu中非idle(空闲)线程运行的时间片数占总时间片数的百分比,直接反映服务器cpu繁忙程度的指标,一般认为指标高则表示服务器繁忙,低则不繁忙。连接数使用率为连接mysql数据库的线程数量占连接上限的百分比,例如设置当使用率达到生产基线的80%时则表示数据库连接数较高,需要重点关注。磁盘带宽利用率为在固定时间间隔内比如1秒,物理磁盘有百分之多少的时间在进行io操作,直接反映mysql实例所在的磁盘繁忙程度,一般认为指标高则表示磁盘繁忙,低则不繁忙,如果接近100%,说明mysql产生的i/o请求太多,磁盘已经满负荷运载。锁等待为innodb中事务出现锁争用而引起等待的语句,有可能造成innodb排队等待的语句增加,消耗cpu资源,影响数据库性能。并发数使用率为数据库中正在执行的并发线程数占总上限的百分比,该值与应用的并发访问数量相关,例如设置当使用率达到生产基线的80%时则表示数据库并发度较高,需要重点关注。
59.在本公开的一些实施例中,可以对每一列数据进行标准化操作,以获得对应的10行6列(10*6)的初始特征的矩阵。具体地,可以根据式(1)对每一列数据进行行z

score标准化操作,式(1)如下所示:
[0060][0061]
其中,x是矩阵中的元素值,μ是每一列数据的平均值,σ是每一列数据的标准差,z是每个元素值标准化操作后的值。
[0062]
在操作s220,利用m个异常检测算法分别处理n种初始特征,获得m组异常特征,其中,每组异常特征包含至少一种异常特征。
[0063]
根据本公开的实施例,利用m个异常检测算法分别处理n种初始特征获得m组异常特征包括:m个异常检测算法中每个异常检测算法处理n种初始特征以输出一个异常评价值矩阵,其中,每个异常评价值矩阵对应一组异常特征。
[0064]
例如可以选择lof(local outlier factor)、mcd(minimum covariance determinant)、hbos(histogram

based outlier score)和pca (principle component analysis)这四个异常检测算法。
[0065]
lof算法即局部异常因子算法(local outlier factor,lof),主要思想是给每个数据样本都分配一个依赖于邻域密度的离群因子lof,一个数据样本离群因子lof即这个样本周围样本的局部平均密度与该数据点的局部密度的比值,若lof值远大于1,则表示该样本点是离群点,若lof值接近于1,则该样本是正常数据点。
[0066]
hbos算法(histogram

based outlier score)基于多维数据各个维度的独立性假设。对于每一个数据维度都生成一个柱状图,柱状图的高度代表数据的密度,使用归一化操作保证最高的高度是1,这样可以保证每个特征的权重相同。最终计算每一个样本的hbos值,hbos分值越高,样本越异常。
[0067]
mcd算法(minimum covariance determinant,mcd)主要是利用迭代和mahalanobis距离的思想构造一个稳健的协方差矩阵估计量。得到稳健的均值矩阵和协方差矩阵后,再计算所有样本到最终均值矩阵的mahalanobis距离,以此为依据判定是否为异常点。
[0068]
pca算法(principle component analysis,pca)进行异常检测的原理是,pca在做特征值分解之后得到的特征向量反应了原始数据方差变化程度的不同方向,特征值为数据在对应方向上的方差大小。所以,最大特征值对应的特征向量为数据方差最大的方向,最小特征值对应的特征向量为数据方差最小的方向。原始数据在不同方向上的方差变化反应了其内在特点。如果单个数据样本跟整体数据样本表现出的特点不太一致,比如在某些方向上跟其它数据样本偏离较大,可能就表示该数据样本是一个异常点。
[0069]
其中,每个异常检测算法输出一个异常评价值矩阵。具体地,例如lof、mcd、hbos异常检测算法输出各自输出十行一列(6*1)的列向量。其中,每一行的元素值可以表示一个时刻对应的异常评价值。例如pca异常检测算法输出一个10行6列(10*6)的偏离矩阵作为异常评价值矩阵,偏离矩阵中的每个元素值可以对应于初始特征的矩阵中的一个元素值。
[0070]
需要说明的是,上述lof、mcd、hbos和pca四个异常检测算法仅为示例,本公开的实施例不对异常检测算法的数量和种类进行限定。
[0071]
在操作s230,将n种初始特征和/或m组异常特征中的每种异常特征作为s个分类模型的输入来进行分类训练。
[0072]
根据本公开的实施例,s个分类模型可以包括lr(logistic regression,逻辑回归)、knn(k

nearest neighbors,k最近邻算法)、svm(support vector machines,支持向量机)、dt(decision tree,决策树)、rf(random forest,随机森林)、gbdt(gradient boosting decision tree,梯度提升树)、dcf(deep cascade forest,深度级联森林)七个分类模型。
[0073]
需要说明的是,上述分类模型仅为示例,本公开的实施例不对分类模型的数量和种类进行限定。
[0074]
在操作s240,从训练后的s个分类模型中确定至少一个分类模型,以作为待检测对象的异常检测模型,其中,n、m和s分别为大于或等于1的整数。
[0075]
根据本公开的实施例,通过n种初始特征,并利用m个异常检测算法获得m组异常特征,从而在n种初始特征的基础上进行了特征数据的扩充,能够在训练过程中,结合s个分类模型从更多的角度挖掘待检测对象的状态数据的异常信息,训练获得的异常检测模型能够更准确、更快速地检测到待检测对象的异常情况。
[0076]
图3示意性示出了根据本公开实施例的操作s230中进行分类训练的流程图。
[0077]
如图3所示,该实施例的操作s230中将n种初始特征和/或m组异常特征中的每种异常特征作为s个分类模型的输入来进行分类训练包括操作s310~操作s320。
[0078]
在操作s310,将第一训练集合作为s个分类模型中的每个分类模型的输入,其中,
第一训练集合包括至少一种训练特征,每种训练特征对应于一种初始特征或一种异常特征。
[0079]
根据本公开的实施例,以第一训练集合包含n种初始特征和m组异常特征中的每种异常特征为例,将上述10*6的初始特征矩阵、hbos、mcd、lof异常检测算法各自输出的10*1的异常评价值矩阵以及pca异常检测算法输出的10*6的异常评价值矩阵,按照每列数据为单位进行合并获得10*15的一个矩阵作为第一训练集合。其中,每一列数据对应于一种初始特征或异常特征的数据。
[0080]
在操作s320,基于第一评价指标来进行分类训练,其中,第一评价指标通过每个分类模型对应第一训练集合中每种训练特征输出的分类结果获得。
[0081]
在一些实施例中,例如每个分类模型对每列数据进行综合处理,对该列数据对应的训练特征输出异常或者正常的分类结果,例如,计算该列数据与预先设置的正常数据的相似性,基于相似程度确定分类结果。然后获得每个分类模型对第一训练集合中的训练特征分类正确的个数,作为第一评价指标。确定正确个数最多的一个分类模型作为异常检测模型,然后对该异常检测模型继续进行训练,直至分类结果的正确个数达到预设阈值。
[0082]
根据本公开的实施例,先用异常检测算法对初始特征进行处理,将异常检测算法输出的结果作为新的样本特征(异常特征),将初始特征与异常特征进行结合实现对训练特征的扩充,从而从更多的角度挖掘样本的异常信息。
[0083]
图4示意性示出了根据本公开实施例的操作s320中基于第一评价指标来进行分类训练的流程图。
[0084]
如图4所示,该实施例的操作s230中基于第一评价指标来进行分类训练,可以执行操作s410~操作s420对每个分类模型进行分类训练。
[0085]
在操作s410,基于第一训练集合中每种训练特征的分类结果和预设标签,获得每种训练特征对应的第一评价指标,其中,预设标签包括预先为每种训练特征标注的类别标签。
[0086]
在操作s420,获得第二训练集合来进行分类训练,其中,第二训练集合包括:在第一训练集合中,第一评价指标大于或等于第一阈值的一种或多种训练特征。
[0087]
在一些实施例中,例如每个分类模型对每列数据进行综合处理,对该列数据对应的训练特征输出异常或者正常的分类结果,例如,分别计算该列数据与预先设置的正常数据或异常数据的相似性,当相似程度大于一定阈值时,则可输出该列数据的分类结果。首先,筛选出分类正确的训练特征,然后将其相似程度作为第一评价指标。最后,可以将第一评价指标高于第一阈值的一个或多个训练特征作为第二训练集合。
[0088]
在另一些实施例中,例如每个分类模型对每列数据中对应每个时刻的元素值进行判断,对每个元素值进行处理并输出异常或者正常的分类结果。例如对于cpu使用率对应t1时刻的值为0.85,超出了0.60的范围,那么可以输出异常的分类结果,即为分类正确。将每种训练特征中所有时刻的分类正确的个数作为第一评价指标。接下来,获取分类正确的个数较多(例如十个时刻对应的分类结果中有8个正确)的一个或多个训练特征(第二训练集合),以此作为该分类模型的输入,继续对该分类模型进行分类训练。对每个分类模型皆可按照上述步骤进行训练。
[0089]
根据本公开的实施例,以lr模型为例,若一种训练特征的第一评价指标大于或等
于第一阈值,表明lr模型对该种训练特征的分类效果较好。那么可以选取分类效果较好的一种或多种训练特征进行组合,作为lr模型新的输入,对lr模型进行分类训练,能够增强收敛速度,快速获得符合要求的模型。
[0090]
图5示意性示出了根据本公开实施例的操作s410中获得第一评价指标的流程图。
[0091]
如图5所示,该实施例的操作s410中基于第一训练集合中每种训练特征的分类结果和预设标签,获得每种训练特征对应的第一评价指标包括操作s510~操作s520。其中,第一训练集合中每种训练特征包括在至少一个时刻的特征数据。
[0092]
在操作s510,基于每个时刻的特征数据的分类结果和预设标签一致性,获得所有分类结果的准确率和召回率,其中,预设标签包括预先为每个时刻的特征数据标注的类别标签。
[0093]
例如cpu使用率的一列数据,其对应t1~t10时刻的特征数据分别为[0.85,0.45,0.50,0.50,0.55,0.35,0.70,0.40,0.80,0.20],以cpu使用率为0.60作为异常报警值,超出0.60则为异常。cpu使用率对应的预设标签为[异常,正常,正常,正常,正常,正常,异常,正常,异常,正常]。以lr模型为例,其对于cpu使用率在每个时刻的特征数据的分类结果分别为[正常,正常,正常,异常,异常,正常,异常,正常,正常,正常],其中,下划线结果为分类错误的结果。例如t1时刻的分类结果(正常)与预设标签(异常)不一致,则表明分类结果为错误结果,t2时刻的分类结果(正常)与预设标签(正常)一致,则表明分类结果为正确结果。如上,以10个时刻中每个时刻的分类结果与预设标签的一致性,获得对该种训练特征的所有分类结果的准确率和召回率。
[0094]
在操作s520,基于准确率和召回率,获得第一评价指标。
[0095]
根据本公开的实施例,可以根据f1值作为第一评价指标,计算方式如式(2):
[0096][0097]
其中,
[0098]
其中,recall为召回率,precision为准确率,tp表示分类正确的少数类样本个数,tn表示分类正确的多数类样本个数,fp表示错分为少数类的多数类样本个数,fn表示错分为多数类的少数类样本个数。如表1所示,其中,可设置少数类为正类,多数类为负类。
[0099]
表1
[0100][0101]
根据本公开的实施例,进一步地,如上述cpu使用率的特征数据,其中,预设标签中异常类别为正类,正常类别为负类。因此,可以将上述cpu使用率的预设标签和lr模型输出的分类结果进行对比,并根据式(2)计算得到lr模型对cpu使用率进行分类的f1值。
[0102]
相关技术中,通常采用准确率作为模型性能的评价指标。但是在处理不平衡分类
任务时,准确率往往不是一个适用的评价指标。根据本公开的实施例,能够通过f1值反映出异常类别的训练特征的分类情况,从而对各个分类模型进行准确评价。
[0103]
图6示意性示出了根据本公开实施例的操作s420中获得第二训练集合来进行分类训练的流程图。
[0104]
如图6所示,该实施例的操作s420中获得第二训练集合来进行分类训练包括,对每个分类模型循环执行操作s610~操作s650。
[0105]
在操作s610,在第一训练集合中剔除与第二训练集合重复的训练特征。
[0106]
根据本公开的实施例,例如可以选取一个具有最高的第一评价指标的训练特征作为第二训练集合。此时,第一阈值即最高的第一评价指标。例如,在输入10*15的第一训练集合后,有限次分类后,lr模型对cpu使用率的第一评价指标最高。因此,将cpu使用率对应的一列数据作为第二训练集合的内容,并从第一训练集合中剔除cpu使用率。
[0107]
在操作s620,将第二训练集合与剔除后的第一训练集合中的每种训练特征进行组合,获得一个或多个第三训练集合。
[0108]
根据本公开的实施例,可以cpu使用率与连接数使用率、磁盘带宽利用率、锁等待和并发数使用率中的任一种,或者上述四个异常检测算法输出的任一种异常特征进行组合。由此,可以获得14个十行二列(10*2)的第三训练集合,其中,每一个第三训练集合包括cpu使用率以及其余一种训练特征。
[0109]
在操作s630,判断是否存在第三训练集合的第二评价指标大于第二训练集合的第二评价指标。当存在时,执行操作s640。当不存在时,结束本次循环。
[0110]
根据本公开的实施例,可将f1值作为第二评价指标。参照操作s510~操作s520,基于式(2)计算每个第三训练集合的fl值,与第二训练集合的f1值进行比较,以判断是否存在第三训练集合的第二评价指标大于第二训练集合的第二评价指标。
[0111]
在操作s640,在存在至少一个第三训练集合的第二评价指标大于第二训练集合的第二评价指标的情况下,将对应最大的第二评价指标的第三训练集合作为第二训练集合,其中,第二评价指标通过每个第三训练集合或第二训练集合中每种训练特征对应的分类结果获得。
[0112]
根据本公开的实施例,对于所有的训练特征可以设定预设标签中异常类别为正类,正常类别为负类。例如存在一个第三训练集合包括cpu使用率和连接数使用率,按照式(2)计算出的f1值即为该第三训练集合的第二评价指标。如该第三训练集合(包括cpu使用率和连接数使用率)的f1值大于第二训练集合(包括cpu使用率),则将其作为新的第二训练集合。在另一些实施例中,以lr模型为例,若不存在第三训练集合的f1值大于第二训练集合,那么上一轮的lr模型即可以作为候选异常检测模型,cpu使用率为该候选异常检测模型确定的检测特征。
[0113]
在操作s650,判断新的第二训练集合与第一训练集合中的训练特征是否相同。若相同,表明新的第二训练集合包含第一训练集合中的全部训练特征,则结束本次循环。若不相同,则执行操作s610。
[0114]
根据本公开的实施例,新的第二训练集合(包括cpu使用率和连接数使用率)与第一训练集合中15种训练特征并不相同。那么在操作s610~操作s620,可以将新的第二训练集合,与第一训练集合中其余的每种训练特征进行组合,获得13个第三训练集合。然后,继
续执行操作s630~操作s650。
[0115]
在一些实施例中,若新的第二训练集合与第一训练集合相同,则表明最终确定的是第一训练集合的f1值最高,那么第一训练集合中的15种训练特征即为最佳特征组合。另一方面,在操作s610,剔除相同内容后的第一训练集合为空集,也无法继续执行,所以停止本次循环。
[0116]
根据本公开的实施例,参照贪心算法的思想进行特征选择,结合分类模型,每个分类模型的每一轮训练保留最佳的训练特征,并与剩下的训练特征进行组合,再次进行贪心选择。当效果下降时,贪心过程便会停止,从而能够确定出反映待检测对象的异常情况的最佳的特征组合。
[0117]
图7示意性示出了根据本公开实施例的操作s240中确定异常检测模型的流程图。
[0118]
如图7所示,该实施例的操作s240中从训练后的s个分类模型中确定至少一个分类模型作为异常检测模型包括,在每个分类模型结束本次循环后,执行操作s710~操作s720。
[0119]
在操作s710,获得每个分类模型对应的第二训练集合的第二评价指标。
[0120]
在操作s720,将第二评价指标大于或等于第二阈值的至少一个分类模型作为异常检测模型。
[0121]
根据本公开的实施例,例如lr、knn、svm、dt、rf、gbdt、dcf七个分类模型在停止分类训练后,各自会最终输出一个第二训练集合。首先获得每个分类模型输出的第二训练集合的f1值(即第二评价指标)。然后比较每个分类模型对应的f1值。其中,第二阈值可以为根据历史经验确定的,也可以直接确定为最高的f1值,即只取一个训练好的分类模型(具有最高的f1值)作为异常检测模型,并基于其对应的第二训练集合确定最佳特征组合。
[0122]
根据本公开的实施例,采用异常检测的思想对进行特征扩充,再结合分类模型进行特征选择,基于每一种分类模型得到的一种最佳的特征组合,选择出分类效果最佳的分类模型和其对应的最佳特征组合,这样既可以挖掘数据的内在信息,又能利用标签,学习到特征与标签之间的关系,从而提升异常检测性能,进一步提高模型的效果和适用性。
[0123]
图8示意性示出了根据本公开实施例的异常检测方法的流程图。
[0124]
如图8所示,该实施例的异常检测方法包括操作s810~操作s840。
[0125]
在操作s810,利用如上的训练方法,训练获得待检测对象的异常检测模型。
[0126]
在操作s820,获得待检测对象的至少一种初始特征,其中,每种初始特征包括待检测对象的一种状态指标数据。
[0127]
在操作s830,基于异常检测模型对应的第二训练集合中的特征种类,处理至少一种初始特征以获得至少一种检测特征,其中,第二训练集合为训练完成异常检测模型时确定的特征集合。
[0128]
根据本公开的实施例,例如异常检测模型为训练完成的lr模型,其对应的第二训练集合包括cpu使用率、lof异常检测算法输出的异常特征、mcd异常检测算法输出的异常特征。因此,可以利用lof、mcd异常检测算法分别对至少一种初始特征进行处理,获得对应的异常特征。其中,至少一种初始特征与训练时获得的初始特征种类一致。
[0129]
在操作s840,利用异常检测模型基于至少一种检测特征对待检测对象进行异常检测。
[0130]
以数据库为例,相关技术中,对数据中心的数据库系统进行健康度评价是难点之
一。数据库健康度评价主要依赖于专家经验,需要非常专业的数据库专家根据自身学科特性及工作经验,对数据质量、故障流程进行评估、梳理,从而建立特有的评价体系,人工配置成本大,且时效性不高。
[0131]
利用本公开实施例的异常检测模型能够通过数据库系统状态指标数据趋势的反常变化,识别出健康状态以及异常情况,及早发现问题风险,缩短故障发现与恢复时间,从而更准确地自动检测到当前运维场景的异常情况,减少了人工干预,减轻运维人员的工作压力,降低人工成本且具有较高时效性,为更好的推行与践行智能运维打好基础。
[0132]
需要说明的是,虽然上述内容以预设标签为正常或异常为例,获得的异常检测模型可以为二分类模型。但是,根据实际情况,可以对预设标签、异常检测算法和分类模型进行灵活选择,获得的异常检测模型可以为多分类模型。本公开不对其进行具体限定。
[0133]
基于上述训练方法和异常检测方法,本公开还提供了一种训练装置和一种异常检测装置。以下将结合图9和图10对两种装置进行详细描述。
[0134]
图9示意性示出了根据本公开实施例的训练装置900的结构框图。
[0135]
如图9所示,该实施例的训练装置900包括第一特征模块910、第二特征模块920、分类训练模块930和模型确定模块940。
[0136]
第一特征模块910例如可以执行操作s210,用于获取n种初始特征,其中,每种初始特征包括待检测对象的一种状态指标数据。
[0137]
第二特征模块920例如可以执行操作s220,用于利用m个异常检测算法分别处理n种初始特征,获得m组异常特征,其中,每组异常特征包含至少一种异常特征。
[0138]
分类训练模块930例如可以执行操作s230,用于将n种初始特征和/或m组异常特征中的每种异常特征作为s个分类模型的输入来进行分类训练。
[0139]
在一些实施例中,分类训练模块930例如可以执行操作s310~操作s320,操作s410~操作s420,操作s510~操作s520,以及操作s610~操作s650,在此不做赘述。
[0140]
模型确定模块940例如可以执行操作s240,用于从训练后的s个分类模型中确定至少一个分类模型,以作为待检测对象的异常检测模型,其中,n、m和s分别为大于或等于1的整数。
[0141]
在一些实施例中,模型确定模块940例如可以执行操作s710~操作s720,在此不做赘述。
[0142]
图10示意性示出了根据本公开实施例的异常检测装置1000的结构框图。
[0143]
如图10所示,该实施例的异常检测装置1000包括模型训练模块1010、第三特征模块1020、第四特征模块1030和异常检测模块1040。
[0144]
模型训练模块1010例如可以执行操作s810,用于利用权利要求1~8中任一项的训练方法,训练获得待检测对象的异常检测模型。
[0145]
第三特征模块1020例如可以执行操作s820,用于获得待检测对象的至少一种初始特征,其中,每种初始特征包括待检测对象的一种状态指标数据。
[0146]
第四特征模块1030例如可以执行操作s830,用于基于异常检测模型对应的第二训练集合中的特征种类,处理至少一种初始特征以获得至少一种检测特征,其中,第二训练集合为训练完成异常检测模型时确定的特征集合。
[0147]
异常检测模块1040例如可以执行操作s840,用于利用异常检测模型基于至少一种
检测特征对待检测对象进行异常检测。
[0148]
根据本公开的实施例,训练装置900或异常检测装置1000中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,训练装置900或异常检测装置1000中的至少一个模块可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,训练装置900或异常检测装置1000中的至少一个模块可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0149]
图11示意性示出了根据本公开实施例的适于实现训练方法或异常检测方法的电子设备的方框图。
[0150]
如图11所示,根据本公开实施例的电子设备1100包括处理器1101,其可以根据存储在只读存储器(rom)1102中的程序或者从存储部分1108加载到随机访问存储器(ram)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0151]
在ram 1103中,存储有电子设备1100操作所需的各种程序和数据。处理器1101、rom 1102以及ram 1103通过总线1104彼此相连。处理器1101通过执行rom 1102和/或ram 1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 1102和ram 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0152]
根据本公开的实施例,电子设备1100还可以包括输入/输出(i/o)接口1105,输入/输出(i/o)接口1105也连接至总线1104。电子设备1100还可以包括连接至i/o接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
[0153]
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0154]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光
存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 1102和/或ram 1103和/或rom 1102和ram 1103以外的一个或多个存储器。
[0155]
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现根据本公开实施例的方法。
[0156]
在该计算机程序被处理器1101执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
[0157]
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1109被下载和安装,和/或从可拆卸介质1111被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0158]
在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0159]
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0160]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0161]
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱
离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜