CN110909305B - 一种实时判断数据流变化同向性及其程度的方法 - Google Patents
一种实时判断数据流变化同向性及其程度的方法 Download PDFInfo
- Publication number
- CN110909305B CN110909305B CN201811080771.0A CN201811080771A CN110909305B CN 110909305 B CN110909305 B CN 110909305B CN 201811080771 A CN201811080771 A CN 201811080771A CN 110909305 B CN110909305 B CN 110909305B
- Authority
- CN
- China
- Prior art keywords
- covariance
- window
- components
- computing
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000008859 change Effects 0.000 title abstract description 14
- 238000004364 calculation method Methods 0.000 claims abstract description 222
- 238000005265 energy consumption Methods 0.000 claims abstract description 7
- 239000000872 buffer Substances 0.000 claims description 49
- 238000004422 calculation algorithm Methods 0.000 description 62
- 238000007792 addition Methods 0.000 description 15
- 230000015654 memory Effects 0.000 description 14
- 238000007405 data analysis Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Algebra (AREA)
- Evolutionary Biology (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Abstract
协方差可用于判断流数据变化同向性及其程度。本发明公开了一种通过迭代计算给定规模的计算窗口的协方差从而可以实时判断时间序列或流数据变化同向性及其程度的方法,系统,和计算设备可读媒体。本发明的实施方案包括基于调整前计算窗口的协方差的二个以上组件迭代计算调整后计算窗口的协方差的二个以上组件,然后根据需要基于迭代计算的二个以上组件生成调整后计算窗口的协方差。迭代计算协方差可以基于最新数据实时更新计算结果并避免访问调整后计算窗口中的所有数据元素对和执行重复计算从而提高计算效率,节省计算资源和降低计算系统能耗,使得实时判断流数据变化同向性及其程度高效低耗及一些实时判断流数据变化同向性及其程度从不可能变为可能。
Description
技术领域
大数据或流数据分析。
背景技术
互联网,移动通讯,导航,网游,感应技术和大规模计算基础设施每天产生海量数据。大数据就是由于其巨大规模,快速变化及增长速度而超出了传统数据库系统的处理能力及传统分析方法的分析能力的数据。
流数据是从数据源不断传出并连续地被接收方接收的数据。流数据可以是传感器采集并连续传送到计算设备或电子设备上的实时数据。通常这包括连续接收有时间间隔,具有相似格式的数据元素。流数据也可以是从存储器连续读出的数据,例如存储在多个计算设备存储器上的大数据集。因此,流数据处理算法可以延伸到大数据处理上,因为大数据集随着时间积累而可以被认为是具有不规律时间间隔的数据流。
协方差是一个随机变量随另一个随机变量变化的数值度量。当两个随机变量的协方差大于零时,说明随机变量偏离其期望值的方向相同;当协方差小于零时,随机变量偏离其期望值的方向相反;协方差等于零,则随机变量偏离期望值的方向没有关系。协方差绝对值大小可反映同向性程度。因此基于协方差实时判断流数据变化同向性及其程度显而易见,而困难和挑战在于如何实时地在流数据上计算协方差。
用传统方法在流数据上计算协方差涉及大量的重复数据访问和计算。例如,要为数据流上的包含最新的n个数据元素对的一个计算窗口计算协方差,这样每接收一个数据元素对,该数据元素对被加入计算窗口而第n个数据元素对被移出计算窗口,计算窗口中的所有n个数据元素对会被访问来重新计算协方差,尽管其中n-1个数据元素对没有变化。使用计算窗口中的所有数据元素来重新计算协方差涉及重复数据访问和计算,因此耗时并浪费资源。
取决于需要,计算窗口的长度可能非常大,例如计算窗口中的数据元素可能被存储于在云平台的成千上万台计算设备上。在一些数据变化后的流数据上用传统方法重新计算协方差无法做到实时处理并且占用和浪费大量计算资源,也使得一些实时地判断数据流变化同向性及其程度可能无法满足需求地实现。
发明内容
本发明拓展到方法,系统,和计算设备可读媒体以迭代方式计算数据流的协方差从而可以实时地判断数据流变化同向性及其程度。计算系统包含一个或多个计算设备。每个计算设备包含一个或多个处理器。计算系统可以访问一个或两个数据流。计算系统包含一个或两个缓冲区在一个或多个存储媒介上。计算系统保持一个计算窗口长度计数器。计算窗口长度计数器指明缓冲区的计算窗口中数据元素对的数量。为一个调整后计算窗口迭代计算协方差包括基于调整前计算窗口的协方差的两个以上组件迭代计算调整后计算窗口的协方差的两个以上组件然后根据需要基于迭代计算的组件生成调整后计算窗口的协方差(样本或总体)。迭代计算协方差只需要访问和使用迭代计算的组件,新加入和去除的数据元素对而避免访问调整后计算窗口中的所有数据元素和执行重复计算从而降低数据访问延迟,提高计算效率,节省计算资源和降低计算系统能耗,使一些实时地判断数据流变化同向性及其程度从不可能变为可能。
计算窗口的和或平均值是必须迭代计算的特殊组件。和或平均值可以被直接或间接迭代计算。对于一个给定的协方差迭代算法,假设除了和及平均值之外所用到的其它组件个数为p(p≥1)。直接迭代的组件个数为v(v≥1),则间接迭代的组件个数为w=p-v(w≥0)。
计算系统初始化计算窗口长度n(n>1)和存储在一个或两个缓冲区上的数据流的一个调整前计算窗口的一个和或一个平均值或一个和及一个平均值,以及协方差的其它一个或多个组件。该两个以上组件的初始化包括基于调整前计算窗口中的数据元素通过组件的定义计算两个以上组件或从计算设备可读媒体上接收或访问已计算的两个以上组件。计算窗口长度的初始化包括数计算窗口中的数据元素个数或访问或接收特定的计算窗口长度。
计算系统接收一个要加入计算窗口的新的数据元素对。
计算系统保存新的数据元素对到一个或两个缓冲区中。
计算系统通过从调整前计算窗口中去除最老的数据元素对和向调整前计算窗口加入接收的数据元素对来调整调整前计算窗口。
计算系统迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值。
计算系统直接迭代计算调整后计算窗口的协方差的除和及平均值之外的v(1≤v≤p)个组件。直接迭代计算这一个或多个组件包括:访问去除的数据元素对和加入的数据元素对;访问调整前计算窗口的v个组件;从v个组件中的每个组件中数学地去除被去除的数据元素对的贡献;以及向v个组件中的每个组件数学地加入被加入的数据元素对的贡献。
计算系统根据需要间接迭代计算调整后计算窗口的协方差的w=p-v个组件。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件中的每一个组件。间接迭代计算一个组件包括:访问并使用除该组件之外的一个或多个组件来计算该组件。这一个或多个组件可能是经过初始化的,直接迭代计算的或间接迭代计算的。
计算系统根据需要基于一个或多个迭代计算的调整后计算窗口的协方差的组件产生调整后计算窗口的协方差(样本协方差或总体协方差)。
计算系统可以持续地接收一个新的数据元素对,保存新的数据元素对到一个或两个缓冲区中,调整计算窗口,迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值,直接迭代计算v(1≤v≤p)个组件,根据需要间接迭代计算w=p-v个组件和计算协方差(样本协方差或总体协方差)。计算系统可以根据需要多次重复这个过程。
本简述是以简化的方式介绍一些选择的概念,它们将在下面被进一步详细描述。本简述即不是为了鉴定权利要求的主题的关键特点或必要特点,也不是为了用于帮助确认权利要求的主题所包括的范围。
本发明的其它特征和优点将在下面的描述中体现出来,会部分地从描述中明显体现,或从本发明的实践中学到。本发明的特征和优点可从附加的权利要求书中特别指出的方法设备及其组合中实现和得到。本发明的这些和其它特征将在下面的描述和附加的权利要求书或本发明的实践中变得更加全面清晰。
附图说明
为描述能够获得本发明的上述的和其它的优点和特点的方式,上面简述的本发明的一个更具体的描述将通过参照附加的图表中所显示的特定的实施方案来展现出来。本发明将通过下列的图表更加详细和具体地来描述和解释,请理解这些图表只是描述了本发明的典型实施方案,因此它们不应被理解为对本发明的范围的限制:
图1图示了为流数据迭代计算协方差的一个例子计算系统的高层概述。
图1-1图示了一个为流数据迭代计算协方差的支持两个数据流并且所有组件都是直接迭代计算的计算系统架构的例子。
图1-2图示了一个为流数据迭代计算协方差,支持两个数据流并且部分组件直接迭代计算,部分组件间接迭代计算的计算系统架构的例子。
图1-3图示了一个为流数据迭代计算协方差,支持由两个数据流的数据元素交叉组成的单输入数据流并所有组件都直接迭代计算的计算系统架构的例子。
图1-4图示了一个为流数据迭代计算协方差,支持由两个数据流中的数据元素交叉组成的单输入数据流,并且部分组件直接迭代计算,部分组件间接迭代计算的计算系统架构的例子。
图2图示了一个为流数据迭代计算协方差的方法流程图的例子。
图3图示了在流数据上为迭代计算协方差被计算系统访问的计算窗口中的数据元素。
图4-1图示了协方差的定义以及计算窗口上计算协方差的传统方程。
图4-2显示了第一个协方差迭代计算算法(迭代算法1)。
图4-3显示了第二个协方差迭代计算算法(迭代算法2)。
图4-4显示了第三个协方差迭代计算算法(迭代算法3)。
图5-1显示了用于一个计算实例的第一个计算窗口。
图5-2显示了用于一个计算实例的第二个计算窗口。
图5-3显示了用于一个计算实例的第三个计算窗口。
图6-1图示了计算窗口长度为4时,传统协方差算法和迭代协方差算法的计算工作量的对比。
图6-2图示了计算窗口长度为1,000,000时,传统协方差算法和迭代协方差算法的计算工作量的对比。
具体实施方法
计算协方差是判断流数据变化同向性及其程度的有效方法。本发明拓展到通过迭代计算长度为n(n>1)的计算窗口的协方差从而可实时判断流数据变化同向性及其程度的方法,系统,和计算设备可读媒体。一个计算系统包含一个或多个基于处理器的计算设备。每个计算设备包含一个或多个处理器。该计算系统包含一个或两个缓冲区用于保存流数据元素。来自数据流的,涉及到协方差计算的多个数据元素组成一个调整前的计算窗口。计算窗口长度n指明数据流的一个计算窗口中的数据元素对个数。本发明的实施方案包括基于调整前计算窗口的协方差的两个以上组件迭代计算调整后计算窗口的协方差的两个以上组件,然后根据需要基于迭代计算的组件生成调整后计算窗口的协方差。迭代计算协方差避免访问调整后计算窗口中的所有数据元素和执行重复计算从而提高计算效率,节省计算资源和降低计算系统能耗,使得一些实时判断流数据变化同向性及其程度从不可能变为可能。
计算系统包含一个或两个输入缓冲区用于保存大数据或流数据元素。该一个或两个缓冲区可以在内存或其它计算机可读媒介,如硬盘或其它媒介中,甚至可以是分配在多个计算设备上的多个分布式文件,它们端到端互联而形成一个或两个”循环缓冲区”。
协方差计算需要来自两个变量的观察数据。它们应该成对出现。所以来自两个变量的观察数据被组成对加入到一个计算窗口里。两个变量的数据可以分别输入和存储或以相互交错的方式结合在一起输入和存储。前一种情况会有两个输入数据流,其每个数据流包含一个变量的数据元素,可以用两个数据缓冲区分别存储其中一个变量的数据元素。后一种情况会有一个输入数据流其中每对数据元素包含两个变量的各一个数据元素,可以用一个缓冲区存储。
在本文中,协方差的一个组件是出现在协方差定义公式中或其定义公式的任何转换中的一个量或表达式。协方差是它自己最大的组件。协方差可基于一个或多个组件或它们的组合被计算,所以多个算法支持迭代协方差计算。以下是一些协方差的组件的例子。
一个组件可以被直接迭代计算或间接迭代计算。它们的区别是当一个组件被直接迭代计算时该组件是通过该组件在前一轮计算的值来计算的,而当该组件被间接迭代计算时该组件是用该组件之外的其它组件计算的。
对于一个给定的组件,它也许在一个算法中被直接迭代计算但在另一个算法中被间接迭代计算。
对于任意一个算法,至少会有两个组件被迭代计算,其中一个组件被直接迭代计算,另一个组件被直接或间接迭代计算。对于一个给定的算法,假设使用的不同组件的总数是p(p>1),如果直接迭代计算的组件个数是v(1≤v≤p),那么间接迭代计算的组件的个数是w=p-v(0≤w<p)。可能所有的组件都被直接迭代计算(这种情况下v=p>1并且w=0)。但是,无论协方差的结果是否在一个特定的轮次被需要和访问,直接迭代计算的组件都必须被计算。
对于一个给定算法,如果一个组件被直接迭代计算,则该组件必须被计算(即每当一个已有的数据元素对被从计算窗口中去除和每当一个数据元素对被加入到计算窗口中时)。但是,如果一个组件被间接迭代计算,则该组件可以通过使用该组件之外的其它一个或多个组件来根据需要,即只有当协方差需要被计算和访问时,被计算。这样,当协方差在某一个计算轮次不被访问时,只有少量的组件需要被迭代地计算。一个间接迭代计算的组件也许会被用于一个组件的直接迭代计算,在这种情况下,该间接迭代计算的组件的计算不可省略。
协方差可以根据需要被计算。当协方差在每次计算窗口有变化而不需要被访问时,计算系统只需要为每次数据变化迭代计算一个或多个组件。迭代计算一个或多个组件避免了访问之前的所有输入和做重复计算因此提高计算效率。需要被访问时,协方差可以根据一个或多个组件被计算。根据需要,计算系统可以用一个或多个组件计算计算窗口的协方差(样本协方差或总体协方差)。
在本说明书和权利要求书中,一个“循环缓冲区”是使用单一的有固定长度的似乎首尾相连的“缓冲区”的一个数据结构,有时也被称为环缓冲区。该“缓冲区”既可以是一个常用的循环缓冲区其通常是分配在本地内存里的一块空间,也可以是一个“虚拟循环缓冲区”,其并不一定在内存里而是在硬盘上的文件甚至多台分布式计算设备上的多个分布式文件只要这些分布式文件逻辑上互相连接构成一个“循环缓冲区”。
通常,输入数据被加入到一个长度为2n的一个缓冲区或每个长度为n的两个缓冲区里。当缓冲区没有充满数据时,至少有两种做法。一种是不做协方差计算,直到缓冲区充满数据后根据组件的定义用前2n个数据计算二个或多个组件。另一种做法是当需要时可以从一开始用“通过组件进行流数据上的增量协方差”,本发明人的另一个专利申请中描述的方法,来增量计算协方差直到缓冲区被充满。一旦缓冲区被充满并且前n对数据的协方差的二个或多个组件被计算,本文提供的迭代算法可被用来迭代地计算协方差的二个或多个组件,然后协方差可基于迭代计算的组件来计算。
在本说明书和权利要求书中,一对最老的数据元素是指计算窗口中在时间上距离最新接收的数据元素对第n个近的数据元素对。
本发明的实现方案包括基于为调整前计算窗口计算的协方差的两个以上组件迭代地计算调整后的计算窗口的协方差的两个以上组件。其中计算窗口的和或平均值是必须迭代计算的特殊组件。和或平均值可以被直接或间接迭代计算。对于一个给定的协方差迭代算法,假设除了和及平均值之外所用到的其它组件个数为p(p≥1)。直接迭代的组件个数为v(v≥1),则间接迭代的组件个数为w=p-v(w≥0)。
计算系统初始化一个或两个缓冲区中的一个给定长度n(n>1)的调整前计算窗口的一个和或一个平均值或一个和及一个平均值,以及协方差的其它一个或多个组件。该两个以上组件的初始化包括根据其定义基于该计算窗口中的数据元素来计算或从一个或多个计算设备可读媒体上访问或接收已经计算过的组件。
计算系统在接收一个要加入计算窗口的新的流数据元素对。
计算系统保存新的数据元素对到一个或两个缓冲区中。
计算系统通过从调整前计算窗口中去除最老的数据元素对和向调整前计算窗口加入接收的数据元素对来调整调整前计算窗口。
计算系统迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值。
计算系统为调整后计算窗口直接迭代计算协方差的除和及平均值之外的一个或多个v(1≤v≤p)组件。直接迭代计算v(1≤v≤p)个组件包括:访问去除的数据元素对和加入的数据元素对;访问为调整前计算窗口计算的v个组件;从v个组件中的每个组件中数学地去除被去除的数据元素对的任何贡献;向v个组件中的每个组件数学地加入被加入的数据元素对的任何贡献。
计算系统根据需要间接迭代计算调整后计算窗口的协方差的w=p-v个组件。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件中的每一个组件。间接迭代计算一个组件包括:访问并使用除该组件之外的一个或多个组件来计算该组件。这一个或多个组件可能是经过初始化的,直接迭代计算的或间接迭代计算的。
计算系统根据需要,基于为调整后计算窗口迭代计算协方差的一个或多个组件,为调整后计算窗口计算协方差(样本协方差或总体协方差)。
计算系统可以持续地接收要加入计算窗口的数据元素对,保存接收的数据元素对到一个或两个缓冲区,调整计算窗口,迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值,直接迭代计算一个或多个v(1≤v≤p)组件,根据需要间接迭代计算w=p-v个组件,根据需要基于一个或多个迭代计算的组件计算协方差,并根据需要多次重复这个过程。
本发明的实施方案可以包括或利用包含计算设备硬件,例如一个或多个处理器和以下更详细描述的存储设备,专用的或通用的计算设备。本发明实施方案的范围也包括物理的及其它用于携带或存储计算设备可运行指令和/或数据结构的计算设备可读媒体。这些计算设备可读媒体可以是通用或专用计算设备可访问的任何媒体。存储计算设备可运行指令的计算设备可读媒体是存储媒体(设备)。携带计算设备可运行指令的计算设备可读媒体是传输媒体。因此,以举例而非限制的方式,本发明的实施方案可以包括至少两种不同类型的计算设备可读媒体:存储媒体(设备)和传输媒体。
存储媒体(设备)包括随机存取存储器(RAM),只读存储器(ROM),电可擦除可编程只读存储器(EEPROM),只读光盘存储器(CD-ROM),固态硬盘(SSD),闪存(Flash Memory),相变存储器(PCM),其它类型存储器,其它光学磁盘存储,磁盘存储器或其它磁性存储设备,或任何其它能用于存储所需要的以计算设备可运行指令或数据结构形式构成的程序代码并且其可以被通用或专用计算设备访问的媒体。
一个“网络”被定义为使计算设备和/或模块和/或其它电子设备能够传输电子数据的一个或多个数据链接。当信息被网络或另外的通讯连接(有线,无线,或有线和无线的组合)传输或提供给计算设备时,计算设备把连接视为传输媒体。传输媒体可包括用于携带所需要的以计算设备可运行指令或数据结构形式构成的程序代码,并且其可以被通用或专用计算设备访问的一个网络和/或数据链接。以上的组合也应包括在计算设备可读媒体的范围之内。
此外,在应用不同计算设备组件时,计算设备可运行指令或数据结构形式的程序代码可以从传输媒体自动传输到存储媒体(设备)(或反过来)。例如,从网络或数据链接上接收的计算设备可运行指令或数据结构可以被暂存进网络接口模块(例如,NIC)中的随机存取存储器中,然后最终传输到计算设备的随机存取存储器和/或到计算设备的一个较小易变的存储媒体(设备)。所以,应当理解存储媒体(设备)可以被包括在也(或甚至主要)应用传输媒体的计算设备组件里。
计算设备可运行指令包括,例如,指令和数据,当被处理器运行时,使得通用计算设备或专用计算设备去执行一个特定功能或一组功能。计算设备可运行指令可以是,例如,二进制,中间格式指令例如汇编代码,或甚至源代码。虽然描述的客体是用结构特征和/或方法动作的具体语言描述的,应当理解在附加的权利要求书中定义的客体不一定局限于以上描述的特征或动作。而是,描述的特征或动作仅是以实现权利要求的例子形式而公开的。
本发明的实施方案可以在由多种类型的计算设备配置的网络计算环境中实现,这些计算设备包括个人电脑,台式机,笔记本电脑,信息处理器,手持设备,多处理系统,基于微处理器或可编程的电子消费品,网络电脑,小型计算机,主计算机,超级计算机,移动电话,掌上电脑,平板电脑,呼机,路由器,交换机及类似产品。本发明的实施方案也可以应用于通过网络互联(即可通过有线数据链接,无线数据链接,也可以是有线数据链接与无线数据链接的结合)的执行任务的本地或远程计算设备构成的分布式系统环境。在分布式系统环境中,程序模块可以被存储在本地或远程存储设备上。
本发明的实施方案也可以在云计算环境里实现。在本描述及后续的权利要求书中,“云计算”被定义为一个使得能够按需通过网络访问到可配置计算资源的共享池的模型。例如,云计算可以被市场利用去提供普及和方便的按需访问可配置计算资源的共享池。可配置计算资源的共享池可以通过虚拟化很快预备并且以低管理开销或低服务提供商互动来提供,然后做相应的调整。
云计算模型可以包括各种特征例如,按需自服务,宽带网络访问,资源收集,快速收放,计量服务等等。云计算模型也可以各种服务模式来体现,例如,软件做为服务(“SaaS”),平台做为服务(“PaaS”),以及设施做为服务(“IaaS”)。云计算模型也可以通过不同的部署模型例如私有云,社区云,公共云,混合云等等来部署。
下面的章节中会给出几个例子。
图1图示了为流数据迭代计算协方差的一个例子计算系统100的高层概述。参考图1,计算系统100包括由不同网络,例如局域网1021,无线网1022和互联网1023等等,连接的多个设备。多个设备包括,例如,数据分析引擎1007,存储系统1011,实时数据流1006,以及可以安排数据分析任务和/或查询数据分析结果的多台分布的计算设备,例如个人电脑1016,手持设备1017和台式机1018等等。
数据分析引擎1007可以包括一个或多个处理器,例如CPU 1009和CPU 1010,一个或多个系统内存,例如系统内存1008,及组件计算模块131和协方差计算模块191。模块131的细节会在其它图表中更详细地图示(例如,图1-1和图1-2)。存储系统1011可以包括一个或多个存储媒体,例如存储媒体1012和存储媒体1014,其可以用于存放大数据集。存储系统1011里的数据集可以被数据分析引擎1007访问。
通常,数据流1006可以包括来自不同数据源的流数据,例如,股价,音频数据,视频数据,地理空间数据,互联网数据,移动通讯数据,网游数据,银行交易数据,传感器数据,和/或闭合字幕数据等。这里举例描绘了几个,实时数据1000可以包括从感应器1001,股票1002,通讯1003和银行1004等等实时收集的数据。数据分析引擎1007可以接收来自数据流1006的数据元素。来自不同数据源的数据可以被存储在存储系统1011并且为大数据分析所访问。
请理解图1是以非常简化的形式介绍一些概念,例如,分布设备1016和1017可能经过防火墙才联到数据分析引擎1007,数据分析引擎1007从数据流1006和/或存储系统1011访问或接收的数据可能经过数据过滤器筛选,等等。
图1-1图示了为有两个输入的数据流迭代计算样本协方差和/或总体协方差,其所有(v=p>1)组件被直接迭代计算,的一个例子计算系统架构100A。关于计算系统架构100A,这里将先只介绍该架构中的主要部件的功能和相互关系,而关于这些部件如何协作共同完成迭代协方差计算的过程将在后面结合图2中描述的流程图一起介绍。图1-1图示了图1显示的1006和1007。参考图1-1,计算系统架构100A包括组件计算模块131和协方差计算模块191。组件计算模块131可以是通过高速数据总线与一个或多个存储媒体紧密耦合的或通过一个网络,如局域网,广域网,甚至互联网与由存储系统管理的一个或多个存储媒体松散耦合的。相应地,组件计算模块131和任何其它连接的计算设备和它们的组件,可以在网络上发送和接收消息相关数据(例如,互联网协议(“IP”)数据报和其它使用IP数据报的高层协议,例如,用户数据报协议(“UDP”),实时流协议(“RTSP”),实时传输协议(“RTP”),微软媒体服务器(“MMS”),传输控制协议(“TCP”),超文本传送协议(“HTTP”),简单邮件传送协议(“SMTP”),等等)。组件计算模块131的输出会被作为协方差计算模块191的输入,协方差计算模块191可以生成样本协方差192和/或总体协方差193。
通常,数据流190X和190Y可以是顺序的数字编码信号(即数据的包或数据包)分别用于传输或接收传输过程中的信息。数据流190X和190Y可以包含来源于不同种类的数据,例如,股价,音频数据,视频数据,地理空间数据,互联网数据,移动通讯数据,网游数据,银行交易数据,传感器数据,闭合字幕数据,和实时文字等。数据流190X和190Y可以是实时流或流化的存储数据。
随着流数据元素对的接收,流数据元素可以被放在循环缓冲区121X和121Y中。数据元素对(101X,101Y)在接收数据元素对(102X,102Y),(103X,103Y),和(104X,104Y)之前接收。例如,数据元素101X被放在位置121XA,数据元素101Y被放在位置121YA,数据元素102X被放在位置121XB,数据元素102Y被放在位置121YB,数据元素103X被放在位置121XC,数据元素103Y被放在位置121YC,数据元素104X被放在位置121XD,数据元素104Y被放在位置121YD,数据元素105X被放在位置121XE,数据元素105Y被放在位置121YE。
然后,数据元素106X和106Y可以被接收。数据元素106X可以被放在位置121XA(覆盖数据元素101X)。数据元素106Y可以被放在位置121YA(覆盖数据元素101Y)。
如图所示,循环缓冲区121X有5个位置,121XA-121XE,循环缓冲区121Y有5个位置,121YA-121YE。这两个缓冲区有个包含四个(n=4)数据元素对的计算窗口122XY。计算窗口122XY中的数据元素可以随着新的数据元素被放入循环缓冲区121X和121Y而倒换。例如,当数据元素105X被放入位置121XE和数据元素105Y被放入位置121YE时,计算窗口122XY会变成计算窗口122XYA。当数据元素106X被放入位置121XA和数据元素106Y被放入位置121YA时,计算窗口122XYA会变成计算窗口122XYB。
参考计算系统架构100A,通常组件计算模块131包含为直接迭代计算计算窗口的一组n个数据元素对的v(v=p>1)个组件的v个组件计算模块。v是迭代计算协方差的给定算法中直接迭代计算的组件的个数,它随着使用的迭代算法不同而不同。如图1-1中所示,组件计算模块131包含一个组件Cd1计算模块161和一个组件Cdv计算模块162,它们之间还有v-2个其它组件计算模块,它们可以是组件Cd2计算模块,组件Cd3计算模块,……,以及组件Cdv-1计算模块。每个组件计算模块计算特定的组件。每个组件计算模块包含一个为第一个计算窗口初始化一个组件的初始化模块和一个为调整后计算窗口直接迭代计算该组件的算法。例如,组件Cd1计算模块161包含初始化模块132来初始化组件Cd1和迭代算法133来迭代计算组件Cd1,组件Cdv计算模块162包含初始化模块138来初始化组件Cdv和迭代算法139来迭代计算组件Cdv。
初始化模块132可以在初始化组件Cd1时使用或在协方差计算被重置时使用。同样,初始化模块138可以在初始化组件Cdv时使用或在协方差计算被重置时使用。
参考图1-1,计算系统架构100A还包括协方差计算模块191。协方差计算模块191可根据需要基于一个或多个初始化或迭代计算的组件计算样本协方差192和/或总体协方差193。
图1-2图示了为有两个输入的数据流迭代计算协方差并且部分(v(1≤v<p))组件直接迭代计算,部分(w=p-v)组件间接迭代计算的一个例子计算系统架构100B。在一些实现中,计算系统架构100B和100A之间的区别是架构100B包括组件计算模块135。除此之外,和100A有同样标记号的部分都按同样的方式工作。为了不重复之前在100A描述里面解释过的东西,只有不同的部分会在这里讨论。100B里面的数字v和100A里面的数字v可能不同,因为有些100A里被直接迭代计算的组件会在100B里被间接迭代计算。在100A中,v=p>1,但在100B中,1≤v<p。参考图1-2,计算系统架构100B包括组件计算模块135。组件计算模块131的输出可以作为组件计算模块135的输入,计算模块131和135的输出可以作为协方差计算模块191的输入,协方差计算模块191可以生成样本协方差192和/或总体协方差193。组件计算模块135通常包括w=p-v个组件计算模块来间接迭代计算w个组件。例如,组件计算模块135包括组件计算模块163用于间接迭代计算组件Ci1,组件计算模块164用于间接迭代计算组件Ciw,以及它们之间的其它w-2个组件计算模块。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件的每一个。间接迭代计算一个组件包括访问和使用除该组件本身之外的一个或多个组件。那一个或多个组件可以是被初始化,直接迭代计算或间接迭代计算过的。
图1-3图示了一个为流数据迭代计算协方差并且支持由两个数据流中的数据元素交叉组成的单输入并且所有(v=p≥1)个组件被直接迭代计算的计算系统架构100C例子。计算系统架构100C和计算系统架构100A之间的区别是架构100C用由两组数据元素交叉组成的一个单输入并且100C用一个缓冲区为存储数据元素。除了100C的输入模式以外,和100A有一样参考数的部分都按同样的方式工作。为了不重复之前在100A描述里面解释过的东西,只有不同的部分会在这里讨论。图1-3中的数据流190包括来自两个变量X和Y的数据元素是交叉的,即每对数据包含变量X的一个值和变量Y的一个值。随着数据元素对被接收,数据元素可以被放在循环缓冲区121中。例如,数据元素对(101x,101y),(102x,102y),(103x,103y),(104x,104y)和(105x,105y)可以分别放在位置(121XA,121YA),(121XB,121YB),(121XC,121YC),(121XD,121YD)和(121XE,121YE)。
然后,数据元素106X和106Y可以被接收。数据元素106X可以被放在位置121XA(覆盖101X)。数据元素106Y可以被放在位置121YA(覆盖101Y)。
如图1-3所示,循环缓冲区121有10个位置,121XA-121YE,和包含8个数据元素(4对)的计算窗口。计算窗口122包含做协方差计算的数据元素。计算窗口122中的数据元素在一个缓冲区中交叉保存。计算窗口122中X变量的4个数据元素101X,102X,103X和104X分别存在位置121XA,121XB,121XC和121XD。计算窗口122中Y变量的4个数据元素101Y,102Y,103Y和104Y分别存在位置121YA,121YB,121YC和121YD。计算窗口122中的数据元素可以随着新的数据元素对被放入循环缓冲区121而轮转。例如,当数据元素105X被放入位置121XE和数据元素105Y被放入位置121YE时,计算窗口122会变成计算窗口122A。当数据元素106X被放入位置121XA和数据元素106Y被放入位置121YA时,计算窗口122A会变成计算窗口122B。
图1-4图示了一个为流数据迭代计算协方差并且支持由两个数据流的数据元素交叉组成的单输入并且部分(v(1≤v<p))组件直迭代计算,部分(w(w=p-v))组件间接迭代计算的计算系统架构100D例子。在一些实现中,计算系统架构100D和100C之间的区别是架构100D包括组件计算模块135。除了100D里的组件计算模块135以外,和100A和100C有同样标记号的部分都按同样的方式工作。为了不重复分别在100A和100C描述里面解释过的东西,只有不同的部分会在这里讨论。100D里面的数字v和100C里面的数字v可能不同,因为有些100C里被直接迭代计算的组件会在100D里被间接迭代计算。在100C中,v=p≥1,但在100D中,1≤v<p。参考图1-4,计算系统架构100D包括组件计算模块135。组件计算模块135通常包括w=p-v个组件计算模块为了间接迭代计算w个组件。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件的每一个。间接迭代计算一个组件包括访问和使用除它自己之外的一个或多个组件。这一个或多个组件可以是被初始化,直接迭代计算或间接迭代计算过的。
图2图示了为流数据迭代计算协方差的一个例子方法200的流程图。方法200会分别结合计算系统架构100A,100B,100C和100D的组件和数据一起描述。
方法200包括为一个指定长度为n(n>1)的调整前计算窗口初始化该调整前计算窗口的协方差的p(p>1)个组件(201)。例如,在计算系统架构100A,100B,100C和100D中,初始化模块132可以用贡献151(数据元素对(101x,101y)的贡献),贡献152(数据元素对(102x,102y)的贡献)和贡献153(其它数据元素对(103x,103y),(104x,104y)......的贡献)的值初始化组件Cd1141。同样,初始化模块138可以用贡献181(数据元素对(101x,101y)的贡献),贡献182(数据元素对(102x,102y)的贡献)和贡献183(其它数据元素对(103x,103y),(104x,104y)......的贡献)的值初始化组件Cdv145。
方法200包括接收一个要加入调整前计算窗口的数据元素对(202)。例如,数据元素对(105X,105Y)可在数据元素对(102X,102Y),(103X,103Y),和(104X,104Y)被接收后被接收。
方法200包括保存接收的数据元素对到一个和或两个缓冲区中(203)。例如,参考100A和100B,数据元素对(105X,105Y)可以分别存在缓冲区121X的121XE和缓冲区121Y的121YE,参考100C和100D,数据元素对(105X,105Y)可以存在缓冲区121的121XE和121YE。
方法200包括调整调整前计算窗口(204)。调整调整前计算窗口包括从调整前计算窗口去除最老的数据元素对(205)和加入接收的数据元素对到调整前计算窗口(206)。例如,数据元素对(101X,101Y)从计算窗口122去除,数据元素对(105X,105Y)被加入到计算窗口122后,计算窗口122会变成调整后的计算窗口122A。
方法200包括为调整后计算窗口直接迭代计算协方差的v个组件(207),包括:访问从调整前计算窗口去除的数据元素对和新加入调整前计算窗口的数据元素对(208);访问调整前计算窗口的协方差的v个组件(209);从访问的每一个组件数学地去除被去除的数据元素对的任何贡献(210);及向访问的每一个组件数学地加入新加入的数据元素对的任何贡献(211)。细节描述如下。
为调整后计算窗口直接迭代计算协方差的v个组件包括访问从调整前计算窗口去除的数据元素对和新加入调整前计算窗口的数据元素对(208)。例如,迭代算法133可以访问数据元素(101X,101Y)和(105X,105Y),迭代算法139也可以访问数据元素(101X,101Y)和(105X,105Y)。
为调整后计算窗口直接迭代计算协方差的v个组件包括访问调整前计算窗口的协方差的v(1≤v≤p)个组件(209)。例如,迭代算法133可访问组件Cd1141,迭代算法139可访问组件Cdv145。
直接迭代计算调整后的计算窗口的协方差的v个组件包括数学地从v个组件中的每一个去除被去除的数据元素对的任何贡献(210)。例如,直接迭代计算组件Cd1143可以包括贡献去除模块133A数学地从组件Cd1141去除贡献151(数据元素对(101X,101Y)的贡献),直接迭代计算组件Cdv147可以包括贡献去除模块139A数学地从组件Cdv145去除贡献181(数据元素对(101X,101Y)的贡献)。
直接迭代计算调整后的计算窗口的协方差的v个组件包括向访问的每个组件数学地加入被加入的数据元素对的任何贡献(211)。例如,直接迭代计算组件Cd1143可以包括贡献增加模块133B数学地增加贡献154到组件Cd1141,直接迭代计算组件Cdv147可以包括贡献增加模块139B数学地增加贡献184到组件Cdv145。贡献154和184都是来自数据元素对(105x,105y)的贡献。
如图1-1,1-2,1-3和1-4所示,组件Cd1143包括贡献152(数据元素对(102X,102Y)的贡献),其它贡献153(数据元素对(103X,103Y)和(104X,104Y)的贡献),和贡献154(数据元素对(105X,105Y)的贡献)。同样,组件Cdv147包括贡献182(数据元素对(102X,102Y)的贡献),其它贡献183(数据元素对(103X,103Y)和(104X,104Y)的贡献),和贡献184(数据元素对(105X,105Y)的贡献)。
协方差可以根据需要被计算,即,只需要被访问时计算,但是每当一个数据元素对被去除和一个数据元素对被增加到计算窗口时,v个组件必须被计算。
当协方差被访问并且v<p(即,不是所有组件都被直接迭代计算)时,方法200包括根据需要间接迭代计算w=p-v个组件(212)。这w个组件只有当协方差被访问时才会计算。例如,参考图1-2和1-4其部分组件直接迭代计算,部分组件间接迭代计算,计算模块163可以基于组件Ci1之外的一个或多个组件来间接迭代计算组件Ci1,计算模块164可以基于组件Ciw之外的一个或多个组件来间接迭代计算组件Ciw。这一个或多个组件可以是初始化,直接迭代计算,或间接迭代计算过的。
方法200包括用一个或多个初始化或迭代计算过的组件根据需要计算样本协方差(213)和/或总体协方差(214)。例如,参考图1-1和图1-3,协方差计算模块191可以基于组件Cd1143到组件Cdv147范围内的一个或多个组件计算样本协方差192和/或总体协方差193。
202-211可以随着更多数据元素对的接收被重复。212-214可以根据需要被重复。每接收一个数据元素对就开始新一轮迭代计算。前一轮迭代计算中的调整后计算窗口变为新一轮迭代计算的调整前计算窗口。例如,计算完组件Cd1143到组件Cdv147范围内的组件之后,数据元素对(106X,106Y)可以被接收(202)。(106X,106Y)可以分别放在位置121XA覆盖数据元素101X和121YA覆盖数据元素101Y(203)。通过去除最老的数据元素对(102X,102Y)(205)和加入要被加入的数据元素对(106X,106Y)(206),调整后的计算窗口122A可以变成调整后的计算窗口122B(204)。
迭代算法133可以用组件Cd1143(调整后的计算窗口122A的)直接迭代计算组件Cd1144(调整后的计算窗口122B的)(207)。迭代算法133可以访问去除的数据元素对(102X,102Y)和加入的数据元素对(106X,106Y)(208)。迭代算法133可以访问组件Cd1143(209)。直接迭代计算组件Cd1144可以包括贡献去除模块133A从组件Cd1143数学地去除贡献152(即,去除的数据元素对(102X,102Y)的贡献)(210)。直接迭代计算组件Cd1144可以包括贡献增加模块133B数学地增加贡献155(即,增加的数据元素对(106X,106Y)的贡献)到组件Cd1143上(211)。同样,迭代算法139可以用组件Cdv147(调整后的计算窗口122A的)直接迭代计算组件Cdv148(调整后的计算窗口122B的)(207)。迭代算法139可以访问去除的数据元素对(102X,102Y)和加入的数据元素对(106X,106Y)(208)。迭代算法139可以访问组件Cdv147(209)。直接迭代计算组件Cdv148可以包括贡献去除模块139A从组件Cdv147数学地去除贡献182(即,去除的数据元素对(102X,102Y)的贡献)(210)。直接迭代计算组件Cdv148可以包括贡献增加模块139B数学地增加贡献185(即,增加的数据元素对(106X,106Y)的贡献)到组件Cdv147上(211)。
如图1-1,1-2,1-3和1-4所示,组件Cd1144包括其它贡献153(数据元素对(103X,103Y)和(104X,104Y)的贡献),贡献154(数据元素对(105X,105Y)的贡献),和贡献155(数据元素对(106X,106Y)的贡献)。同样,组件Cdv148包括其它贡献183(数据元素对(103X,103Y)和(104X,104Y)的贡献),贡献184(数据元素对(105X,105Y)的贡献)和贡献185(数据元素对(106X,106Y)的贡献)。
方法200包括,根据需要即只有协方差被访问时,间接迭代计算w个组件和协方差。如果协方差不被访问,方法200包括继续为下一个计算窗口接收下一个要加入的数据元素对(202)。如果协方差被访问,方法200包括间接迭代计算w个组件(212),基于一个或多个迭代计算的组件计算样本协方差(213)和/或总体协方差(214)。
当下一个要加入的数据元素对被接收,组件Cd1144可被用来直接迭代计算下一个组件Cd1,组件Cdv148可被用来直接迭代计算下一个组件Cdv。
图3图示在流数据上迭代计算协方差的计算窗口300访问的数据元素。计算窗口和计算集的区别是计算窗口上的数据元素有顺序(例如,数据元素对总是从计算窗口的最左边或最右边被去除并且数据元素对可以加入计算窗口的最左边或最右边)。例如,参考图3,最早接收的数据元素会从计算窗口300的最左边被去除并且一个新接收的数据元素会增加到计算窗口300的最右边。前n个数据元素对会被访问为了计算计算窗口的一个或多个(p(p=v+w))组件。随着时间的推移,最老的数据元素会从计算窗口去除并且要加入计算窗口的,例如xn+1,然后xn+2,xn+3等,会被加入计算窗口为了直接迭代计算调整后的计算窗口的协方差的v个组件和间接迭代计算w=p-v个组件。这些迭代计算过的组件中的一个或多个会被用来计算协方差。这v个组件可以通过计算窗口去除的数据元素,加入的数据元素和前计算窗口的v个组件被直接迭代计算,而不需要访问计算窗口300里的其它数据元素。对于一个给定的迭代算法,v是个常量,所以直接迭代计算v个组件的操作数也是个常量,间接迭代计算w=p-v个组件的操作数也是个常量。所以,计算一个给定的长度为n的计算窗口的所有p个组件的计算工作量被降低为常量(即复杂度O(1))。协方差可以用一个或多个迭代计算过的组件被计算所以总体计算工作量降低了。n越大,计算量的降低越突出。
以下的部分有一些协方差的组件的例子和迭代协方差计算算法的例子。
图4-1图示协方差的定义。假设计算窗口XY={(xi,yi)|i=1,…,n}包含参与协方差计算的数据元素,数据元素x1,x2,x3,x4,……,xn是来自于预测变量X的观察数据,数据元素y1,y2,y3,y4,……,yn是来自于响应变量Y的观察数据,并且假设协方差需要被计算。假设过段时间数据元素对(xr,yr)要从计算窗口XY去除并且数据元素对(xa,ya)要加入计算窗口XY。每当一个数据元素对从计算窗口去除和一个数据元素对加入计算窗口后协方差的一个或多个组件需要重新被计算,该计算窗口被称为调整后的计算窗口,一轮新的迭代计算开始。
方程401和403是分别为第k轮计算XY里变量X的所有数据元素的总和XSk和平均值的传统方程。方程402和404是分别为第k轮计算XY里变量Y的所有数据元素的总和YSk和平均值的传统方程。方程405和406是分别为第k轮计算XY的样本协方差Covs(X,Y)k和总体协方差Covp(X,Y)k的传统方程。方程407和409是分别为第k+1轮计算调整后的XY里变量X的所有数据元素的总和XSk+1和平均值的传统方程。方程408和410是分别为第k+1轮计算调整后的XY里变量Y的所有数据元素的总和YSk+1和平均值的传统方程。方程411和412是分别为第k+1轮计算调整后的XY的样本协方差Covs(X,Y)k+1和总体协方差Covp(X,Y)k+1的传统方程。
为展示如何利用组件迭代计算协方差,三个不同的迭代协方差算法被提供作为例子。
图4-2说明第一个例子迭代协方差计算算法(迭代算法1)。方程413和415可分别被用来初始化XY里变量X的所有数据元素的XSk和/或方程414和416可分别被用来初始化XY里变量Y的所有数据元素的YSk和/或根据需要方程417可以基于初始化的组件计算样本协方差Covs(X,Y)k。根据需要方程418可以基于初始化的组件计算总体协方差Covp(X,Y)k。假设过段时间数据元素对(xr,yr)要从计算窗口XY去除并且数据元素对(xa,ya)要加入计算窗口XY。基于组件XSk和/或方程419和421可分别被用来迭代计算调整后计算窗口XY里变量X的XSk+1和/或基于组件YSk和/或方程420和422可分别被用来迭代计算调整后计算窗口XY里变量Y的YSk+1和/或基于迭代计算的组件,方程423可以迭代计算调整后计算窗口XY的样本协方差Covs(X,Y)k+1。基于迭代计算的组件,方程424可以迭代计算调整后计算窗口XY的总体协方差Covp(X,Y)k+1。421,422,423,和424分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
图4-3说明第二个例子迭代协方差(迭代算法2)。方程425和427可分别被用来初始化XY里变量X的所有数据元素的XSk和/或方程426和428可分别被用来初始化XY里变量Y的所有数据元素的YSk和/或方程429可以被用来初始化组件SDXYk。根据需要方程430可以基于SDXYk计算样本协方差Covs(X,Y)k。根据需要方程431可以基于SDXYk计算总体协方差Covp(X,Y)k。假设过段时间数据元素对(xr,yr)要从计算窗口XY去除并且数据元素对(xa,ya)要加入计算窗口XY。基于组件XSk和/或方程432和434可分别被用来迭代计算调整后计算窗口XY里变量X的XSk+1和/或基于组件YSk和/或方程433和435可分别被用来迭代计算调整后计算窗口XY里变量Y的YSk+1和/或基于组件SDXYk,方程436可以迭代计算调整后计算窗口XY的组件SDXYk+1。基于SDXYk+1,方程437可以迭代计算调整后计算窗口XY的样本协方差Covs(X,Y)k+1。基于SDXYk+1,方程438可以迭代计算调整后计算窗口XY的总体协方差Covp(X,Y)k+1。434,435,和436分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
图4-4说明第三个例子迭代协方差计算算法(迭代算法3)。方程439和441可分别被用来初始化XY里变量X的所有数据元素的XSk和/或方程440和442可分别被用来初始化XY里变量Y的所有数据元素的YSk和/或方程443可以被用来初始化组件SXYk。根据需要方程444可以基于初始化的组件计算样本协方差Covs(X,Y)k。根据需要方程445可以基于初始化的组件计算的总体协方差Covp(X,Y)k。假设过段时间数据元素对(xr,yr)要从计算窗口XY去除并且数据元素对(xa,ya)要加入计算窗口XY。基于组件XSk和/或方程446和448可分别被用来迭代计算调整后计算窗口XY里变量X的XSk+1和/或基于组件YSk和/或方程447和449可分别被用来迭代计算调整后计算窗口XY里变量Y的YSk+1和/或基于组件SXYk,方程450可以迭代计算调整后计算窗口XY的组件SXYk+1。基于迭代计算的组件,方程451可以迭代计算调整后计算窗口XY的样本协方差Covs(X,Y)k+1。基于迭代计算的组件,方程452可以迭代计算调整后计算窗口XY的总体协方差Covp(X,Y)k+1。448,449,451和452分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
为展示迭代协方差算法以及它们与传统算法的比较,下面给出三个例子。使用3个计算窗口的数据。对于传统算法,所有3个计算窗口的计算过程完全相同。对于迭代算法,第一个计算窗口进行两个或多个组件的初始化,第二个和第三个计算窗口进行迭代计算。
图5-1,图5-2,图5-3分别显示了用于一个计算实例的第一个计算窗口,第二个计算窗口,和第三个计算窗口。计算窗口503包括XY数据流501的头4个数据元素对:(8,9),(3,2),(6,5),(1,4)。计算窗口504包括XY数据流501的4个数据元素对:(3,2),(6,5),(1,4),(4,7)。计算窗口505包括XY数据流501的4个数据元素对:(6,5),(1,4),(4,7),(2,-1)。计算窗口长度502(n)是4。
首先用传统算法分别计算计算窗口503,504和505的样本协方差。
为计算窗口503计算样本协方差:
没有任何优化的情况下,为长度为4的计算窗口计算样本协方差共有3次除法,4次乘法,9次加法和9次减法。
相同的方程和过程可被用来分别为图5-2显示的计算窗口504计算样本协方差和为图5-3显示的计算窗口505计算样本协方差。计算窗口504的样本协方差 该计算在没有优化的情况下包括3次除法,4次乘法,9次加法和9次减法。计算窗口505的样本协方差 该计算在没有优化的情况下包括3次除法,4次乘法,9次加法和9次减法。传统算法在没有优化的情况下计算长度为n的计算窗口的样本协方差时通常需要完成3次除法,n次乘法,3(n-1)次加法,和2n+1次减法。
下面用迭代算法1分别计算计算窗口503,504和505的样本协方差。
为长度为4的计算窗口503计算样本协方差:
用方程415初始化第1轮和方程416初始化第1轮
用方程417计算第1轮Covs(X,Y)1:
为计算窗口503计算样本协方差时共有3个除法,4个乘法,9个加法和9个减法。
为长度为4的计算窗口504计算样本协方差:
用方程421和422分别迭代计算第2轮的组件和
用方程423计算第2轮Covs(X,Y)2:
为计算窗口504迭代计算样本协方差时共有3个除法,2个乘法,4个加法和7个减法。
为长度为4的计算窗口505计算样本协方差:
用方程421和422分别迭代计算第3轮的组件和
用方程423计算第3轮Covs(X,Y)3:
为计算窗口505迭代计算样本协方差时共有3个除法,2个乘法,4个加法和7个减法。迭代算法的结果3.7499999999999999和传统算法的结果3.75的差别来自于舍入误差。
下面用迭代算法2分别计算计算窗口503,504和505的样本协方差。
为长度为4的计算窗口503计算样本协方差:
用方程427初始化第1轮和方程428初始化第1轮
用方程429初始化第1轮SDXY1:
用方程430计算第1轮Covs(X,Y)1:
为计算窗口503计算样本协方差时共有3个除法,4个乘法,9个加法和9个减法。
为长度为4的计算窗口504计算样本协方差:
用方程434和435分别迭代计算第2轮的组件和
用方程436初始化第1轮SDXY2:
用方程437计算第2轮Covs(X,Y)2:
为计算窗口504迭代计算样本协方差时共有3个除法,2个乘法,4个加法和7个减法。
为长度为4的计算窗口505计算样本协方差:
用方程434和435分别迭代计算第3轮的组件和
用方程436初始化第1轮SDXY3:
用方程437计算第3轮Covs(X,Y)3:
为计算窗口505迭代计算样本协方差时共有3个除法,2个乘法,4个加法和7个减法。
下面用迭代算法3分别计算计算窗口503,504和505的样本协方差。
为长度为4的计算窗口503计算样本协方差:
用方程441初始化第1轮和方程442初始化第1轮
用方程443初始化第1轮SXY1:
用方程444计算第1轮Cons(X,Y)1:
为计算窗口503计算样本协方差时共有3个除法,8个乘法,12个加法和9个减法。
为长度为4的计算窗口504计算样本协方差:
用方程448和449分别迭代计算第2轮的组件和
用方程450初始化第1轮SXY2:
SXY2=SXY1+xaya-xryr=112+4×7-8×9=68
用方程451计算第2轮Covs(X,Y)2:
为计算窗口504迭代计算样本协方差时共有3个除法,4个乘法,3个加法和5个减法。
为长度为4的计算窗口505计算样本协方差:
用方程448和449分别迭代计算第3轮的组件和
用方程450初始化第1轮SXY3:
SXY3=SXY2+xaya-xryr=68+2×(-1)-3×2=60
用方程451计算第3轮Covs(X,Y)3:
为计算窗口505迭代计算样本协方差时共有3个除,4个乘,3个加法和5个减法。
在以上三个例子中,平均值被用于迭代样本协方差计算。和也可被用于样本协方差迭代计算,只是操作数不同。类似计算也可用于总体协方差的计算。
图6-1图示了n=4时,传统样本协方差算法和迭代样本协方差算法的计算量的对比。如图所示,任何一个迭代算法都比传统算法少加法操作和减法操作。
图6-2图示了n=1,000,000时,传统样本协方差算法和迭代样本协方差算法的计算量的对比。如图所示,任何一个迭代算法都比传统算法少很多乘法操作,加法操作和减法操作。迭代计算把需要在成千上万台计算机上处理的数据只在单机上就能完成,从而大大提高计算效率,减少计算资源,降低计算设备能耗,使得一些实时判断流数据变化同向性及其程度从不可能变为可能。
本发明可以在不脱离其思想或本质特征的情况下以其它特定的方式来实现。本申请描述的实现方案从各个方面来说是仅作为示范性的而不是限制性的。因此,本发明的范围由附加的权利要求书而不是前面的描述来指明。与权利要求书中权利要求的含义和范围等价的所有变化都包含在它们的范围内。
Claims (10)
1.一种实时判断数据流变化同向性及其程度的方法,其特征在于:
由基于计算设备的计算系统,为一个或两个数据流的一个指定规模为n的调整前计算窗口,n>4,初始化一个和或一个平均值或一个和及一个平均值,以及协方差的除了和及平均值之外的一个或多个其它组件;
由基于计算设备的计算系统,接收一个要加入计算窗口的数据元素对;
由基于计算设备的计算系统,保存接收的数据元素对到一个或两个缓冲区中;
由基于计算设备的计算系统,调整该调整前计算窗口,通过:
从该调整前计算窗口中去除最早接收的数据元素对;以及
向该调整前计算窗口加入要加入的数据元素对;
由基于计算设备的计算系统,为调整后计算窗口迭代计算一个和,一个平均值,或一个和及一个平均值;
由基于计算设备的计算系统,至少基于该调整前计算窗口的协方差的那一个或多个除了和及平均值之外的其它组件,为调整后计算窗口直接迭代计算协方差的一个或多个组件,这里的迭代计算一个或多个组件包括:
访问被去除数据元素对和加入的数据元素对从而避免访问调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低能耗;访问调整前计算窗口的协方差的那一个或多个除了和及平均值之外的其它组件;以及
基于被去除的数据元素对和被加入的数据元素对,从访问的每一个组件中数学地去除被去除的数据元素对对该组件的任何贡献和数学地加入被加入的数据元素对对该组件的任何贡献从而避免调整后计算窗口中的所有数据元素对都被用来直接迭代计算协方差的一个或多个组件来增加计算效率;以及
由基于计算设备的计算系统,基于一个或多个为调整后计算窗口迭代计算的组件,为调整后计算窗口生成协方差。
2.按照权利要求1所述的方法,其特征在于:所述接收一个要加入的数据元素对包括接收多个要加入调整前计算窗口的数据元素对,该方法也进一步包括对于多个要加入的数据元素对中的每一个数据元素对进行调整计算窗口,迭代计算和或平均值或和及平均值,直接迭代计算一个或多个组件,以及为调整后计算窗口生成协方差。
3.按照权利要求2所述的方法,其特征在于:所述为调整后计算窗口生成协方差包括为调整后计算窗口生成一个协方差当且仅当该协方差被访问时。
4.按照权利要求3所述的方法,其特征在于:所述为调整后计算窗口生成协方差进一步包括由基于计算设备的计算系统为调整后计算窗口间接迭代计算协方差的一个或多个组件,间接迭代计算这一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算这一个或多个组件。
5.一个计算系统,其特征在于:
一个或多个处理器;
一个或多个存储媒体,其中的一个或两个缓冲区存储了流数据元素;以及
一个或多个计算模块,当它们被一个或多个处理器中的至少一个处理器执行时,为该一个或两个缓冲区的一个指定规模的调整后计算窗口确定协方差,这里该协方差的确定包括:
a.为该一个或两个缓冲区的一个指定规模为n的调整前计算窗口,初始化一个和或一个平均值或一个和及一个平均值,n>4,以及协方差的除和及平均值之外的一个或多个其它组件;
b.接收一个要加入到该调整前计算窗口的数据元素对;
c.保存该数据元素对到一个或两个缓冲区中;
d.调整该调整前计算窗口,包括:
从调整前计算窗口中去除最早接收的数据元素对;以及
向调整前计算窗口中加入要加入的数据元素对;
e.为调整后计算窗口直接迭代计算一个和,一个平均值,或一个和及一个平均值;
f.为调整后计算窗口直接迭代计算协方差的一个或多个除了和及平均值以外的组件,包括:
访问去除的数据元素对和加入的数据元素对而避免访问调整后计算窗口中的所有数据元素对来降低数据访问延迟,节省计算资源和降低能耗;访问调整前计算窗口的协方差的那一个或多个除了和及平均值以外的组件;
基于去除的数据元素对和加入的数据元素对,通过从访问的每一个组件中数学地去除去除的数据元素对的任何贡献和数学地加入加入的数据元素对的任何贡献来得到调整后计算窗口的协方差的那一个或多个组件,从而避免调整后计算窗口中的所有数据元素都被用来直接迭代计算协方差的一个或多个组件来提高计算效率;以及
g.基于一个或多个为调整后计算窗口迭代计算的组件,为调整后计算窗口生成协方差。
6.按照权利要求5所述的计算系统,其特征在于:该一个或多个计算模块,当它们被一个或多个处理器中的至少一个处理器执行时,多次执行b,c,d,e,f,和g。
7.按照权利要求6所述的计算系统,其特征在于:执行g当且仅当调整后计算窗口的协方差被访问时。
8.按照权利要求7所述的计算系统,其特征在于:所述g进一步包括由该计算系统为调整后计算窗口间接迭代计算协方差的一个或多个组件,间接迭代计算这一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算这一个或多个组件。
9.一种计算设备可读媒体,其包含多条计算设备可执行指令,当这些计算设备可执行指令被包含一个或多个计算设备以及一个或多个存储设备并存储了一个或两个数据流的一个或两个缓冲区的计算系统中的至少一台计算设备运行时,使得该计算系统执行一个实时判断数据流变化同向性及其程度的方法,其特征在于:
为一个或两个缓冲区的一个指定规模为n的调整前计算窗口,n>4,初始化一个和或一个平均值或一个和及一个平均值,以及协方差的除和及平均值之外的一个或多个其它组件;
接收一个要加入到该调整前计算窗口的数据元素对;
保存接收的数据元素对到一个或两个缓冲区中;
调整该调整前计算窗口,通过:
从该调整前计算窗口中去除最早接收的数据元素对;以及
向该调整前计算窗口加入要加入的数据元素对;
为调整后计算窗口迭代计算一个和,一个平均值,或一个和及一个平均值;
至少基于调整前计算窗口的协方差的那一个或多个除了和及平均值之外的其它组件,为调整后计算窗口直接迭代计算协方差的一个或多个组件,这里的迭代计算一个或多个组件包括:
访问去除的数据元素对和加入的数据元素对从而避免访问调整后计算窗口中的所有数据元素对来降低数据访问延迟,节省计算资源和降低系统能耗;
访问调整前计算窗口的协方差的那一个或多个除了和及平均值之外的其它组件;以及
基于被去除的数据元素对和被加入的数据元素对,从访问的每一个组件中数学地去除被去除的数据元素对对该组件的任何贡献和数学地加入被加入的数据元素对对该组件的任何贡献从而避免调整后计算窗口中的所有数据元素对都被用来直接迭代计算协方差的一个或多个组件来增加计算效率;以及
基于一个或多个为调整后计算窗口迭代计算的组件,为调整后计算窗口生成协方差。
10.按照权利要求9所述的计算设备可读媒体,其特征在于:所述为调整后计算窗口生成协方差进一步包括为调整后计算窗口间接迭代计算协方差的一个或多个组件,间接迭代计算这一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算这一个或多个组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811080771.0A CN110909305B (zh) | 2018-09-17 | 2018-09-17 | 一种实时判断数据流变化同向性及其程度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811080771.0A CN110909305B (zh) | 2018-09-17 | 2018-09-17 | 一种实时判断数据流变化同向性及其程度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110909305A CN110909305A (zh) | 2020-03-24 |
CN110909305B true CN110909305B (zh) | 2024-04-09 |
Family
ID=69813321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811080771.0A Active CN110909305B (zh) | 2018-09-17 | 2018-09-17 | 一种实时判断数据流变化同向性及其程度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110909305B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190543A (zh) * | 2012-12-17 | 2015-12-23 | 微软技术许可有限责任公司 | 针对循环数据流的基于可到达性的协调 |
CN105426163A (zh) * | 2015-10-27 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于mic协处理器的单数据流分位数处理方法 |
CN106687920A (zh) * | 2014-09-02 | 2017-05-17 | 起元科技有限公司 | 管理任务的调用 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9335977B2 (en) * | 2011-07-28 | 2016-05-10 | National Instruments Corporation | Optimization of a data flow program based on access pattern information |
US10264071B2 (en) * | 2014-03-31 | 2019-04-16 | Amazon Technologies, Inc. | Session management in distributed storage systems |
-
2018
- 2018-09-17 CN CN201811080771.0A patent/CN110909305B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190543A (zh) * | 2012-12-17 | 2015-12-23 | 微软技术许可有限责任公司 | 针对循环数据流的基于可到达性的协调 |
CN106687920A (zh) * | 2014-09-02 | 2017-05-17 | 起元科技有限公司 | 管理任务的调用 |
CN105426163A (zh) * | 2015-10-27 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于mic协处理器的单数据流分位数处理方法 |
Non-Patent Citations (1)
Title |
---|
一种基于滑动窗口的流数据聚类算法;蔡妮明;王翰虎;陈梅;;计算机技术与发展(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110909305A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9928215B1 (en) | Iterative simple linear regression coefficient calculation for streamed data using components | |
US9979659B1 (en) | Decremental autocorrelation calculation for big data using components | |
US9760539B1 (en) | Incremental simple linear regression coefficient calculation for big data or streamed data using components | |
US10248690B1 (en) | Decremental correlation calculation for big data or streamed data using components | |
US10275488B1 (en) | Incremental covariance calculation for big data or streamed data using components | |
US10235415B1 (en) | Iterative variance and/or standard deviation calculation for big data using components | |
US10079910B1 (en) | Iterative covariance calculation for streamed data using components | |
US10310910B1 (en) | Iterative autocorrelation calculation for big data using components | |
US10235414B1 (en) | Iterative kurtosis calculation for streamed data using components | |
CN110909305B (zh) | 一种实时判断数据流变化同向性及其程度的方法 | |
CN112035521A (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
US10394809B1 (en) | Incremental variance and/or standard deviation calculation for big data or streamed data using components | |
CN110362365B (zh) | 一种实时预测流数据变化趋势的方法 | |
CN110363321B (zh) | 一种实时预测大数据变化趋势的方法 | |
US10191941B1 (en) | Iterative skewness calculation for streamed data using components | |
US10394810B1 (en) | Iterative Z-score calculation for big data using components | |
CN112035520A (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
US10282445B1 (en) | Incremental kurtosis calculation for big data or streamed data using components | |
CN110515680B (zh) | 一种实时判断大数据自身给定延迟重复性的方法 | |
CN110515681B (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
CN110457340B (zh) | 一种实时寻找大数据自身重复规律的方法 | |
US10339136B1 (en) | Incremental skewness calculation for big data or streamed data using components | |
CN111858660A (zh) | 一种实时判断大数据或流数据变化同向性及其程度的方法 | |
CN111488380A (zh) | 一种实时判断流数据分布不对称性的方法 | |
CN112784211A (zh) | 一种实时预测大数据或流数据变化趋势的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |