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

文档序号:29795878发布日期:2022-04-23 18:49阅读:68来源:国知局
检测数据异常的方法、装置、存储介质及计算机设备与流程

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


背景技术:

2.在现有技术中,市面上的数据分析平台多注重于数据的采集、整合与可视化处理,预警功能的实现较为简单,数据分析平台接收到来自数据源的数据时,一般采用将指标的数值和固定阈值进行比较来检测数据异常;然而数据源的数据波动较大时,使用固定阈值检测数据异常容易出现误判,固定阈值的设置依赖用户的经验,需要预先进行配置,工作效率不高。


技术实现要素:

3.本技术提供了检测数据异常的方法、装置、存储介质及计算机设备,可以解决现有技术数据异常检测准确率较低和用户配置效率较低的问题。所述技术方案如下:
4.第一方面,本技术提供了一种检测数据异常的方法,所述方法包括:
5.采集来自数据源的当前时间区间内的时间序列数据;其中,所述当前时间区间内的时间序列数据包括n个实际值;
6.确定所述数据源的数据特征;
7.若所述数据特征为趋势变化或周期变化,获取基线数据;其中,所述基线数据包括n个预测值,所述n个实际值和所述n个预测值为一一对应关系,所述基线数据是对历史时间区间内的时间序列数据进行预测得到的,所述历史时间区间与所述当前时间区间有关;
8.若所述实际值和对应的预测值之间的偏离度大于阈值,将所述实际值识别为异常值。
9.第二方面,本技术提供了一种检测数据异常的装置,所述装置包括:
10.采集单元,用于采集来自数据源的当前时间区间内的时间序列数据;其中,所述当前时间区间内的时间序列数据包括n个实际值;
11.确定单元,用于确定所述数据源的数据特征;
12.获取单元,用于若所述数据特征为趋势变化或周期变化,获取基线数据;其中,所述基线数据包括n个预测值,所述n个实际值和所述n个预测值为一一对应关系,所述基线数据是对历史时间区间内的时间序列数据进行预测得到的,所述历史时间区间与所述当前时间区间有关;
13.识别单元,用于若所述实际值和对应的预测值之间的偏离度大于阈值,将所述实际值识别为异常值。
14.第三方面,本技术提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
15.第四方面,本技术提供一种计算机设备,可包括:处理器和存储器;其中,所述存储
器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
16.本技术提供的技术方案带来的有益效果至少包括:
17.采集当前时间区间的数据,确定数据源的数据特征,在数据特征为趋势变化或周期变化时,获取基于历史时间区间的数据进行预测得到的基线数据,将基线数据和当前时间的数据进行对比,检测数据异常,由于当前时间区间不断变化,那么与当前时间区间关联的历史时间区间也相应变化,基线数据也在动态变化。综上,本技术利用动态变化的基线数据来检测数据异常,可以提高数据异常检测的准确性,另外本技术不需要事前设置阈值,减少人工操作的步骤,可以提高工作效率。
附图说明
18.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本技术实施例提供的网络架构的示意图;
20.图2是本技术实施例提供的检测数据异常的方法的流程示意图;
21.图3是本技术实施例提供的检测数据异常的另一流程示意图;
22.图4是本技术实施例提供的检测数据异常的又一流程示意图;
23.图5是本技术提供的一种检测数据异常的装置的结构示意图;
24.图6是本技术提供的一种计算机设备的结构示意图。
具体实施方式
25.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作进一步地详细描述。
26.需要说明的是,本技术提供的检测数据异常的方法一般由计算机设备执行,相应的,检测数据异常的装置一般设置于计算机设备中。
27.图1示出了可以应用于本技术的检测数据异常的方法或检测数据异常的装置的示例性网络结构。
28.如图1所示,网络结构可以包括:计算机设备101和服务器102。计算机设备101和服务器102之间可以通过网络进行通信,网络用于上述各个单元之间提供通信链路的介质。网络可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(wireless-fidelity,wi-fi)通信链路或微波通信链路等。
29.其中,服务器102中部署有数据源,数据源周期性的生成数据,服务器102将数据发送给计算机设备101。
30.需要说明的是,计算机设备101和服务器102可以是硬件,也可以是软件。当计算机设备101和服务器102为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当计算机设备101和服务器102为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
31.本技术的计算机设备上可以安装有各种通信客户端应用,例如:视频录制应用、视频播放应用、语音交互应用、搜索类应用、及时通信工具、邮箱客户端、社交平台软件等。
32.计算机设备可以是硬件,也可以是软件。当计算机设备为硬件时,可以是具有显示屏的各种计算机设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等等。当计算机设备为软件时,可以是安装上上述所列举的计算机设备中。其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
33.当计算机设备为硬件时,其上还可以安装有显示设备和摄像头,显示设备显示可以是各种能实现显示功能的设备,摄像头用于采集视频流;例如:显示设备可以是阴极射线管显示器(cathode ray tube display,简称cr)、发光二极管显示器(light-emitting diode display,简称led)、电子墨水屏、液晶显示屏(liquid crystal display,简称lcd)、等离子显示面板(plasma display panel,简称pdp)等。用户可以利用计算机设备上的显示设备,来查看显示的文字、图片、视频等信息。
34.应理解,图1中的计算机设备、网络和服务器的数目仅是示意性的。根据实现需要,可以是任意数量的计算机设备、网络和服务器。
35.下面将结合附图2,对本技术实施例提供的检测数据异常的方法进行详细介绍。其中,本技术实施例中的检测数据异常的装置可以是图1所示的计算机设备。
36.请参见图2,为本技术实施例提供了一种检测数据异常的方法的流程示意图。如图1所示,本技术实施例的所述方法可以包括以下步骤:
37.s201、采集来自数据源的当前时间区间内的时间序列数据。
38.其中,当前时间区间为一个时间段,可使用开始时刻和结束时刻来表示,此处的时间序列数据为当前时间区间内的按照时间顺序记录的一系列的实际值,实际值表示实际测量的数值。时间序列数据包含n个实际值,n为大于1的整数,本技术可以周期性地采集当前时间区间内的时间序列数据,当前时间区间的长度为固定长度。当前时间区间的长度可以根据实际需求而定,当前时间区间的长度越大,则检测的时延会增大,但是具有更小的处理开销;当前时间区间的长度越小,则检测的时延会减小,可以及时的发现异常点。数据源为数据的来源,数据源的数量可以为一个或多个,数据源周期性的输出数据,周期可以根据实际需求而定,例如:数据源以1秒为间隔输出一个数据。
39.s202、确定数据源的数据特征。
40.其中,数据特征表示数据源输出的数据的变化规律,数据特征一般包括平稳分布或非平稳分布,平稳分布表示数据的数值在指定的范围内波动,而非平稳分布表示数据的数值的波动较大,非平稳分布又可以细分为趋势变化、周期变化、正态分布、幂律分布或其他类型的分布。本技术预存有数据源的id和数据特征信息之间的映射关系,根据该映射关系可以确定数据源的数据特征。
41.s203、若数据特征为趋势变化或周期变化,获取基线数据。
42.其中,趋势变化包括递增趋势变化和递减趋势变化,递增趋势变化表示数值随着时间的增加而增大,递减趋势变化表示数值随着时间的增加而减小。周期性变化表示数值随着时间周期性变化。历史时间区间为一个时间范围,为当前时间区间之前的一个时间段,历史时间区间的位置与当前时间区间有关。
43.可选的,历史时间区间和当前时间区间的长度相等且历史时间区间和当前时间区间相邻,例如:历史时间区间和当前时间区间的长度为5分钟,当前时间区间为8:00~8:10,该当前时间区间关联的历史时间区间为7:50~8:00;在当前时间区间为8:10~8:00时,那么关联的历史时间区间变化为8:00~8:10,由此可见,本技术的当前时间区间和历史时间区间为动态变化的。
44.其中,基线数据包括n个预测值,n个预测值和当前时间区间内的n个实际值为一一对应关系,基线数据是对当前时间区间关联的历史时间区间内的时间序列数据进行预测得到的,预测的算法可以基于(long short-term memory,长短期记忆)模型或transformer预测得到。容易理解,由于历史时间区间会随着当前时间区间的变化而变化,因此基线数据中的预测值也是动态变化的。
45.s204、若实际值和对应的预测值之间的偏离度大于偏离度阈值,将实际值识别为异常值。
46.其中,对于当前时间区间内的各个实际值,将实际值和对应的预测值进行比较,计算二者之间的偏离度,偏离度表示实际值和预测值之间的偏离程度,偏离度越大表示误差越大,偏离度越小表示误差越小,本技术可以使用公式来计算实际值和预测值之间的偏离度,m表示实际值,p表示该实际值对应的预测值。偏离度阈值可以根据实际需求而定,本技术不作限制,若偏离度大于偏离度阈值,则将该实际值识别为异常值,进一步的,可以在统计图表中将该异常值和正常值进行标记,统计图表可以是柱状图、趋势图或其他类型的图表等。例如:统计图表的横坐标为时间,纵坐标为实际值,实际值为正常值时其颜色为绿色,实际值为异常值是其颜色为红色,以便用户通过图形界面区分异常值和正常值。
47.在一个或多个可能的实施例中,在确定数据源的数据特征为正态分布时,根据图3的方法检测数据异常,所述方法包括:
48.s301、根据n个实际值计算期望和方差。
49.其中,假设n个实际值为x1、x2、

、xn;根据如下公式计算期望:
50.其中,μ为期望。根据如下公式计算方差:
51.其中,σ为方差。
52.s302、根据期望和方差值计算上限值和下限值。
53.其中,上限值为μ+3σ,下限值为μ-3σ。
54.s303、若实际值不位于上限值和下限值之间,将实际值识别为异常值。
55.其中,对n个实际值中各个实际值进行检测,若μ-3σ≤实际值≤μ+3σ,则该实际值为正常值,否则,该实际值为异常值。
56.在一个或多个可能的实施例中,在确定数据源的数据特征为标记数据,根据图4所示的方法检测数据异常,所述方法包括:
57.s401、将当前时间区间内的时间序列数据转换为特征向量。
58.其中,将时间序列数据转换为特征向量,计算机设备通过特征向量识别深层特征。
59.s402、将特征向量输入到预先训练的深度学习模型得到预测结果。
60.其中,深度学习模型是根据历史时间区间内的已标注的时间序列数据训练得到的,即用户对历史时间区间内的时间序列数据中的各个数据带有标签,该标签用于区分该数据为异常数据或正常数据。本技术将已标注的时间序列数据作为样本进行训练得到深度学习模型。深度学习模型输入的预测结果为二分结果,即异常或正常。进一步的,为了保证初始的深度学习模块的预测精度,尽可能增大样本的数量,因此历史时间区间的长度远大于当前时间区间的长度,即历史时间区间包含的样本数据数量远大于当前时间区间包含的待预测数据的数量。
61.s403、在接收到当前时间区间内的时间序列数据的实际结果时,计算实际结果和预测结果之间的差值,以及通过bp算法利用差值更新深度学习模型。
62.其中,当前时间区间经过一段时间后,会对当前时间区间内各个数据进行标注,根据标注后的时间序列数据获知实际结果,根据实际结果和上述的预测结果计算得到差值,根据反向bp(back propagation,反向传播)算法更新深度学习模型,更新包括神经网络的权重和拓扑结果的更新,本实施例通过在线方式持续更新深度学习模型,以提高深度学习模型的预测精度。
63.在一个或多个可能的实施例中,在确定数据源的数据特征为幂律分布时,将当前时间区间内的时间序列数据进行求对数处理,例如:对各个实际值求以10为底的对数,或求以自然数为低的对数,求对数处理后得到对数序列数据,利用线性回归算法检测出对数序列数据中的异常数据。
64.在一个或多个可能的实施例中,在确定数据源的数据特征为平稳分布时,可以基于统计模型检测异常数据,例如:基于卡尔曼滤波器算法、随机游走算法或霍尔特-温特算法检测异常数据。
65.在一个或多个可能的实施例中,本技术预先配置有多个异常检测模型,例如:深度学习模型、统计模型或时序模型等,用户可以根据实际需求从多个异常检测模型中选择目标异常检测模型检测时间序列数据中的异常数据。进一步的,本技术可以同时利用多个异常检测模型分别对时间序列模型进行异常数据的检测,得到多个检测结果,检测结果为正常或异常,统计正常结果的数量和异常结果的数量,当正常结果的数量大于异常结果的数量时,则某个数据的检测结果为正常,反之则该数据的检测结果为异常,本技术通过多个异常检测模型的检测,可以提高检测的准确性。
66.本技术实施例,采集当前时间区间的数据,确定数据源的数据特征,在数据特征为趋势变化或周期变化时,获取基于历史时间区间的数据进行预测得到的基线数据,将基线数据和当前时间的数据进行对比,检测数据异常,由于当前时间区间不断变化,那么与当前时间区间关联的历史时间区间也相应变化,基线数据也在动态变化。综上,本技术利用动态变化的基线数据来检测数据异常,可以提高数据异常检测的准确性,另外本技术不需要事前设置阈值,减少人工操作的步骤,可以提高工作效率。
67.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
68.请参见图5,其示出了本技术一个示例性实施例提供的检测数据异常的装置的结
构示意图,以下简称装置5。该装置5可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分。装置5包括:采集单元501、确定单元502、获取单元503、识别单元504。
69.采集单元501,用于采集来自数据源的当前时间区间内的时间序列数据;其中,所述当前时间区间内的时间序列数据包括n个实际值;
70.确定单元502,用于确定所述数据源的数据特征;
71.获取单元503,用于若所述数据特征为趋势变化或周期变化,获取基线数据;其中,所述基线数据包括n个预测值,所述n个实际值和所述n个预测值为一一对应关系,所述基线数据是对历史时间区间内的时间序列数据进行预测得到的,所述历史时间区间与所述当前时间区间有关;
72.识别单元504,用于若所述实际值和对应的预测值之间的偏离度大于阈值,将所述实际值识别为异常值。
73.在一个或多个可能的实施例中,所述历史时间区间与所述当前时间区间相邻,且所述历史时间区间的长度等于所述当前时间区间的长度。
74.在一个或多个可能的实施例中,基于lstm长期记忆模型对历史时间区间内的时间序列数据进行预测,得到基线数据。
75.在一个或多个可能的实施例中,识别单元504还用于:
76.若所述数据特征为正态分布,计算所述n个实际值的期望μ和方差σ;
77.根据公式μ+3σ计算上限值,以及根据公式μ-3σ计算下限值;
78.若所述实际值不位于所述上限值和下限值之间,将所述实际值识别为异常值。
79.在一个或多个可能的实施例中,识别单元504还用于:
80.若所述数据源为标记数据,将所述当前时间区间内的时间序列数据转换为特征向量;
81.将所述特征向量输入到当前训练的深度学习模型得到预测结果;其中,所述深度学习模型是基于历史时间区间内的已标注的时间序列数据训练得到的;
82.在接收到所述当前时间区间内的时间序列数据的实际结果时,计算所述实际结果和所述预测结果之间的差值,以及通过bp反向传播算法利用所述差值更新深度学习模型。
83.在一个或多个可能的实施例中,所述历史时间区间内的已标注的时间序列数据划分为80%的训练集和20%的测试集。
84.在一个或多个可能的实施例中,还包括:
85.标记单元,用于基于所述当前时间区间内的时间序列数据生成统计图表,以及在统计图表中标记出各个异常值。
86.需要说明的是,上述实施例提供的装置3在执行检测数据异常的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的检测数据异常的装置与检测数据异常的方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
87.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
88.本技术实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图2所示实施例的方法步骤,具体执行过
程可以参见图2所示实施例的具体说明,在此不进行赘述。
89.本技术还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的检测数据异常的方法。
90.请参见图6,为本技术实施例提供了一种计算机设备的结构示意图。如图6所示,所述计算机设备600可以包括:至少一个处理器601,至少一个网络接口604,用户接口603,存储器605,至少一个通信总线602。
91.其中,通信总线602用于实现这些组件之间的连接通信。
92.其中,用户接口603可以包括显示屏(display)、摄像头(camera),可选用户接口603还可以包括标准的有线接口、无线接口。
93.其中,网络接口604可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
94.其中,处理器601可以包括一个或者多个处理核心。处理器601利用各种借口和线路连接整个终端600内的各个部分,通过运行或执行存储在存储器605内的指令、程序、代码集或指令集,以及调用存储在存储器605内的数据,执行终端600的各种功能和处理数据。可选的,处理器601可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gatearray,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器601可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器601中,单独通过一块芯片进行实现。
95.其中,存储器605可以包括随机存储器(randomaccess memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器605包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器605可用于存储指令、程序、代码、代码集或指令集。存储器605可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器605可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及应用程序。
96.在图6所示的计算机设备600中,用户接口603主要用于为用户提供输入的接口,获取用户输入的数据;而处理器601可以用于调用存储器605中存储的应用程序,并具体执行如图2所示的方法,具体过程可参照图2所示,此处不再赘述。
97.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
98.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1