CN111708972A - 一种实时判断流数据分布密度集中程度的方法 - Google Patents
一种实时判断流数据分布密度集中程度的方法 Download PDFInfo
- Publication number
- CN111708972A CN111708972A CN201910205115.7A CN201910205115A CN111708972A CN 111708972 A CN111708972 A CN 111708972A CN 201910205115 A CN201910205115 A CN 201910205115A CN 111708972 A CN111708972 A CN 111708972A
- Authority
- CN
- China
- Prior art keywords
- window
- kurtosis
- computing
- components
- adjusted
- 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.)
- Pending
Links
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
Abstract
峰度可用于判断数据分布的集中和分散程度。本发明公开了一种通过迭代计算指定规模的计算窗口的峰度的两个以上组件来实时地迭代地计算流数据的峰度从而可以实时地判断流数据分布密度集中程度的方法,系统,和计算系统程序产品。本发明的实施方案包括基于调整前计算窗口的峰度的二个以上组件迭代计算调整后计算窗口的峰度的二个以上组件,然后根据需要基于迭代计算的二个以上组件生成调整后计算窗口的峰度。迭代计算峰度可以基于最新数据实时更新计算结果并避免访问调整后计算窗口中的所有数据元素和执行重复计算从而提高计算效率,节省计算资源和降低计算系统能耗,使得实时判断流数据分布密度集中程度能够高效低耗及一些实时判断流数据分布密度集中程度的场景从不可能变为可能。
Description
技术领域
大数据或流数据分析。
背景技术
互联网,移动通讯,导航,网游,感应技术和大规模计算基础设施每天产生海量数据。大数据就是由于其巨大规模,快速变化及增长速度而超出了传统数据库系统的处理能力及传统分析方法的分析能力的数据。如何高效实时并节省资源地处理和分析大数据带给数据分析师和计算机科学家一个艰难的挑战。
流数据是从数据源不断传出并连续地被接收器接收的数据。流数据可以是传感器采集并连续传送到计算设备或电子设备上的实时数据。通常这包括连续接收有时间间隔,具有相似格式的数据元素。流数据也可以是从存储器连续读出的数据,例如存储在多个计算设备存储器上的大数据集。因此,流数据处理算法可以延伸到大数据处理上,因为大数据集随着时间积累而可以被认为是具有不规律时间间隔的数据流。
峰度反映了数据密度分布相对于正态分布的集中程度。因此计算峰度后判断流数据分布密度集中程度显而易见,困难和挑战在于如何实时地在流数据上计算峰度。
为了能够随时得到利用了最新数据的判断结果,也许要为包含最新接收的流数据的n个数据元素的一个计算窗口计算峰度,这样每接收或访问一个数据元素,该数据元素被加入计算窗口而第n个数据元素被移出计算窗口,计算窗口中的n个数据元素就会被访问来重新计算峰度。使用计算窗口中的所有数据元素来重新计算峰度涉及重复数据访问和计算,因此耗时并浪费资源。
取决于需要,计算窗口的规模可能非常大,例如计算窗口中的数据元素可能分布在云平台的成千上万台计算设备上。在一些数据变化后的流数据上用传统方法重新计算峰度无法做到实时处理并且占用和浪费大量计算资源。
发明内容
峰度可用于判断数据密度分布的集中和分散程度。本发明公开了一种通过迭代计算指定规模的计算窗口的峰度的两个以上组件来实时地迭代地计算流数据的峰度从而可以实时地判断流数据分布密度集中程度的方法,系统,和计算系统程序产品。为一个调整后计算窗口的一个数据元素迭代计算峰度包括基于调整前计算窗口的该数据元素的峰度的两个以上组件迭代计算调整后计算窗口的该数据元素的峰度的两个以上组件然后根据需要基于迭代计算的两个以上组件生成调整后计算窗口的该数据元素的峰度。迭代计算峰度只需要访问和使用迭代计算的组件,新加入和去除的数据元素而避免访问调整后计算窗口中的所有数据元素和执行重复计算从而降低数据访问延迟,提高计算效率,节省计算资源和降低计算系统能耗,使得实时判断流数据分布密度集中程度能够高效低耗及一些实时判断流数据分布密度集中程度从不可能变为可能。
计算窗口的和或平均值是必须迭代计算的特殊组件。假设在同一轮迭代计算中所有迭代计算的组件(包括计算窗口的和或平均值)总数为p(p>1)。直接迭代的组件个数为v(1≤v≤p),则间接迭代的组件个数为w=p-v(w≥0)。其中计算窗口的和或平均值是必须迭代计算的特殊组件。和或平均值可以被直接或间接迭代计算。
计算系统初始化一个数据流的存储于一个缓冲区上的指定计算窗口规模为n(n>1)的一个调整前计算窗口的两个以上组件(共p(p>1)个,包括一个和或一个平均值或一个和及一个平均值,以及峰度的其它一个或多个组件)。该两个以上组件的初始化包括基于该调整前计算窗口中的数据元素通过组件的定义计算两个以上组件或从计算设备可读媒体上接收或访问已计算的两个以上组件。
计算系统接收一个要加入该调整前计算窗口的新的数据元素。
计算系统保存接收的数据元素到一个缓冲区中。
计算系统通过从该调整前计算窗口中去除最老的数据元素和向该调整前计算窗口加入接收的数据元素来调整该调整前计算窗口。
计算系统迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值。
计算系统直接迭代计算该调整后计算窗口的峰度的除和及平均值之外的v(1≤v≤p)个组件。直接迭代计算该v个组件包括:访问去除的数据元素和加入的数据元素;访问该调整前计算窗口的峰度的v个组件;从访问的每个组件中数学地去除被去除的数据元素的任何贡献;以及向v个组件中的每个组件数学地加入被加入的数据元素的任何贡献。
计算系统根据需要间接迭代计算该调整后计算窗口的峰度的w=p-v个组件。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件中的每一个组件。间接迭代计算一个组件包括:访问并使用除该组件之外的一个或多个组件来计算该组件。这一个或多个组件可能是经过初始化的,直接迭代计算的或间接迭代计算的。
计算系统根据需要基于一个或多个迭代计算的调整后计算窗口的峰度的组件生成调整后计算窗口的峰度。
计算系统可以持续地接收一个新的数据元素,保存接收的数据元素到一个缓冲区中,调整调整前计算窗口,迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值,直接迭代计算v个组件,根据需要间接迭代计算w=p-v个组件和生成峰度。计算系统可以根据需要多次重复这个过程。
本简述是以简化的方式介绍一些选择的概念,它们将在下面被进一步详细描述。本简述即不是为了鉴定权利要求的主题的关键特点或必要特点,也不是为了用于帮助确认权利要求的主题所包括的范围。
本发明的其它特征和优点将在下面的描述中体现出来,会部分地从描述中明显体现,或从本发明的实践中学到。本发明的特征和优点可从附加的权利要求书中特别指出的方法设备及其组合中实现和得到。本发明的这些和其它特征将在下面的描述和附加的权利要求书或本发明的实践中变得更加全面清晰。
附图说明
为描述能够获得本发明的上述的和其它的优点和特点的方式,上面简述的本发明的一个更具体的描述将通过参照附加的图表中所显示的特定的实施方案来展现出来。本发明将通过下列的图表更加详细和具体地来描述和解释,请理解这些图表只是描述了本发明的典型实施方案,因此它们不应被理解为对本发明的范围的限制:
图1图示了为流数据迭代计算峰度的一个例子计算系统的高层概述。
图1-1图示了一个为流数据迭代计算峰度的并且所有组件都是直接迭代计算的计算系统架构的例子。
图1-2图示了一个为流数据迭代计算峰度的并且部分组件直接迭代计算,部分组件间接迭代计算的计算系统架构的例子。
图2图示了一个为流数据迭代计算峰度的方法流程图的例子。
图3图示了在流数据上为迭代计算峰度被访问的计算窗口中的数据元素。
图4-1图示了峰度的定义以及计算窗口上计算峰度的传统方程。
图4-2图示了调整后计算窗口上计算峰度的传统方程。
图4-3显示了第一个迭代峰度计算例子算法(迭代算法1)。
图4-4显示了第二个迭代峰度计算例子算法(迭代算法2)。
图4-5显示了第三个迭代峰度计算例子算法(迭代算法3)。
图5-1显示了用于一个计算实例的第一个计算窗口。
图5-2显示了用于一个计算实例的第二个计算窗口。
图5-3显示了用于一个计算实例的第三个计算窗口。
图6-1图示了计算窗口规模为4时,传统峰度算法和迭代峰度算法的计算工作量对比。
图6-2图示了计算窗口规模为1,000,000时,传统峰度算法和迭代峰度算法的计算工作量对比。
具体实施方法
峰度可用于判断数据分布的集中和分散程度。本发明拓展到通过迭代计算指定规模的计算窗口的峰度的两个以上组件来迭代地计算流数据上的峰度从而可以实时地判断流数据分布密度集中程度的方法,系统,和计算系统程序产品。一个计算系统包含一个或多个计算设备。每个计算设备包含一个或多个处理器。计算系统可以访问至少一个数据流。计算系统包含一个在一个或多个存储媒介上的缓冲区,用于保留来自数据流的,涉及到峰度计算的多个数据元素组成的一个计算窗口中的数据元素。计算系统保持一个计算窗口规模计数器n(n>1)。计算窗口规模计数器n指明了该缓冲区计算窗口中数据元素的数量。本发明的实施方案包括基于调整前计算窗口的峰度的两个以上组件迭代计算调整后计算窗口的峰度的两个以上组件,然后根据需要基于迭代计算的两个以上组件生成调整后计算窗口的峰度。迭代计算峰度避免访问调整后计算窗口中的所有数据元素和执行重复计算从而提高计算效率,节省计算资源和降低计算系统能耗,使得实时判断流数据分布密度集中程度能够高效低耗及一些实时判断流数据分布密度集中程度从不可能变为可能。
计算系统包含一个输入缓冲区用于保存大数据或流数据元素。该缓冲区可以在内存或其它计算机可读媒介,如硬盘或其它媒介中,甚至可以是分配在多个计算设备上的多个分布式文件,它们端到端互联而形成一个或两个”循环缓冲区”。
峰度是随机变量的值的规格化的四阶中心矩,其描述了密度函数在左端和右端以多快的速度趋向于零。因此,峰度被用来刻画不同类型的分布的集中和分散的程度。负的峰度表明偏差是由很多偏离均值的值引起的,也即分布比较分散,其密度的单峰越平缓。正的峰度表明偏差是由少数几个偏离均值的极端方差引起的,也即分布比较集中,其密度的单峰越陡峭。峰度包括样本峰度,样本过量峰度,总体峰度,以及过量峰度等。它们的定义可参见附图4-1.
在本文中,峰度的一个组件是出现在峰度定义公式中或其定义公式的任何转换中的一个量或表达式。峰度是它自己最大的组件。峰度可基于一个或多个组件或它们的组合被计算,所以多个算法支持迭代峰度计算。峰度的组件的例子。
一个组件可以被直接迭代计算或间接迭代计算。它们的区别是当一个组件被直接迭代计算时该组件是基于该组件在前一轮计算的值来计算的,而当该组件被间接迭代计算时该组件是基于该组件之外的其它组件计算的。
对于一个给定的组件,它也许在一个算法中被直接迭代计算但在另一个算法中被间接迭代计算。
对于任意一个算法,至少会有两个组件被迭代计算,其中一个组件被直接迭代计算,另一个组件被直接或间接迭代计算。对于一个给定的算法,假设使用的不同组件的总数是p(p>1),如果直接迭代计算的组件个数是v(1≤v≤p),那么间接迭代计算的组件的个数是w=p-v(0≤w<p)。可能所有的组件都被直接迭代计算(这种情况下v=p>1并且w=0)。但是,无论峰度的结果是否在一个特定的轮次被需要和访问,直接迭代计算的组件都必须被计算。
对于一个给定算法,如果一个组件被直接迭代计算,则该组件必须被计算(即每当一个已有的数据元素被从计算窗口中去除和每当一个数据元素被加入到计算窗口中时)。但是,如果一个组件被间接迭代计算,则该组件可以通过使用该组件之外的其它一个或多个组件来根据需要,即只有当峰度需要被计算和访问时,被计算。这样,当峰度在某一个计算轮次不被访问时,只有少量的组件需要被迭代地计算。一个间接迭代计算的组件也许会被用于一个组件的直接迭代计算,在这种情况下,该间接迭代计算的组件的计算不可省略。
峰度可以根据需要被计算。当峰度在每次计算窗口数据有变化而不需要被访问时,计算系统只需要为每次数据变化迭代计算一个或多个组件。迭代计算一个或多个组件避免了访问之前的所有输入和做重复计算因此提高计算效率。峰度可以在需要被访问时由计算系统基于迭代计算的一个或多个组件来生成。
在本说明书和权利要求书中,一个“循环缓冲区”是使用单一的有固定规模的似乎首尾相连的“缓冲区”的一个数据结构,有时也被称为环缓冲区。该“缓冲区”既可以是一个常用的循环缓冲区其通常是分配在本地内存里的一块空间,也可以是一个“虚拟循环缓冲区”,其并不一定在内存里而是在硬盘上的文件甚至多台分布式计算设备上的多个分布式文件只要这些分布式文件逻辑上首尾互相连接构成一个“循环缓冲区”。
通常,输入数据被加入到一个规模为n的缓冲区里。当缓冲区没有充满数据时,至少有两种做法。一种是不做峰度计算,直到缓冲区充满数据后根据组件的定义用前n个数据计算二个或多个组件。另一种做法是当需要时可以从一开始用本发明人的另一个专利申请中描述的方法,来增量计算峰度直到缓冲区被充满。一旦缓冲区被充满并且前n个数据元素的峰度的二个或多个组件被计算,本文提供的迭代算法可被用来迭代地计算该数据元素的峰度的二个或多个组件,然后峰度可基于迭代计算的组件来计算。
在本说明书和权利要求书中,一个最老的数据元素是指计算窗口中在时间上距离最新接收的数据元素第n个近的数据元素。
本发明的实现方案包括基于为调整前计算窗口计算的峰度的两个以上组件迭代地计算调整后计算窗口的峰度的两个以上组件。其中计算窗口的和或平均值是必须迭代计算的特殊组件。和或平均值可以被直接或间接迭代计算。对于一个给定的迭代峰度算法,假设在同一轮迭代计算中所有迭代计算的组件(包括计算窗口的和或平均值)总数为p(p>1)。直接迭代的组件个数为v(1≤v≤p),则间接迭代的组件个数为w=p-v(w≥0)。
计算系统初始化一个缓冲区中的给定规模n(n>1)的调整前计算窗口的两个以上组件(共p(p>1)个,包括一个和或一个平均值或一个和及一个平均值,以及峰度的其它一个或多个组件)。该两个以上组件的初始化包括根据其定义基于该调整前计算窗口中的数据元素来计算或从一个或多个计算设备可读媒体上访问或接收已经计算过的组件。
计算系统接收一个要加入该调整前计算窗口的新的流数据元素。
计算系统保存接收的数据元素到一个缓冲区中。
计算系统通过从该调整前计算窗口中去除最老的数据元素和向该调整前计算窗口加入接收的数据元素来调整该调整前计算窗口。
计算系统迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值。
计算系统为该调整后计算窗口直接迭代计算峰度的除和及平均值之外的一个或多个v(1≤v≤p)组件。直接迭代计算该v个组件包括:访问去除的数据元素和加入的数据元素;访问为调整前计算窗口计算的峰度的v个组件;从v个组件中的每个组件中数学地去除被去除的数据元素的任何贡献;向v个组件中的每个组件数学地加入被加入的数据元素的任何贡献。
计算系统根据需要间接迭代计算调整后计算窗口的峰度的w=p-v个组件。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件中的每一个组件。间接迭代计算一个组件包括:访问并使用除该组件之外的一个或多个组件来计算该组件。该一个或多个组件可能是经过初始化的,直接迭代计算的或间接迭代计算的。
计算系统根据需要,基于为调整后计算窗口迭代计算峰度的一个或多个组件,为调整后计算窗口生成峰度。
计算系统可以持续地接收要加入计算窗口的数据元素对,保存接收的数据元素到缓冲区,调整计算窗口,迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值,直接迭代计算一个或多个v组件,根据需要间接迭代计算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和CPU1010,一个或多个系统内存,例如系统内存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。
通常,数据流190可以是顺序的数字编码信号(即数据的包或数据包)分别用于传输或接收传输过程中的信息。数据流190可以是实时流或流化的存储数据。
随着流数据元素的接收,流数据元素可以被放在循环缓冲区121中。例如,数据元素101,102,103,104,105,106,107,108和109可以分别被放在位置121A,121B,121C,121D,121E,121F,121G,121H和121I。
然后,数据元素110可以被接收。数据元素110可以被放在位置121A(覆盖数据元素101)。
如图所示,循环缓冲区121有9个位置,121A-121I。这个缓冲区有个包含8个(n=8)数据元素的计算窗口122。计算窗口122中的数据元素可以随着新的数据元素被放入循环缓冲区121而倒换。例如,当数据元素109被放入位置121I时,计算窗口122会变成计算窗口122A。当数据元素110被放入位置121A时,计算窗口122A会变成计算窗口122B。
参考计算系统架构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。峰度192可以是样本,总体峰度,样本过量峰度和/或过量峰度。
图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。峰度192可以是样本,总体峰度,样本过量峰度和/或过量峰度。组件计算模块135通常包括w=p-v个组件计算模块来间接迭代计算w个组件。例如,组件计算模块135包括组件计算模块163用于间接迭代计算组件Ci1,组件计算模块164用于间接迭代计算组件Ciw,以及它们之间的其它w-2个组件计算模块。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件的每一个。间接迭代计算一个组件包括访问和使用除该组件本身之外的一个或多个组件。那一个或多个组件可以是被初始化,直接迭代计算或间接迭代计算过的。
图2图示了为流数据迭代计算峰度的一个例子方法200的流程图。方法200会分别结合计算系统架构100A和100B的组件和数据一起描述。
方法200包括为指定规模为n(n>1)的一个调整前计算窗口初始化峰度的p(p>1)个组件(201)。例如,在计算系统架构100A和100B中,初始化模块132可以用贡献151(数据元素101的贡献),贡献152(数据元素102的贡献),和贡献153(其它数据元素103,104,105,106,107和108的贡献)的值初始化组件Cd1的值141。同样,初始化模块138可以访问组件Cdv的初始值并且用贡献181(数据元素101的贡献),贡献182(数据元素102的贡献)和贡献183(其它数据元素103,104,105,106,107和108的贡献)的值初始化组件Cdv的值145。
方法200包括接收一个要加入该调整前计算窗口的数据元素(202)。例如,数据元素109可在数据元素102-108被接收之后被接收。
方法200包括保存接收的数据元素到缓冲区中(203)。例如,参考100A和100B,数据元素109可以存在缓冲区121中的位置121I。
方法200包括调整该调整前计算窗口(204)。调整该调整前计算窗口包括从该调整前计算窗口去除最老的数据元素(205)和将接收的数据元素加入到该调整前计算窗口(206)。例如,数据元素101从调整前计算窗口122去除和数据元素109被加入到调整前计算窗口122后,调整前计算窗口122变成调整后计算窗口122A。
方法200包括基于调整前计算窗口的峰度的v(1≤v≤p)个组件为调整后计算窗口直接迭代计算峰度的v个组件(207),包括:访问从该调整前计算窗口去除的数据元素和加入该调整前计算窗口的数据元素(208);访问为调整前计算窗口初始化或计算的峰度的v个组件(209);从每个访问的组件中数学地去除去除的数据元素的任何贡献(210);及向每个访问的组件数学地加入被加入的数据元素的任何贡献(211)。细节描述如下。
为调整后计算窗口直接迭代计算峰度的v个组件包括访问从该调整前计算窗口去除的数据元素和加入该调整前计算窗口的数据元素(208)。例如,迭代算法133可以访问数据元素101和109,迭代算法139也可以访问数据元素101和109。
为调整后计算窗口直接迭代计算峰度的v个组件包括访问为该调整前计算窗口初始化或计算的峰度的v个组件(209)。例如,迭代算法133可访问组件Cd1的值141,迭代算法139可访问组件Cdv的值145。
为调整后计算窗口直接迭代计算调整后计算窗口的峰度的v个组件包括从每个访问的组件中数学地去除被去除的数据元素的任何贡献(210)。例如,直接迭代计算组件Cd1的值143可以包括贡献去除模块133A数学地从组件Cd1的值141去除贡献151(数据元素101的贡献),直接迭代计算组件Cdv的值147可以包括贡献去除模块139A数学地从组件Cdv的值145去除贡献181(数据元素101的贡献)。
为调整后计算窗口直接迭代计算调整后计算窗口的峰度的v个组件包括向每个访问的组件数学地增加新加入到该调整前计算窗口的数据元素的任何贡献(211)。例如,直接迭代计算组件Cd1的值143可以包括贡献增加模块133B数学地增加贡献154到组件Cd1的值141,直接迭代计算组件Cdv的值147可以包括贡献增加模块139B数学地增加贡献184到组件Cdv的值145。贡献154和184都是来自数据元素109的贡献。
如图1-1和1-2所示,组件Cd1的值143包括贡献152(数据元素102)的贡献),其它贡献153(数据元素103-108的贡献),和贡献154(数据元素109的贡献)。同样,组件Cdv的值147包括贡献182(数据元素102的贡献),其它贡献183(数据元素103-108的贡献),和贡献184(数据元素109的贡献)。
峰度可以根据需要被计算,即,只需要被访问时计算,但是每当一个数据元素被去除和一个数据元素被加入到调整前计算窗口时,v个组件必须被计算。
当峰度被访问并且v<p(即,不是所有组件都被直接迭代计算)时,方法200包括根据需要间接迭代计算w=p-v个组件(212)。这w个组件只有当峰度被访问时才会计算。例如,参考图1-2其部分组件直接迭代计算,部分组件间接迭代计算,计算模块163可以基于组件Ci1之外的一个或多个组件来间接迭代计算组件Ci1,计算模块164可以基于组件Ciw之外的一个或多个组件来间接迭代计算组件Ciw。这一个或多个组件可以是初始化,直接迭代计算,或间接迭代计算过的。
方法200包括用一个或多个初始化或迭代计算过的组件根据需要生成峰度(213)。例如,参考图1-1,峰度计算模块191可以基于组件Cd1的值143到组件Cdv的值147的一个或多个组件生成峰度192。
202-211可以随着更多数据元素的接收被重复。212-213可以根据需要被重复。每接收一个数据元素就开始新一轮迭代计算。上一轮的调整后计算窗口成为新一轮迭代计算中的调整前计算窗口。例如,计算完组件Cd1的值143到组件Cdv的值147范围内的组件之后,数据元素110可以被接收(202)。110可以放在位置121A覆盖数据元素101(203)。通过去除最老的数据元素102(205)和加入要被加入的数据元素110(206),调整后计算窗口122A可以变成调整后计算窗口122B(204)。上轮调整后计算窗口122A成为新一轮迭代计算中的调整前计算窗口。
迭代算法133可以基于组件Cd1的值143(调整后计算窗口122A的)直接迭代计算组件Cd1的值144(调整后计算窗口122B的)(207)。迭代算法133可以访问被去除的数据元素102和被加入的数据元素110(208)。迭代算法133可以访问组件Cd1的值143(209)。直接迭代计算组件Cd1的值144可以包括贡献去除模块133A从组件Cd1的值143数学地去除贡献152(即,被去除的数据元素102的贡献)(210)。直接迭代计算组件Cd1的值144可以包括贡献增加模块133B数学地增加贡献155(即,被加入的数据元素110的贡献)到组件Cd1的值143上(211)。同样,迭代算法139可以用组件Cdv的值147(调整后计算窗口122A的)直接迭代计算组件Cdv的值148(调整后计算窗口122B的)(207)。迭代算法139可以访问去除的数据元素102和加入的数据元素110(208)。迭代算法139可以访问组件Cdv的值147(209)。直接迭代计算组件Cdv的值148可以包括贡献去除模块139A从组件Cdv的值147数学地去除贡献182(即,被去除的数据元素102的贡献)(210)。直接迭代计算组件Cdv的值148可以包括贡献增加模块139B数学地增加贡献185(即,被加入的数据元素110的贡献)到组件Cdv的值147上(211)。
如图1-1和1-2所示,组件Cd1的值144包括其它贡献153(数据元素103-108的贡献),贡献154(数据元素109的贡献),和贡献155(数据元素110的贡献)。同样,组件Cdv的值148包括其它贡献183(数据元素103-108的贡献),贡献184(数据元素109的贡献)和贡献185(数据元素110的贡献)。
方法200包括,根据需要即只有峰度被访问时,间接迭代计算w个组件和峰度。如果峰度不被访问,方法200包括继续为下一个计算窗口接收下一个要加入的数据元素(202)。如果峰度被访问,方法200包括间接迭代计算w个组件(212),基于一个或多个迭代计算的组件生成峰度(213)。
当下一个要加入的数据元素被接收,组件Cd1的值144可被用来直接迭代计算组件Cd1的新值,组件Cdv的值148可被用来直接迭代计算组件Cdv的新值。
图3图示在流数据上迭代计算峰度时计算窗口300中被访问的数据元素。计算窗口和计算集的区别是计算窗口上的数据元素对有顺序(例如,数据元素总是从计算窗口的最左边或最右边被去除并且数据元素可以加入计算窗口的最左边或最右边)。图3显示的是计算窗口向右移动时的情景(向左移动时是类似的,只不过方向相反,数据从计算窗口的最左边加入最右边去除)。例如,参考图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个组件的计算工作量被降低。峰度可以用一个或多个迭代计算过的组件被计算所以总体计算工作量降低了。n越大,计算量的降低越突出。
以下的部分有一些峰度的组件的例子和迭代峰度计算算法的例子。
图4-1图示峰度的定义。峰度包括总体峰度和样本峰度。假设计算窗口X={xi|i=1,…,n,n>1}包含参与峰度计算的数据元素,数据元素x1,x2,x3,x4,……,xn是来自于预测变量X的观察数据并且假设峰度需要被计算。假设过段时间最老的数据元素xr要从计算窗口X去除并且数据元素xa要加入计算窗口X。每当一个数据元素从计算窗口去除和一个数据元素加入计算窗口后峰度需要重新被计算,计算窗口会被认为是调整后的计算窗口X′,一轮新的迭代计算会开始。
方程401和402是分别为第k轮计算X的所有数据元素的和Sk和平均值的传统方程。方程403是为第k轮计算X的总体峰度的传统方程。方程404是为第k轮计算X的过量峰度的传统方程。方程405是为第k轮计算X的样本峰度的传统方程。方程406是为第k轮计算X的样本过量峰度的传统方程。
图4-2图示计算调整后计算窗口峰度的传统方程。方程407和408是分别为第k+1轮计算调整后的X′的所有数据元素的和Sk+1和平均值的传统方程。方程409是为第k+1轮计算调整后的X′的总体峰度的传统方程。方程410是为第k+1轮计算调整后的X′的过量峰度的传统方程。方程411是为第k+1轮计算调整后的X′的样本峰度的传统方程。方程412是为第k+1轮计算调整后的X′的样本过量峰度的传统方程。
为展示如何利用组件迭代计算峰度,三个不同的迭代峰度算法被提供作为例子。
图4-3说明第一个迭代峰度计算例子算法(迭代算法1)。方程401可以被用来初始化X里所有数据元素的和Sk。方程402可以被用来初始化X里所有数据元素的平均值方程413可以被用来初始化组件SSk。方程414可以被用来初始化组件SXk。方程415可以被用来初始化组件CSk。方程416可以被用来初始化组件QXk。根据需要方程417可以基于初始化的组件计算总体峰度γk (2p)。根据需要方程418可以基于初始化的组件计算过量峰度γk (2e)。根据需要方程419可以基于初始化的组件计算样本峰度γk (2s)。根据需要方程420可以基于初始化的组件计算样本过量峰度γk (2se)。假设一段时间后数据元素xr要从计算窗口X去除并且数据元素xa要加入计算窗口X。基于组件Sk,方程421可以被用来迭代计算调整后计算窗口X′的和Sk+1。基于组件方程422可以被用来迭代计算调整后计算窗口X′的平均值基于组件SSk,方程423可以迭代计算调整后计算窗口X′的组件SSk+1。基于组件SSk+1,方程424可以迭代计算调整后计算窗口X′的组件SXk+1。基于组件CSk,方程425可以迭代计算调整后计算窗口X′的组件CXk+1。基于组件QXk,方程426可以迭代计算调整后计算窗口X′的组件QXk+1。基于迭代计算的组件,方程427可以迭代计算调整后计算窗口X′的总体峰度γk+1 (2p),方程428可以迭代计算调整后计算窗口X′的过量峰度γk+1 (2e),方程429可以迭代计算调整后计算窗口X′的样本峰度γk+1 (2s),方程430可以迭代计算调整后计算窗口X′的样本过量峰度γk+1 (2se)。421,422,424,和426分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
图4-4说明第二个迭代峰度计算例子算法(迭代算法2)。方程401可以被用来初始化X里所有数据元素的和Sk。方程402可以被用来初始化X里所有数据元素的平均值方程431可以被用来初始化组件SSk。方程432可以被用来初始化组件SXk。方程433可以被用来初始化组件CSk。方程434可以被用来初始化组件QSk。方程435可以被用来初始化组件QXk。根据需要方程436可以基于初始化的组件计算总体峰度γk (2p)。根据需要方程437可以基于初始化的组件计算过量峰度γk (2e)。根据需要方程438可以基于初始化的组件计算样本峰度γk (2s)。根据需要方程439可以基于初始化的组件计算样本过量峰度γk (2se)。假设一段时间后数据元素xr要从计算窗口X去除并且数据元素xa要加入计算窗口X。基于组件Sk,方程440可以被用来迭代计算调整后计算窗口X′的Sk+1。基于组件方程441可以被用来迭代计算调整后计算窗口X′的基于组件SSk,方程442可以迭代计算调整后计算窗口X′的组件SSk+1。基于组件SSk+1,方程443可以迭代计算调整后计算窗口X′的组件SXk+1。基于组件CSk,方程444可以迭代计算调整后计算窗口X′的组件CSk+1。基于组件QSk,方程445可以迭代计算调整后计算窗口X′的组件QSk+1。基于组件QSk+1,方程446可以迭代计算调整后计算窗口X′的组件QXk+1。基于迭代计算的组件,方程447可以迭代计算调整后计算窗口X′的总体峰度γk+1 (2p),方程448可以迭代计算调整后计算窗口X′的过量峰度γk+1 (2e),方程449可以迭代计算调整后计算窗口X′的样本峰度γk+1 (2s),方程450可以迭代计算调整后计算窗口X′的样本过量峰度γk+1 (2se)。440,441,443和446分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
图4-5说明第三个迭代峰度计算例子算法(迭代算法3)。方程401可以被用来初始化X里所有数据元素的和Sk。方程402可以被用来初始化X里所有数据元素的平均值方程451可以被用来初始化组件SSk。方程452可以被用来初始化组件SXk。方程453可以被用来初始化组件CSk。方程454可以被用来初始化组件QSk。方程455可以被用来初始化组件QXk。根据需要方程456可以基于初始化的组件计算总体峰度γk (2p)。根据需要方程457可以基于初始化的组件计算过量峰度γk (2e)。根据需要方程458可以基于初始化的组件计算样本峰度γk (2s)。根据需要方程459可以基于初始化的组件计算样本过量峰度γk (2se)。假设一段时间后数据元素xr要从计算窗口X去除并且数据元素xa要加入计算窗口X。基于组件Sk,方程460可以被用来迭代计算调整后计算窗口X′的Sk+1。基于组件方程461可以被用来迭代计算调整后计算窗口X′的基于组件SSk,方程462可以迭代计算调整后计算窗口X′的组件SSk+1。基于组件SXk,方程463可以迭代计算调整后计算窗口X′的组件SXk+1。基于组件CSk,方程464可以迭代计算调整后计算窗口X′的组件CSk+1。基于组件QSk,方程465可以迭代计算调整后计算窗口X′的组件QSk+1。基于组件QSk+1,方程466可以迭代计算调整后计算窗口X′的组件QXk+1。基于迭代计算的组件,方程467可以迭代计算调整后计算窗口X′的总体峰度γk+1 (2p),方程468可以迭代计算调整后计算窗口X′的过量峰度γk+1 (2e),方程469可以迭代计算调整后计算窗口X′的样本峰度γk+1 (2s),方程470可以迭代计算调整后计算窗口X′的样本过量峰度γk+1 (2se)。460,461,463和466分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
为展示迭代峰度算法以及它们与传统算法的比较,下面给出三个例子,其使用3个计算窗口的数据计算样本峰度。总体峰度的计算是类似的。对于传统算法,所有3个计算窗口的计算过程完全相同。对于迭代算法,第一个计算窗口进行两个或多个组件的初始化,第二个和第三个计算窗口进行迭代计算。
图5-1,图5-2,图5-3分别显示了用于计算实例的第一个计算窗口,第二个计算窗口,和第三个计算窗口。计算窗口503包括数据流501的头4个数据元素:8,3,6,1。计算窗口504包括数据流501的4个数据元素:3,6,1,9。计算窗口505包括数据流501的4个数据元素:6,1,9,2。计算窗口规模502(n)是4。
首先用传统算法分别计算计算窗口503,504,和505的峰度。
为计算窗口503计算峰度:
没有任何优化的情况下,为规模为4的计算窗口计算样本峰度共有2个除法,18个乘法,10个加法和11个减法。
相同的方程和过程可被用来分别为图5-2显示的计算窗口504计算样本峰度和为图5-3显示的计算窗口505计算样本峰度。计算窗口504的样本峰度该计算在没有任何优化的情况下包括2个除法,18个乘法,10个加法和11个减法。计算窗口505的样本峰度该计算在没有优化的情况下包括2个除法,18个乘法,10个加法和11个减法。传统算法在没有任何优化的情况下计算规模为n的计算窗口中选定的数据元素的样本峰度时通常需要完成2个除法,3n+6个乘法,3n-2个加法,和2n+3个减法。
下面用迭代算法1分别计算计算窗口503,504,和505的样本峰度。
为规模为4的计算窗口503计算样本峰度:
用方程413,414,415,416分别初始化第1轮SS1,SX1,CS1,QX1:
用方程419计算第1轮样本峰度:
为计算窗口503计算样本峰度时共有2个除法,30个乘法,16个加法和11个减法。
为规模为4的计算窗口504迭代计算样本峰度:
SS2=SS1+xa 2-xr 2=110+81-82=127
CS2=CS1+xa 3-xr 3=756+93-83=756+729-512=973
用方程427计算第2轮样本峰度:
为计算窗口504迭代计算样本峰度时共有2个除法,26个乘法,10个加法和13个减法。
为规模为4的计算窗口505迭代计算样本峰度:
SS3=SS2+xa 2-xr 2=127+4-32=122
CS3=CS2+xa 3-xr 3=CS2+xa 2×xa-xr 2×xr=973+4×2-9×3=954
用方程420计算第3轮样本峰度:
为计算窗口505迭代计算样本峰度时共有2个除法,26个乘法,10个加法和13个减法。
下面用迭代算法2分别计算计算窗口503,504,和505的样本峰度。
为规模为4的计算窗口503计算样本峰度:
用方程431,432,433,434,435分别初始化第1轮SS1,SX1,CS1,QS1,QX1:
用方程436计算第1轮的样本峰度:
为计算窗口503计算样本峰度时共有2个除法,34个乘法,19个加法和11个减法。
为规模为4的计算窗口504迭代计算样本峰度:
S2=SS1+xa 2-xr 2=110+81-64=127
CS2=CS1+xa 3-xr 3=756+9×9×9-64×8=973
QS2=QS1+xa 4-xr 4=QS1+xa 2×xa 2-xr 2×xr 2=5474+81×81-64×64=7939
用方程447计算第2轮的样本峰度:
为计算窗口504迭代计算样本峰度时共有2个除法,20个乘法,6个加法和10个减法。
为规模为4的计算窗口505迭代计算样本峰度:
SS3=SS2+xa 2-xr 2=127+4-9=122
CS3=CS2+xa 3-xr 3=CS2+xa 2xa-xr 2xr=973+4×2-9×3=954
QS3=QS2+xa 4-xr 4=QS2+xa 2×xa 2-xr 2×xr 2=7939+4×4-9×9=7874
用方程447计算第3轮的样本峰度:
为计算窗口505迭代计算样本峰度时共有2个除法,20个乘法,6个加法和10个减法。
下面用迭代算法3分别计算计算窗口503,504,和505中的样本峰度。
为规模为4的计算窗口503计算样本峰度:
用方程456计算第1轮的样本峰度:
为计算窗口503计算样本峰度时共有2个除法,34个乘法,19个加法和11个减法。
为规模为4的计算窗口504迭代计算样本峰度:
SS2=SS1+xa 2-xr 2=110+81-64=127
CS2=CS1+xa 3-xr 3=CS1+xa 2xa-xr 2xr=756+81×9-64×8=973
用方程467计算第2轮的样本峰度:
为计算窗口504迭代计算样本峰度时共有2个除法,20个乘法,9个加法和11个减法。
为规模为4的计算窗口505计算样本峰度:
SS3=SS2+xa 2-xr 2=127+4-9=122
CS3=CS2+xa 3-xr 3=CS2+xa 2xa-xr 2xr=973+4×2-9×3=954
QS3=QS2+xa 4-xr 4=QS2+xa 2×xa 2-xr 2×xr 2=7939+4×4-9×9=7874
用方程467计算第3轮的样本峰度:
为计算窗口505迭代计算样本峰度时共有2个除法,20个乘法,9个加法和11个减法。
以上三个例子是以迭代计算样本峰度为例。迭代计算其它峰度可以类似地完成。另外,在以上三个例子中,平均值被用于迭代峰度计算。和也可被用于迭代峰度计算,只是操作数不同。
图6-1图示了n=4时,传统峰度算法和迭代峰度算法的计算量对比。如图所示,任何一个迭代算法和传统算法相比都计算量相近并且在乘法操作,加法操作和减法操作上略少。
图6-2图示了n=1,000,000时,传统峰度算法和迭代峰度算法的计算量对比。如图所示,任何一个迭代算法都比传统算法少很多乘法操作,加法操作和减法操作。迭代峰度算法把需要在成千上万台计算机上处理的数据只在单机上就能完成,从而大大提高计算效率,减少计算资源,降低计算设备能耗。
本发明可以在不脱离其思想或本质特征的情况下以其它特定的方式来实现。本申请描述的实现方案从各个方面来说是仅作为示范性的而不是限制性的。因此,本发明的范围由附加的权利要求书而不是前面的描述来指明。与权利要求书中权利要求的含义和范围等价的所有变化都包含在它们的范围内。
Claims (10)
1.一种,由基于一台或多台计算设备构成的计算系统实现的,以迭代方式计算存储于一个缓冲区的一个数据流的调整后计算窗口的峰度的方法,其特征在于:
由基于计算设备的一个计算系统,为一个数据流的一个指定规模为n(n>4)的调整前计算窗口,初始化一个和或一个平均值或一个和及一个平均值,以及峰度的不同于和及平均值的一个或多个其它组件;
由基于计算设备的该计算系统,接收一个要加入该调整前计算窗口的数据元素;
由基于计算设备的该计算系统,保存接收的数据元素到一个缓冲区中;
由基于计算设备的该计算系统,调整该调整前计算窗口,通过:
从该调整前计算窗口中去除最早接收的数据元素;以及
向该调整前计算窗口加入刚接收的数据元素;
由基于计算设备的该计算系统,为调整后计算窗口迭代计算一个和或一个平均值或一个和及一个平均值;
由基于计算设备的该计算系统,至少基于调整前计算窗口的峰度的不同于和及平均值的该一个或多个其它组件,为该调整后计算窗口直接迭代计算峰度的不同于和及平均值的一个或多个组件,这里的迭代计算一个或多个组件包括:
访问被去除数据元素和被加入的数据元素从而避免访问调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低能耗;
访问该调整前计算窗口的峰度的不同于和及平均值的该一个或多个组件;以及
基于被去除的数据元素和被加入的数据元素,从访问的每一个组件中数学地去除被去除的数据元素对该组件的任何贡献和数学地加入被加入的数据元素对该组件的任何贡献从而避免调整后计算窗口中的所有数据元素都被用来直接迭代计算峰度的一个或多个组件来增加计算效率;以及
由基于计算设备的该计算系统,基于一个或多个为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成一个峰度。
2.按照权利要求1所述的由计算系统实现的方法,其特征在于:所述接收一个要加入数据元素包括接收多个要加入该调整前计算窗口的数据元素,该方法也进一步包括对于多个要加入的数据元素中的每一个数据元素进行调整调整前计算窗口,迭代计算和或平均值或和及平均值,以及直接迭代计算一个或多个组件。
3.按照权利要求1所述的由计算系统实现的方法,其特征在于:所述接收一个要加入的数据元素包括接收多个要加入该调整前计算窗口的数据元素,该方法也进一步包括对于多个要加入的数据元素中的每一个数据元素进行调整调整前计算窗口,迭代计算和或平均值或和及平均值,直接迭代计算一个或多个组件,以及为调整后计算窗口生成峰度。
4.按照权利要求3所述的由计算系统实现的方法,其特征在于:所述为该调整后计算窗口生成峰度进一步包括由基于计算设备的该计算系统为该调整后计算窗口间接迭代计算峰度的一个或多个组件,间接迭代计算该一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算该一个或多个组件。
5.一个计算系统,其特征在于:
一个或多个处理器;
一个或多个存储媒体,其中的一个缓冲区存储了流数据元素;以及
一个或多个计算模块,当它们被一个或多个处理器中的至少一个处理器执行时,为该缓冲区的一个指定规模的调整后计算窗口确定峰度,这里该峰度的确定包括:
a.为该缓冲区的一个指定规模为n(n>4)的调整前计算窗口,初始化一个和或一个平均值或一个和及一个平均值,以及峰度的除和及平均值之外的一个或多个其它组件;
b.接收一个要加入到该调整前计算窗口的数据元素;
c.保存该数据元素到一个缓冲区中;
d.调整该调整前计算窗口,包括:
从该调整前计算窗口中去除最早加入的数据元素;以及
向该调整前计算窗口中加入接收的数据元素;
e.为调整后计算窗口直接迭代计算一个和或一个平均值或一个和及一个平均值;
f.为该调整后计算窗口直接迭代计算峰度的一个或多个除了和及平均值以外的组件,包括:
访问去除的数据元素和加入的数据元素而避免访问该调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低能耗;
访问该调整前计算窗口的峰度的不同于和及平均值的该一个或多个组件;以及
基于被去除的数据元素和被加入的数据元素,从访问的每一个组件中数学地去除被去除的数据元素的任何贡献和数学地加入被加入的数据元素的任何贡献从而避免该调整后计算窗口中的所有数据元素都被用来直接迭代计算峰度的一个或多个组件来提高计算效率;以及
g.基于一个或多个为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成峰度。
6.按照权利要求5所述的计算系统,其特征在于:该一个或多个计算模块,当它们被一个或多个处理器中的至少一个处理器执行时,多次执行b,c,d,e,和f。
7.按照权利要求5所述的计算系统,其特征在于:该一个或多个计算模块,当它们被一个或多个处理器中的至少一个处理器执行时,多次执行b,c,d,e,f,和g。
8.按照权利要求7所述的计算系统,其特征在于:所述g进一步包括由该计算系统为该调整后计算窗口间接迭代计算峰度的一个或多个组件,间接迭代计算这一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算这一个或多个组件。
9.一个计算系统程序产品,运行于一个包含一个或多个计算设备的计算系统,每个计算设备包括一个或多个处理器,该计算系统包括存储了一个数据流的一个缓冲区,该计算系统程序产品包含多条计算设备可执行指令,当这些计算设备可执行指令被该计算系统中的至少一台计算设备运行时,使得该计算系统执行一个方法,其特征在于:
为一个缓冲区的一个规模规模为n(n>4)的调整前计算窗口,初始化一个和或一个平均值或一个和及一个平均值,以及峰度的不同于和及平均值的一个或多个其它组件;
接收一个要加入到该调整前计算窗口的数据元素;
保存接收的数据元素到一个缓冲区中;
调整该调整前计算窗口,通过:
从该调整前计算窗口中去除最早接收的数据元素;以及
向该调整前计算窗口加入刚接收的数据元素;
为调整后计算窗口迭代计算一个和或一个平均值或一个和及一个平均值;
至少基于调整前计算窗口的峰度的不同于和及平均值的该一个或多个其它组件,为该调整后计算窗口直接迭代计算峰度的不同于和及平均值的一个或多个组件,这里的迭代计算一个或多个组件包括:
访问被去除的数据元素和被加入的数据元素从而避免访问调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低系统能耗;
访问该调整前计算窗口的峰度的不同于和及平均值的该一个或多个其它组件;以及
基于被去除的数据元素和被加入的数据元素,从访问的每一个组件中数学地去除被去除的数据元素对该组件的任何贡献和数学地加入被加入的数据元素对该组件的任何贡献从而避免该调整后计算窗口中的所有数据元素都被用来直接迭代计算峰度的一个或多个组件来增加计算效率;以及
基于一个或多个为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成峰度。
10.按照权利要求9所述的计算系统程序产品,其特征在于:所述为该调整后计算窗口生成峰度进一步包括为该调整后计算窗口间接迭代计算峰度的一个或多个组件,间接迭代计算这一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算这一个或多个组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910205115.7A CN111708972A (zh) | 2019-03-18 | 2019-03-18 | 一种实时判断流数据分布密度集中程度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910205115.7A CN111708972A (zh) | 2019-03-18 | 2019-03-18 | 一种实时判断流数据分布密度集中程度的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111708972A true CN111708972A (zh) | 2020-09-25 |
Family
ID=72536410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910205115.7A Pending CN111708972A (zh) | 2019-03-18 | 2019-03-18 | 一种实时判断流数据分布密度集中程度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708972A (zh) |
-
2019
- 2019-03-18 CN CN201910205115.7A patent/CN111708972A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9928215B1 (en) | Iterative simple linear regression coefficient calculation for streamed data using components | |
US9760539B1 (en) | Incremental simple linear regression coefficient calculation for big data or streamed data using components | |
US10659369B2 (en) | Decremental autocorrelation calculation for big data using components | |
US10394809B1 (en) | Incremental variance and/or standard deviation calculation for big data or streamed data using components | |
US10394810B1 (en) | Iterative Z-score calculation for big data using components | |
CN112035521A (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
US10248690B1 (en) | Decremental correlation calculation for big data or streamed data using components | |
CN111708972A (zh) | 一种实时判断流数据分布密度集中程度的方法 | |
CN111488380A (zh) | 一种实时判断流数据分布不对称性的方法 | |
CN110457340B (zh) | 一种实时寻找大数据自身重复规律的方法 | |
US10235414B1 (en) | Iterative kurtosis calculation for streamed data using components | |
US10320685B1 (en) | Iterative autocorrelation calculation for streamed data using components | |
US10191941B1 (en) | Iterative skewness calculation for streamed data using components | |
CN112035520A (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
CN112035505A (zh) | 一种实时判断大数据分布密度集中程度的方法 | |
US10079910B1 (en) | Iterative covariance calculation for streamed data using components | |
CN110363321B (zh) | 一种实时预测大数据变化趋势的方法 | |
CN111708979A (zh) | 一种实时判断大数据离散程度的方法 | |
US10262031B1 (en) | Decremental kurtosis calculation for big data or streamed data using components | |
US10282445B1 (en) | Incremental kurtosis calculation for big data or streamed data using components | |
CN110515681B (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
US10225308B1 (en) | Decremental Z-score calculation for big data or streamed data using components | |
CN110515680B (zh) | 一种实时判断大数据自身给定延迟重复性的方法 | |
CN111414577A (zh) | 一种实时寻找流数据自身重复规律的方法 | |
CN110909305B (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 |