CN105786823B - 用于多维时序数据分析的系统和方法 - Google Patents
用于多维时序数据分析的系统和方法 Download PDFInfo
- Publication number
- CN105786823B CN105786823B CN201410799803.8A CN201410799803A CN105786823B CN 105786823 B CN105786823 B CN 105786823B CN 201410799803 A CN201410799803 A CN 201410799803A CN 105786823 B CN105786823 B CN 105786823B
- Authority
- CN
- China
- Prior art keywords
- event
- dimensional
- matrix
- multidimensional
- occurrence
- 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.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供了一种用于从多维时序数据中发现多维事件的系统,包括一维事件发现单元和多维事件发现单元。一维事件发现单元将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件。多维事件发现单元包括:共现矩阵计算单元,被配置为计算表示所有一维事件相互之间同时出现的频率的共现矩阵;时间顺序矩阵计算单元,被配置为计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵;以及共现事件发现单元,被配置为根据共现矩阵和时间顺序矩阵发现多维事件。还提供了一种用于从多维时序数据中发现多维事件的方法。采用本发明,即使在事件之间存在时间差的情况下,也能准确地发现多维事件。
Description
技术领域
本申请涉及数据分析领域,具体涉及一种用于在多维时序数据中发现多维事件的系统和方法。
背景技术
多维时序数据分析是指从按时间变化的序列值或事件组成的时序数据库中找出有用知识的方法或过程。目前,时序数据库使用很多,范围也很广,例如穿戴设备采集的温度、心率以及皮肤湿度,大气污染指标CO、NO2、SO2以及PM2.5等都属于多维时序数据范畴,通过对多维时序数据的挖掘,能够分析身体健康情况、空气质量情况等一系列具有特殊意义的应用,对某些事件发生的规律提供更好的理解。
在多维时序数据线段图中,不同维度之间往往存在比较类似的同时发生的子序列段(事件或模态)。现有的多维事件发现方法主要分为精确查找和降维查找两种。精确查找虽然能够找到多维时序数据中所有的事件,但该方法没有考虑不同维度的事件之间可能存在的相关性。另一方面,降维查找方法不能够保证寻找到多维时序数据中的所有同时发生的事件。
因而,存在对满足在大规模多维时序数据环境下精确发现事件的技术的需求。
发明内容
本发明提出了一种在多维时序数据中发现多维事件的技术,能够在有效的海量多维时序数据集中有效地发现多维事件。本发明主要涉及以下方面:一维时序数据的事件计算;相关信息(共现矩阵、时间顺序矩阵、重叠率矩阵)的计算;以及有序多维事件的发现。具体的,通过设置阈值从共现矩阵中找到多组多维事件,每组由一个主事件和多个辅事件组成。通过时间顺序矩阵判断主事件和辅事件的相互关系,将多维事件进行分类。备选的,还可以根据重叠率矩阵判断不同类别中的辅事件对主事件的重要性,从而得到有序的多维事件。
根据本发明的第一方面,提供了一种用于从多维时序数据中发现多维事件的系统,包括:一维事件发现单元,被配置为将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件;以及多维事件发现单元。多维事件发现单元包括:共现矩阵计算单元,被配置为计算表示所有一维事件相互之间同时出现的频率的共现矩阵;时间顺序矩阵计算单元,被配置为计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵;以及共现事件发现单元,被配置为根据共现矩阵和时间顺序矩阵发现多维事件。
在一个实施例中,共现矩阵计算单元被配置为:针对一维主事件a和一维辅事件b,通过计算事件a和b同时出现的次数并将该次数除以主事件a出现的次数,得到一维主事件a和一维辅事件b相互之间同时出现的频率。
在一个实施例中,时间顺序矩阵计算单元被配置为:针对一维事件i和一维事件j,判断事件i的所有子模式是否均超前于事件j的相应子模式而出现,或者事件i的所有子模式是否均滞后于事件j的相应子模式而出现,或者事件i的所有子模式与事件j的相应子模式之间没有固定的先后顺序。
在一个实施例中,共现事件发现单元被配置为:计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;以及根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件。
在一个实施例中,多维事件发现单元还包括重叠率矩阵计算单元,重叠率矩阵计算单元被配置为计算表示所有多维事件相互之间的重叠率的重叠率矩阵。共现事件发现单元被配置为:根据共现矩阵、时间顺序矩阵和重叠率矩阵发现多维事件。
在一个实施例中,重叠率矩阵计算单元被配置为:针对一维主事件a和一维辅事件b,通过计算事件a和b在时间上的重叠长度并将该重叠长度除以主事件a的长度,得到一维主事件a和一维辅事件b相互之间的重叠率。
在一个实施例中,共现事件发现单元被配置为:计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件;以及根据重叠率矩阵,对多维事件进行排序。
在一个实施例中,共现事件发现单元被配置为:将个数多的一维事件排在前面;如果两个一维事件的个数相同,则将最早出现事件的一维事件排在另一个一维事件的前面。
根据本发明的第二方面,提供了一种用于从多维时序数据中发现多维事件的方法,包括:将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件;计算表示所有一维事件相互之间同时出现的频率的共现矩阵;计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵;以及根据共现矩阵和时间顺序矩阵发现多维事件。
在一个实施例中,计算表示所有一维事件相互之间同时出现的频率的共现矩阵包括:针对一维主事件a和一维辅事件b,通过计算事件a和b同时出现的次数并将该次数除以主事件a出现的次数,得到一维主事件a和一维辅事件b相互之间同时出现的频率。
在一个实施例中,计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵包括:针对一维事件i和一维事件j,判断事件i的所有子模式是否均超前于事件j的相应子模式而出现,或者事件i的所有子模式是否均滞后于事件j的相应子模式而出现,或者事件i的所有子模式与事件j的相应子模式之间没有固定的先后顺序。
在一个实施例中,发现多维事件包括:计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;以及根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件。
在一个实施例中,该方法还包括:计算表示所有多维事件相互之间的重叠率的重叠率矩阵。根据共现矩阵、时间顺序矩阵和重叠率矩阵发现多维事件。
在一个实施例中,计算表示所有多维事件相互之间的重叠率的重叠率矩阵包括:针对一维主事件a和一维辅事件b,通过计算事件a和b在时间上的重叠长度并将该重叠长度除以主事件a的长度,得到一维主事件a和一维辅事件b相互之间的重叠率。
在一个实施例中,发现多维事件包括:计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件;以及根据重叠率矩阵,对多维事件进行排序。
在一个实施例中,对一维事件进行排序包括:将个数多的一维事件排在前面;如果两个一维事件的个数相同,则将最早出现事件的一维事件排在另一个一维事件的前面。
本发明保证了在事件之间存在时间差的情况下也能发现多维事件。此外,本发明充分考虑到子维事件之间的相互关系,能够将多维事件分成不同类别。
附图说明
通过下文结合附图的详细描述,本发明的上述和其它特征将会变得更加明显,其中:
图1是示出了根据本发明一个实施例的用于从多维时序数据中发现多维事件的系统的框图。
图2是示出了根据本发明一个实施例的用于计算共现矩阵的示意图。
图3是示出了根据本发明一个实施例的用于计算时间顺序矩阵的示意图。
图4是示出了根据本发明一个实施例的用于计算一维事件的示意图。
图5(a)是示出了根据本发明一个实施例的示例时间顺序矩阵的示意图。
图5(b)是示出了根据本发明一个实施例的示例共现矩阵的示意图。
图6是示出了根据本发明一个实施例的发现多维共现事件的示意图。
图7是示出了根据本发明一个实施例的用于从多维时序数据中发现多维事件的方法的流程图。
图8是示出了根据本发明另一个实施例的用于从多维时序数据中发现多维事件的系统的框图。
图9是示出了根据本发明另一个实施例的用于计算重叠率矩阵的示意图。
图10是示出了根据本发明另一个实施例的用于计算一维事件的示意图。
图11(a)是示出了根据本发明另一个实施例的示例时间顺序矩阵的示意图。
图11(b)是示出了根据本发明另一个实施例的示例共现矩阵的示意图。
图11(c)是示出了根据本发明另一个实施例的示例重叠率矩阵的示意图。
图12是示出了根据本发明另一个实施例的发现多维共现事件的示意图。
图13是示出了根据本发明另一个实施例的用于从多维时序数据中发现多维事件的方法的流程图。
具体实施方式
下面,首先对本说明书中使用的若干术语进行详细说明。
多维时序数据:表示为S={T1,...,Tk},其中Ti=<t1,...,tm>是连续实值变量,其中m是时序的长度,k是子序列的个数。
一维事件/模态:给出一个时序数据T,某些重复出现的相似子序列。即,给定阈值r,对两条子序列ST1、ST2,如果它们的欧式距离小于r:D(ST1,ST2)<r,则称ST1和ST2为事件(也叫模态)。
多维事件:给出一个多维时序数据S,某些重复出现的相似多维子序列。即,给定阈值r,对两条子序列S1={A1,A2}和S2={B1,B2},A1∈T1、A2∈T2和B1∈T1、B2∈T2。如果它们的欧式距离D小于r:D(A1,B1)<r并且D(A2,B2)<r,则称S1和S2为多维事件(也叫多维模态)。
共现矩阵:表示多维时序数据中不同子序列的事件出现的频率,代表着一个事件是另一个事件的共现事件的度量。
时间顺序矩阵:表示不同维度之间的事件发生先后顺序的特征信息。
重叠率矩阵:表示不同维度之间同时发生的事件在时间上的重叠率。
主/辅事件:在计算多个事件之间相互信息时,选取一个基准的事件,将其余的事件与该基准事件进行计算得到共现、时间顺序和重叠率矩阵。在此计算过程中,基准事件被称为主事件,与主事件进行相互信息计算的其余事件都被称为辅事件。多维事件中通常包含一个主事件和多个辅事件。
下面,通过结合附图对本发明的具体实施例的描述,本发明的原理和实现将会变得明显。应当注意的是,本发明不应局限于下文所述的具体实施例。另外,为了简便起见,省略了与本发明无关的公知技术的详细描述。
实施例1
图1是示出了根据本发明一个实施例的用于从多维时序数据中发现多维事件的系统的框图。如图1所示,系统10包括一维事件发现单元110和多维事件发现单元120。其中,多维事件发现单元120包括共现矩阵计算单元130、时间顺序矩阵计算单元140和共现事件发现单元150。
一维事件发现单元110将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件。具体的,假设将原始时序数据表示为S={T1,T2,......},其中Ti表示一维子序列。一维事件发现单元110可以将多维时序数据分成多组单独的一维时序数据,然后计算每个单独的一维时序数据的事件。最终,一维事件发现单元110得到所有的一维事件数据集A={<a11,...,a1m>,...,<ak1,...,akm>}。
共现矩阵计算单元130计算表示所有一维事件相互之间同时出现的频率的共现矩阵。共现矩阵存储所有一维事件相互之间的共现频率,W=[w11,...,wmn],用作一个事件与另一个事件的同时出现的度量。根据事件之间的子模式在时间域上的交叉关系,计算得到共现矩阵,其中该矩阵的横坐标和纵坐标都是所提取的一维事件。具体的,共现矩阵计算单元130针对一维主事件a和一维辅事件b,通过计算事件a和b同时出现的次数并将该次数除以主事件a出现的次数,得到一维主事件a和一维辅事件b相互之间同时出现的频率。
例如,共现矩阵中每个矩阵元素可以根据事件a和b出现频率的参数w(a,b)=coincident(a,b)/size(a)来计算得到。其中,a是主事件,b是辅事件。共现矩阵计算单元130首先计算事件a和b同时出现的次数coincident(a,b)(以及a和b有重叠的部分),然后将该次数除以主事件a的总次数size(a)。备选的,在计算coincident(a,b)时,可以加入一个预先定义的时间差。
图2是示出了根据本发明一个实施例的用于计算共现矩阵的示意图。在图2的例子中,示出了3个子序列i、j和k。首先,一维事件发现单元110得到了子序列i、j和k的3个一维事件:a(包含两个子模式a1和a2)、b(包含两个子模式b1和b2)、c(包含两个子模式c1和c2)。采用start(事件)和end(事件)表示事件在时间域中的起始点和终止点。例如,start(b1)落在[start(a1)-t1,end(a1)+t2]中,start(b2)并没有落在[start(a2)-t1,end(a2)+t2]中,所以coincide(a,b)=1。由于主事件a的总次数是size(a)=2,所以事件b是事件a的共现事件的度量值为w(a,b)=coincident(a,b)/size(a)=0.5。
时间顺序矩阵计算单元140计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵。时间顺序矩阵存储所有一维事件相互之间的时间顺序参数O=[o11,...,omn]。通过计算一个事件的子模式与另一个事件的子模式出现的先后顺序,得到时间顺序矩阵,其中该矩阵的横坐标和纵坐标都是所提取的一维事件。具体的,针对一维事件i和一维事件j,时间顺序矩阵计算单元140判断事件i的所有子模式是否均超前于事件j的相应子模式而出现,或者事件i的所有子模式是否均滞后于事件j的相应子模式而出现,或者事件i的所有子模式与事件j的相应子模式之间没有固定的先后顺序。在时间顺序矩阵中,每个矩阵元素可以用1、-1和0表示。事件i与事件j的时间顺序计算公式如下所示:
order(i,j)=1表示事件i的所有子模式均超前于事件j的所有子模式出现。
order(i,j)=-1表示事件i的所有子模式均滞后于事件j的所有子模式出现。
order(i,j)=0表示事件i和事件j的子模式没有严格的出现先后顺序,可能是乱序。
图3是示出了根据本发明一个实施例的用于计算时间顺序矩阵的示意图。在图3的示例中,3个子序列的一维事件共有4个事件a、b、c和d,其中事件a、b和c分别包含两个子模式,事件d包含3个子模式。时间顺序矩阵计算单元140的计算结果如3的右部所示。例如,事件b和c中各有两个子模式,事件b第一个子模式滞后于事件c第一个子模式出现,且事件b第二个子模式超前于事件c第二个子模式。所以,这两种事件中子模式并没有以时间先后顺序出现,所以order(b,c)=0。类似的,事件a中的每个子模式都提前于事件c中的相应子模式出现,所以order(a,c)=1。
共现事件发现单元150根据共现矩阵和时间顺序矩阵发现多维事件。例如,共现事件发现单元150首先计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序。然后,根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件。最后,根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件。
例如,共现事件发现单元150可以采用如下算法1来发现多维事件:
1:输入:一组k维的事件A={A1,…,Ak},阈值alpha(0<alpha<1)
{Aj代表从一维时序数据中提取的所有一维事件.
Aj={ai,…,ac}代表着由e种事件组成的第j维时序数据的一维事件}
2:输出:S={Sn},C+={C- m}和C-=C- q},S代表无序的多维事件;C-代表有序的多维事件,且某个指定子模式出现的时间提前于其他所有的子模式;C-代表有序的多维事件,且某个指定子模式出现的时间落后于其他所有的子模式。
3:按照每个一维时序数据的子事件的个数对所有的一维事件排序。
{如果两个一维事件的子事件个数相同,那么子事件出现的时间越早的一维事件就排在另一维事件的前面}
n=m=q=1;
4:for对于第i维的子事件ax(ax∈Aj),(i<=k)do
5:for第j维的子事件ay∈Aj,(j<=k)if w(ax,ay)>alpha do
6:if order(ax,ay)=0do
7:将ax和ay存入Sn
8:else if order(ax,ay)=1将ax和ay存入C+melse将ax和ay存入C- q
9:end for
10:n=n+1,m=m+1,q=q+1
11:end for
12:returnS={S1,...,Sn},C+={C+ 1,...,C+ m}and C-={C- 1,...,C- q}
算法1
第1行:输入多维事件A,该多维事件是通过单独计算多维时序数据中的一维时序数据得到的,其中阈值alpha可以是预先定义的。
第2行:输出结果分为三类:S、C+和C-。S是order=0的部分,表示共现事件中各个子模式出现的无序性。C+是order=1时的共现事件,表示在时间域中主事件的子模式总是提前于辅事件的相应子模式出现。C-是order=-1时的共现事件,表示在时间域中主事件的子模式总是落后于辅事件的相应子模式出现。C+和C-都表示共现事件是有序的。
第3行:计算每个一维时序数据的所有事件的个数,根据该个数对所有的一维事件进行排序。例如,个数多的一维事件排在前面。如果两个一维时序数据的一维事件总个数相同,可以将最早出现事件的一维事件排在另一个一维事件的前面。
第4行到第11行:对所有的一维事件进行两两比较计算。具体的,对第i维的一维事件Ai中第x个子事件ax和第j维的一维事件Aj中第y个子事件ay进行计算判断。首先判断共现矩阵w是否大于阈值alpha来决定ax和ay是否属于共现事件。当ax和ay属于共现事件时,再根据两者的顺序矩阵order值判断子事件ax和ay存入Sn、C+ m或者C- q中。w是共现矩阵,表示ax和ay在时间上是否同时出现。order是时间顺序矩阵,表示ax和ay中的子模式出现的先后顺序关系。n、m和q分别用于对S、C+和C-进行计数。
第12行:输出最终的结果。
下面,结合图4-6详细描述上述系统10的一个具体应用示例。
图4是示出了根据本发明一个实施例的用于计算一维事件的示意图。如图4所示,原始数据是包含3个序列的多维时序数据。分别对每一维子序列进行事件提取后,得到事件a(子模式为a1和a2)、b(子模式为b1和b2)、c(子模式为c1和c2)、d(子模式为d1和d2)、e(子模式为e1和e2)、f(子模式为f1和f2)、j(子模式为j1和j2)、k(子模式为k1和k2)和m(子模式为m1和m2),一共9个事件。
接下来,根据得到的9个事件,分别计算事件两两之间的时间顺序矩阵和共现矩阵,得到图5(a)-5(b)所示的两个9×9的矩阵。在图5(a)-5(b)中,处于矩阵纵坐标位置的事件是主事件,对应的横坐标方向的是辅事件。例如,图5(a)所示的时间顺序矩阵中,order(m,a)=-1,这是因为主事件m的两个子模式m1和m2均出现在辅事件a的相应子模式a1和a2之后。与此不同,主事件d的子模式d1出现在辅事件j的子模式j1之前,但是d2出现在j2之后,所以order(d,j)=0。在图5(b)所示的共现矩阵中,由于主事件a的子模式a1和a2与辅事件b的子模式b1和b2均不存在时间上的交叉,所以w(a,b)=0。但是,主事件a的子模式和辅事件j的子模式j1和j2均存在时间上面的交叉,所以w(a,j)=2/2=1。
图6是示出了根据本发明一个实施例的发现多维共现事件的示意图。输出结果中,{(a1,d1,j1),(a2,d2,j2)}是无序的多维事件,该事件中包含两个子模式(a1,d1,j1)和(a2,d2,j2),其中每个子模式中又包含着原始一维事件中的子模式,在该事件中每个一维事件的子模式都是在时间域中无序出现的,其中a1和a2都是主事件中的子模式,d1、d2、j1和j2都是辅事件中的子模式。相反,在事件{(c1,f1,m1),(c2,f2,m2)}中,主事件的子模式c1和c2总是提前于辅事件的子模式f1、m1、f2和m2出现的,因此是一个有超前关系的多维事件。在事件{(b1,e1,k1),(b2,e2,k2)}中,主事件的子模式b1和b2总是滞后于辅事件的子模式e1、k1、e2和k2出现的,因此是一个有滞后关系的多维事件。
图7是示出了根据本发明一个实施例的用于从多维时序数据中发现多维事件的方法的流程图。如图7所示,方法70在步骤S710处开始。
在步骤S720,将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件。
在步骤S730,计算表示所有一维事件相互之间同时出现的频率的共现矩阵。优选的,计算表示所有一维事件相互之间同时出现的频率的共现矩阵包括:针对一维主事件a和一维辅事件b,通过计算事件a和b同时出现的次数并将该次数除以主事件a出现的次数,得到一维主事件a和一维辅事件b相互之间同时出现的频率。
在步骤S740,计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵。优选的,计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵包括:针对一维事件i和一维事件j,判断事件i的所有子模式是否均超前于事件j的相应子模式而出现,或者事件i的所有子模式是否均滞后于事件j的相应子模式而出现,或者事件i的所有子模式与事件j的相应子模式之间没有固定的先后顺序。
在步骤S750,根据共现矩阵和时间顺序矩阵发现多维事件。优选的,发现多维事件包括:计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;以及根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件。
最后,方法70在步骤S760处结束。
采用本实施例,能够保证即使在事件之间存在时间差的情况下也能发现多维事件。此外,本实施例充分考虑到子维事件之间的相互关系,能够将多维事件分成不同类别。
实施例2
图8是示出了根据本发明另一个实施例的用于从多维时序数据中发现多维事件的系统80的框图。本实施例2的系统80与上述实施例1的系统10的区别在于,多维事件发现单元120还包括重叠率矩阵计算单元160,如图8所示。为了简洁,以下仅对本实施例2与实施例1的区别进行描述。
重叠率矩阵计算单元160计算表示所有多维事件相互之间的重叠率的重叠率矩阵。重叠率矩阵存储所有多维事件相互之间的重叠率,该矩阵是根据不同事件的子模式之间的交叉程度计算得到的,其中矩阵的横坐标和纵坐标都是所提取的一维事件。具体的,重叠率矩阵计算单元160可以针对一维主事件a和一维辅事件b,通过计算事件a和b在时间上的重叠长度并将该重叠长度除以主事件a的长度,得到一维主事件a和一维辅事件b相互之间的重叠率。
例如,重叠率矩阵计算单元160可以按照如下公式来计算重叠率:
overlap_rate(i,j)=overlap(i,j)/length(i)
其中overlap(i,j)是主事件i和辅事件j在时间上的重叠长度,length(i)是主事件i在时间上的长度。
图9是示出了根据本发明另一个实施例的用于计算重叠率矩阵的示意图。图9示出了两个一维事件a和b,分别有两个子模式a1、a2和b1、b2。
当把一维事件a作为主事件时,重叠率的计算方式如下:
overlap(a,b)=50-30+120-102=38,
length(a)=67-30+148-102=83,
overlap_rate(a,b)=overlap(a,b)/length(a)=38/83=0.46。
当把一维事件b作为主事件时,重叠率的计算方式如下:
overlap(b,a)=overlap(a,b)=38,
length(b)=50-20+120-90=60,
overlap_rate(b,a)=overlap(b,a)/length(b)=38/60=0.63。
可以看出,当计算两个事件的重叠率时,选择不同的主辅事件会导致不一样的计算结果。因此,可以在相同的主事件情况下比较各个辅事件和主事件的重叠率大小。
在本实施例中,共现事件发现单元150被配置为:根据共现矩阵、时间顺序矩阵和重叠率矩阵发现多维事件。优选的,共现事件发现单元150计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序。然后,根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件。接下来,根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件。最后,根据重叠率矩阵,对多维事件进行排序。
例如,共现事件发现单元150可以采用如下算法2来发现多维事件:
1:输入:一组k维的事件A={A1,…,Ak},阈值alpha(0<alpha<1)
{Aj代表从一维时序数据中提取的所有一维事件.
Aj={a1,…,ac}代表着由c种事件组成的第j维时序数据的一维事件}
2:输出:S={Sn},C+={C+ m}和C-={C- q},S代表无序的多维事件;C+代表有序的多维事件,且某个指定子模式出现的时间提前于其他所有的子模式;C-代表有序的多维事件,且某个指定子模式出现的时间落后于其他所有的子模式。
3:按照每个一维时序数据的子事件的个数对所有的一维事件排序。
{如果两个一维事件的子事件个数相同,那么子事件出现的时间越早的一维事件就排在另一维事件的前面}
n=m=q=1;
4:for对于第i维的子事件ax(ax∈Ai),(i<=k)do
5:for第j维的子事件ay∈Aj,(j<=k)if w(ax,ay)>alpha do
6:if order(ax,ay)=0 do
7:将ax和ay存入Sn
8:else if order(ax,ay)=1将ax和ay存入C+melse将ax和ay存入C- q
9:end for
10:n=n+1,m=m+1,q=q+1
11:根据重叠率overlep_rate分别将S,C+和C-降序排列
12:end for
13:return S={S1,...,Sn},C+={C+ 1,...,C+ m}and C-={C- 1,...,C- q}
算法2
第1行:输入多维事件A,该多维事件是通过单独计算多维时序数据中的一维时序数据得到的,其中阈值alpha可以是预先定义的。
第2行:输出结果分为三类:S、C+和C-。S是order=0的部分,表示共现事件中各个子模式出现的无序性。C+是order=1时的共现事件,表示在时间域中主事件的子模式总是提前于辅事件的相应子模式出现。C-是order=-1时的共现事件,表示在时间域中主事件的子模式总是落后于辅事件的相应子模式出现。C+和C-都表示共现事件是有序的。
第3行:计算每个一维时序数据的所有事件的个数,根据该个数对所有的一维事件进行排序。例如,个数多的一维事件排在前面。如果两个一维时序数据的一维事件总个数相同,可以将最早出现事件的一维事件排在另一个一维事件的前面。
第4行到第10行:对所有的一维事件进行两两比较计算。具体的,对第i维的一维事件Ai中第x个子事件ax和第j维的一维事件Aj中第y个子事件ay进行计算判断。首先判断共现矩阵w是否大于阈值alpha来决定ax和ay是否属于共现事件。当ax和ay属于共现事件时,再根据两者的顺序矩阵order值判断子事件ax和ay存入Sn、C+ m或者C- q中。w是共现矩阵,表示ax和ay在时间上是否同时出现。order是时间顺序矩阵,表示ax和ay中的子模式出现的先后顺序关系。n、m和q分别用于对S、C+和C-进行计数。
第11行:分别计算S、C+和C-中的子事件和主事件的重叠率,根据该重叠率进行排序输出多维事件。
第12-13行:输出最终的结果。
备选的,共现事件发现单元150可以采用上文描述的算法1得到S、C+和C-,然后采用如下算法3对S、C+和C-进行排序,从而发现多维事件:
1:for每个子集si∈S do
2:for每个子事件ax∈si do
3:for每个子事件ay∈si do
4:计算重叠率overlap_rate(ax,ay)
5:根据overlap_rate值降序排列si,重新记为S′={si}
6:for每个子集Ci+∈C+do
7:for每个子事件ax∈Ci+do
8:for每个子事件ay∈Ci+do
9:计算重叠率overlap_rate(ax,ay)
10:根据overlap_rate值降序排列Ci+,重新记C+′={Ci+}
11:for每个子集Ci-∈C-do
12:for每个子事件ax∈Ci-do
13:for每个子事件ay∈Ci-do
14:compute overlap_rate(ax,ay)
15:根提overlap_rate值降序排列Ci-,重新记为C-′={Ci-}
16:returnS′,C+′,C-′
算法3
第1行到第5行:计算S集合中的子事件ax和ay之间的重叠率,根据重叠率大小降序排列S。
第6行到第10行:计算C+集合中的子事件ax和ay之间的重叠率,根据重叠率大小降序排列C+。
第11行到第15行:计算C-集合中的子事件ax和ay之间的重叠率,根据重叠率大小降序排列C-。
算法2和算法3的区别在于:算法2是在每个主事件中找到所有共现的辅事件,再进行一次不同的辅事件与主事件重叠率排序计算,然后进入下一轮主事件的共现辅事件计算过程。算法3是先找到所有的多维事件,并且被分类成三种类型,然后对每一类型的多维事件中的主事件和辅事件根据其重叠率进行排序。
下面,结合图10-12详细描述上述系统80的一个具体应用示例。
图10是示出了根据本发明另一个实施例的用于计算一维事件的示意图。如图10所示,原始数据是包含3个序列的多维时序数据。分别对每一维子序列进行事件提取后,得到事件a(子模式为a1和a2)、b(子模式为b1和b2)、c(子模式为c1和c2)、d(子模式为d1和d2)、e(子模式为e1和e2)、f(子模式为f1和f2)、j(子模式为j1和j2)、k(子模式为k1和k2)和m(子模式为m1和m2),一共9个事件。
接下来,根据得到的9个事件,分别计算事件两两之间的时间顺序矩阵、共现矩阵和重叠率矩阵,得到图11(a)-11(c)所示的三个9×9的矩阵。在图11(a)-11(c)中,处于矩阵纵坐标位置的事件是主事件,对应的横坐标方向的是辅事件。例如,图11(a)所示的时间顺序矩阵中,order(m,a)=-1,这是因为主事件m的两个子模式m1和m2均出现在辅事件a的相应子模式a1和a2之后。与此不同,主事件d的子模式d1出现在辅事件j的子模式j1之前,但是d2出现在j2之后,所以order(d,j)=0。在图1l(b)所示的共现矩阵中,由于主事件a的子模式a1和a2与辅事件b的子模式b1和b2均不存在时间上的交叉,所以w(a,b)=0。但是,主事件a的子模式和辅事件j的子模式j1和j2均存在时间上面的交叉,所以w(a,j)=2/2=1。
需要注意,在图11(c)所示的重叠率矩阵中,由于选择的主事件和辅事件不同,导致相同的两个事件之间计算的重叠率不一样。例如,overlap_rate(m,c)≠overlap_rate(c,m)。
图12是示出了根据本发明另一个实施例的发现多维共现事件的示意图。如图12所示,在输出结果中,{(a1,j1,d1),(a2,j2,d2)}是一次事件,该次事件中辅事件j(包含两个子模式j1和j2)与主事件a的子模式的重叠率总是大于辅事件d与a的重叠率,各个子模式出现的时间顺序是紊乱的,因而这是一次无序的事件。而在事件{(c1,f1,m1),(c2,f2,m2)}中,主事件的子模式c1和c2总是提前于辅事件的相应子模式f1、m1、f2和m2出现的,因而这是一次有序的事件,并且辅事件f与主事件c的重叠率总是大于辅事件m与主事件c的重叠率。
图13是示出了根据本发明另一个实施例的用于从多维时序数据中发现多维事件的方法的流程图。如图13所示,方法1300在步骤S1310处开始。
在步骤S1320,将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件。
在步骤S1330,计算表示所有一维事件相互之间同时出现的频率的共现矩阵。优选的,计算表示所有一维事件相互之间同时出现的频率的共现矩阵包括:针对一维主事件a和一维辅事件b,通过计算事件a和b同时出现的次数并将该次数除以主事件a出现的次数,得到一维主事件a和一维辅事件b相互之间同时出现的频率。
在步骤S1340,计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵。优选的,计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵包括:针对一维事件i和一维事件j,判断事件i的所有子模式是否均超前于事件j的相应子模式而出现,或者事件i的所有子模式是否均滞后于事件j的相应子模式而出现,或者事件i的所有子模式与事件j的相应子模式之间没有固定的先后顺序。
在步骤S1350,计算表示所有多维事件相互之间的重叠率的重叠率矩阵。优选的,针对一维主事件a和一维辅事件b,通过计算事件a和b在时间上的重叠长度并将该重叠长度除以主事件a的长度,得到一维主事件a和一维辅事件b相互之间的重叠率。
在步骤S1360,根据共现矩阵、时间顺序矩阵和重叠率矩阵发现多维事件。优选的,发现多维事件包括:计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件;以及根据重叠率矩阵,对多维事件进行排序。
最后,方法1300在步骤S1370处结束。
应该理解,本发明的上述实施例可以通过软件、硬件或者软件和硬件两者的结合来实现。例如,上述实施例中的系统内的各种组件可以通过多种器件来实现,这些器件包括但不限于:模拟电路、数字电路、通用处理器、数字信号处理(DSP)电路、可编程处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(CPLD),等等。
另外,本领域的技术人员可以理解,本发明实施例中描述的初始参数可以存储在本地数据库中,也可以存储在分布式数据库中或者可以存储在远程数据库中。
此外,这里所公开的本发明的实施例可以在计算机程序产品上实现。更具体地,该计算机程序产品是如下的一种产品:具有计算机可读介质,计算机可读介质上编码有计算机程序逻辑,当在计算设备上执行时,该计算机程序逻辑提供相关的操作以实现本发明的上述技术方案。当在计算系统的至少一个处理器上执行时,计算机程序逻辑使得处理器执行本发明实施例所述的操作(方法)。本发明的这种设置典型地提供为设置或编码在例如光介质(例如CD-ROM)、软盘或硬盘等的计算机可读介质上的软件、代码和/或其他数据结构、或者诸如一个或多个ROM或RAM或PROM芯片上的固件或微代码的其他介质、或一个或多个模块中的可下载的软件图像、共享数据库等。软件或固件或这种配置可安装在计算设备上,以使得计算设备中的一个或多个处理器执行本发明实施例所描述的技术方案。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
Claims (16)
1.一种用于从多维时序数据中发现多维事件的系统,所述多维时序数据包括与空气质量有关的数据,所述多维事件包括与空气质量有关的多维事件,所述系统包括:
一维事件发现单元,被配置为将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件,所述一维时序数据包括与空气质量有关的数据,所述一维事件包括与空气质量有关的一维事件;以及
多维事件发现单元,所述多维事件发现单元包括:
共现矩阵计算单元,被配置为计算表示所有一维事件相互之间同时出现的频率的共现矩阵;
时间顺序矩阵计算单元,被配置为计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵;以及
共现事件发现单元,被配置为根据共现矩阵和时间顺序矩阵发现所述多维事件。
2.根据权利要求1所述的系统,其中,所述共现矩阵计算单元被配置为:
针对一维主事件a和一维辅事件b,通过计算事件a和b同时出现的次数并将该次数除以主事件a出现的次数,得到一维主事件a和一维辅事件b相互之间同时出现的频率。
3.根据权利要求1所述的系统,其中,所述时间顺序矩阵计算单元被配置为:
针对一维事件i和一维事件j,判断事件i的所有子模式是否均超前于事件j的相应子模式而出现,或者事件i的所有子模式是否均滞后于事件j的相应子模式而出现,或者事件i的所有子模式与事件j的相应子模式之间没有固定的先后顺序。
4.根据权利要求1所述的系统,其中,所述共现事件发现单元被配置为:
计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;
根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;以及
根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件。
5.根据权利要求1所述的系统,其中,
所述多维事件发现单元还包括重叠率矩阵计算单元,所述重叠率矩阵计算单元被配置为计算表示所有多维事件相互之间的重叠率的重叠率矩阵;以及
所述共现事件发现单元被配置为:根据共现矩阵、时间顺序矩阵和重叠率矩阵发现多维事件。
6.根据权利要求5所述的系统,其中,所述重叠率矩阵计算单元被配置为:
针对一维主事件a和一维辅事件b,通过计算事件a和b在时间上的重叠长度并将该重叠长度除以主事件a的长度,得到一维主事件a和一维辅事件b相互之间的重叠率。
7.根据权利要求5所述的系统,其中,所述共现事件发现单元被配置为:
计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;
根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;
根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件;以及
根据重叠率矩阵,对多维事件进行排序。
8.根据权利要求4或7所述的系统,其中,所述共现事件发现单元被配置为:将个数多的一维事件排在前面;如果两个一维事件的个数相同,则将最早出现事件的一维事件排在另一个一维事件的前面。
9.一种用于从多维时序数据中发现多维事件的方法,所述多维时序数据包括与空气质量有关的数据,所述多维事件包括与空气质量有关的多维事件,所述方法包括:
将多维时序数据分成多个单独的一维时序数据,并从每个单独的一维时序数据中发现一维事件,所述一维时序数据包括与空气质量有关的数据,所述一维事件包括与空气质量有关的一维事件;
计算表示所有一维事件相互之间同时出现的频率的共现矩阵;
计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵;以及
根据共现矩阵和时间顺序矩阵发现所述多维事件。
10.根据权利要求9所述的方法,其中,计算表示所有一维事件相互之间同时出现的频率的共现矩阵包括:
针对一维主事件a和一维辅事件b,通过计算事件a和b同时出现的次数并将该次数除以主事件a出现的次数,得到一维主事件a和一维辅事件b相互之间同时出现的频率。
11.根据权利要求9所述的方法,其中,计算表示所有一维事件相互之间的时间顺序的时间顺序矩阵包括:
针对一维事件i和一维事件j,判断事件i的所有子模式是否均超前于事件j的相应子模式而出现,或者事件i的所有子模式是否均滞后于事件j的相应子模式而出现,或者事件i的所有子模式与事件j的相应子模式之间没有固定的先后顺序。
12.根据权利要求9所述的方法,其中,发现多维事件包括:
计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;
根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;以及
根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件。
13.根据权利要求9所述的方法,还包括:计算表示所有多维事件相互之间的重叠率的重叠率矩阵;
其中,根据共现矩阵、时间顺序矩阵和重叠率矩阵发现多维事件。
14.根据权利要求13所述的方法,其中,计算表示所有多维事件相互之间的重叠率的重叠率矩阵包括:
针对一维主事件a和一维辅事件b,通过计算事件a和b在时间上的重叠长度并将该重叠长度除以主事件a的长度,得到一维主事件a和一维辅事件b相互之间的重叠率。
15.根据权利要求13所述的方法,其中,发现多维事件包括:
计算每个一维时序数据的一维事件的个数,并根据该个数对一维事件进行排序;
根据共现矩阵,对排序后的所有一维事件进行两两比较,以判断相应的两个一维事件是否属于共现事件;
根据时间顺序矩阵,确定属于共现事件的两个一维事件的时间顺序,并根据时间顺序生成多维事件;以及
根据重叠率矩阵,对多维事件进行排序。
16.根据权利要求12或15所述的方法,其中,对一维事件进行排序包括:
将个数多的一维事件排在前面;如果两个一维事件的个数相同,则将最早出现事件的一维事件排在另一个一维事件的前面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410799803.8A CN105786823B (zh) | 2014-12-19 | 2014-12-19 | 用于多维时序数据分析的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410799803.8A CN105786823B (zh) | 2014-12-19 | 2014-12-19 | 用于多维时序数据分析的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786823A CN105786823A (zh) | 2016-07-20 |
CN105786823B true CN105786823B (zh) | 2019-06-28 |
Family
ID=56384766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410799803.8A Active CN105786823B (zh) | 2014-12-19 | 2014-12-19 | 用于多维时序数据分析的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786823B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242312B (zh) * | 2020-01-06 | 2021-08-17 | 支付宝(杭州)信息技术有限公司 | 事件序列数据的处理方法、装置、电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719166A (zh) * | 2010-01-20 | 2010-06-02 | 中国人民解放军国防科学技术大学 | 一种多维时序信息可视化方法 |
CN103136327A (zh) * | 2012-12-28 | 2013-06-05 | 中国矿业大学 | 一种基于局部特征聚类的时间序列符号化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103930912A (zh) * | 2011-11-08 | 2014-07-16 | 国际商业机器公司 | 时序数据分析方法、系统和计算机程序 |
-
2014
- 2014-12-19 CN CN201410799803.8A patent/CN105786823B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719166A (zh) * | 2010-01-20 | 2010-06-02 | 中国人民解放军国防科学技术大学 | 一种多维时序信息可视化方法 |
CN103136327A (zh) * | 2012-12-28 | 2013-06-05 | 中国矿业大学 | 一种基于局部特征聚类的时间序列符号化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105786823A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559420B (zh) | 一种异常检测训练集的构建方法及装置 | |
CN105069115B (zh) | 一种基于历史报警分布式聚类的报警抑制方法 | |
US20180004781A1 (en) | Data lineage analysis | |
JP2013175108A5 (zh) | ||
Zhu et al. | Hybrid-order representation learning for electricity theft detection | |
CN109101661A (zh) | 一种数据样本集合中异常点的检测方法和装置 | |
CN108600246A (zh) | 一种基于knn算法的网络入侵检测并行化加速方法 | |
CN105786823B (zh) | 用于多维时序数据分析的系统和方法 | |
CN108804635A (zh) | 一种基于属性选择的相似性度量方法 | |
CN108108358A (zh) | 一种电能质量数据的存储和检索方法 | |
CN101826070A (zh) | 一种基于关键点的数据序列线性拟合方法 | |
CN105279520A (zh) | 基于分类能力结构向量互补的最优特征子集选取方法 | |
JP2015072515A (ja) | データ表示システム | |
US20200310401A1 (en) | System analysis method, system analysis apparatus, and program | |
CN106055674B (zh) | 一种分布式环境下基于度量空间的top-k支配查询方法 | |
CN103678709A (zh) | 一种基于时序数据的推荐系统攻击检测算法 | |
Patil et al. | Predicting burn patient survivability using decision tree in weka environment | |
Sanamdikar et al. | Machine vision approach for arrhythmia classification using incremental super vector regression | |
Chinnasamy et al. | An outlier based bi-level neural network classification system for improved classification of cardiotocogram data | |
Choi et al. | Citation network visualization of reference papers based on influence groups | |
CN106249851A (zh) | 输入信息确定方法和设备 | |
JP2017207878A (ja) | 欠落データ推定方法、欠落データ推定装置および欠落データ推定プログラム | |
Saleema et al. | Prominent label identification and multi-label classification for cancer prognosis prediction | |
Jaradat et al. | Edge-Maximal Graphs Without θ 2 k+ 1-Graphs | |
Tao et al. | Mining data streams with periodically changing distributions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |