CN110362365B - 一种实时预测流数据变化趋势的方法 - Google Patents
一种实时预测流数据变化趋势的方法 Download PDFInfo
- Publication number
- CN110362365B CN110362365B CN201810254481.7A CN201810254481A CN110362365B CN 110362365 B CN110362365 B CN 110362365B CN 201810254481 A CN201810254481 A CN 201810254481A CN 110362365 B CN110362365 B CN 110362365B
- Authority
- CN
- China
- Prior art keywords
- computing
- linear regression
- window
- components
- simple linear
- 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 32
- 230000008859 change Effects 0.000 title description 11
- 238000004364 calculation method Methods 0.000 claims abstract description 234
- 238000012417 linear regression Methods 0.000 claims abstract description 210
- 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 11
- 230000005540 biological transmission Effects 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005457 optimization Methods 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
- 238000012546 transfer Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 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
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种通过流数据上一个变量实时预测另一个变量的变化趋势的方法,系统,和计算设备可读媒体。本发明的实施方案包括基于调整前计算窗口的简单线性回归系数的多个组件迭代计算调整后计算窗口的简单线性回归系数的多个组件,然后根据需要基于迭代计算的组件生成调整后计算窗口的简单线性回归系数。迭代计算简单线性回归系数可以基于最新数据实时更新预测结果并避免访问调整后计算窗口中的所有数据元素对和执行重复计算从而提高计算效率,节省计算资源和降低计算系统能耗。
Description
技术领域
大数据或流数据分析。
背景技术
互联网,移动通讯,导航,网游,感应技术和大规模计算基础设施每天产生海量数据。大数据就是由于其巨大规模,快速变化及增长速度而超出了传统数据库系统的处理能力及传统分析方法的分析能力的数据。如何高效实时并节省资源地处理和分析大数据带给数据分析师和计算机科学家一个艰难的挑战。
流数据是从数据源不断传出并连续地被接收器接收的数据。流数据可以是传感器采集并连续传送到计算设备或电子设备上的实时数据。通常这包括连续接收有时间间隔,具有相似格式的数据元素。流数据也可以是从存储器连续读出的数据,例如存储在多个计算设备存储器上的大数据集。因此,流数据处理算法可以延伸到大数据处理上,因为大数据集随着时间积累而可以被认为是具有不规律时间间隔的数据流。
当两个数量变量有强线性相关关系时,简单线性回归可基于一个独立变量(也叫解释变量或自变量)的观测数据实时预测另一个从属变量(也叫反应变量或因变量)的值,即可以基于一个变量的变化趋势预测另一个变量的变化趋势。当在流数据上做简单线性回归计算时,可能需要访问大量数据元素。
在新的数据元素被接收后简单线性回归系数可能需要被重新计算以反映最新的数据变化趋势及得到利用了最新数据的预测结果。因此,一些(可能很多)数据元素会被重复访问。例如,也许要为包含最新加入存储媒体上的大数据集的n个数据元素对的一个计算窗口计算简单线性回归系数,这样每接收或访问一个数据元素对,该数据元素对被加入计算窗口而第n个数据元素对被移出计算窗口,计算窗口中的n个数据元素对就会被访问来重新计算简单线性回归系数。使用计算窗口中的所有数据元素来重新计算简单线性回归系数涉及重复数据访问和计算,因此耗时并浪费资源。
取决于需要,计算窗口的规模或长度可能非常大,例如计算窗口中的数据元素可能分布在云平台的成千上万台计算设备上。在不断有数据变化的流数据上用传统方法重新计算简单线性回归系数无法做到实时处理并且占用和浪费大量计算资源。
发明内容
本发明拓展到方法,系统,和计算设备可读媒体以迭代方式计算数据流的简单线性回归系数从而可以实时预测流数据变化趋势。计算系统包含一个或多个计算设备。每个计算设备包含一个或多个处理器。计算系统可以访问一个或两个数据流。计算系统包含一个或两个缓冲区在一个或多个存储媒介上。计算系统保持一个计算窗口长度计数器。计算窗口长度计数器指明缓冲区的计算窗口中数据元素对的数量。为一个调整后计算窗口迭代计算简单线性回归系数包括基于调整前计算窗口的简单线性回归系数的多个组件迭代计算调整后计算窗口的简单线性回归系数的多个组件然后根据需要基于迭代计算的组件生成调整后计算窗口的简单线性回归系数。迭代计算简单线性回归系数只需要访问和使用迭代计算的组件,新加入和去除的数据元素对而避免访问调整后计算窗口中的所有数据元素和执行重复计算从而降低数据访问延迟,提高计算效率,节省计算资源和降低计算系统能耗。
计算窗口中每个变量的和或平均值是必须迭代计算的特殊组件。和或平均值可以被直接或间接迭代计算。对于一个给定的简单线性回归系数迭代算法,假设在同一轮迭代计算中所有迭代计算的组件(包括计算窗口中每个变量的和或平均值)总数为p(p≥3)。直接迭代的组件个数为v(v≥1),则间接迭代的组件个数为w=p-v(w≥0)。
计算系统为指定规模为n(n>1)的调整前计算窗口初始化简单线性回归系数的三个以上(p,p≥3)组件,包括每个变量的一个和或一个平均值或一个和及一个平均值,以及一个或多个其它组件。该三个以上组件的初始化包括从一个或多个计算设备可读媒体上访问或接收已经计算过的组件或根据其定义根据该计算窗口中的数据元素来计算。
计算系统接收一个要加入计算窗口的新的数据元素对。
计算系统存储新的数据元素对到一个或两个缓冲区中。
计算系统通过从调整前计算窗口中去除最老的数据元素对和向调整前计算窗口加入接收的数据元素对来调整调整前计算窗口。
计算系统直接迭代计算调整后计算窗口的简单线性回归系数的除和及平均值之外的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≥3),如果直接迭代计算的组件个数是v(1≤v≤p),那么间接迭代计算的组件的个数是w=p-v(0≤w<p)。可能这些组件都被直接迭代计算(这种情况下v=p>1并且w=0)。但是,无论简单线性回归系数的结果是否在一个特定的轮次被需要和访问,直接迭代计算的组件都必须被计算。
对于一个给定算法,如果一个组件被直接迭代计算,则该组件必须被计算(即每当一个已有的数据元素对被从调整前计算窗口中去除和每当一个数据元素对被加入到调整前计算窗口中时)。但是,如果一个组件被间接迭代计算,则该组件可以通过使用该组件之外的其它一个或多个组件来根据需要,即只有当简单线性回归系数需要被计算和访问时,被计算。这样,当简单线性回归系数在某一个迭代计算轮次不被访问时,可以只有少量的组件需要被迭代地计算。一个间接迭代计算的组件也许会被用于另一个组件的直接迭代计算,在这种情况下,该间接迭代计算的组件的计算不可省略。
简单线性回归系数可以根据需要被计算。当简单线性回归系数在每次计算窗口有变化而不需要被访问时,计算系统只需要为每次数据变化迭代计算每个变量的和或平均值以及除了每个变量的和或平均值之外的一个或多个组件。迭代计算这些组件避免了访问之前的所有输入和做重复计算因此提高计算效率。简单线性回归系数可以在需要被访问时由计算系统基于迭代计算的组件来生成。
在本说明书和权利要求书中,一个“循环缓冲区”是使用单一的有固定长度的似乎首尾相连的“缓冲区”的一个数据结构,有时也被称为环缓冲区。该“缓冲区”既可以是一个常用的循环缓冲区其通常是分配在本地内存里的一块空间,也可以是一个“虚拟循环缓冲区”,其并不一定在内存里而是在硬盘上的文件甚至多台分布式计算设备上的多个分布式文件只要这些分布式文件逻辑上互相连接构成一个“循环缓冲区”。
通常,输入数据被加入到一个大小为2n的一个缓冲区或每个大小为n的两个缓冲区里。当缓冲区没有充满数据时,至少有两种做法。一种是不做简单线性回归系数计算,直到缓冲区充满数据后根据组件的定义用前2n个数据计算二个或多个组件。另一种做法是当需要时可以从一开始用“通过组件进行流数据上的增量简单线性回归计算”,本发明人的另一个专利申请中描述的方法,来增量计算简单线性回归系数直到缓冲区被充满。一旦缓冲区被充满并且前n对数据的简单线性回归系数的二个或多个组件被计算,本文提供的迭代算法可被用来迭代地计算简单线性回归系数的二个或多个组件,然后简单线性回归系数可基于迭代计算的组件来计算。
在本说明书和权利要求书中,一对最老的数据元素是指计算窗口中在时间上距离最新要加入的数据元素对第n个近的数据元素对。
本发明的实现方案包括基于为调整前计算窗口计算的简单线性回归系数的多个组件迭代地计算调整后的计算窗口的简单线性回归系数的多个组件。对于一个给定的简单线性回归系数迭代算法,在同一轮迭代计算中所有迭代计算的组件(包括计算窗口中每个变量的和或平均值)总数为p(p≥3)。直接迭代的组件个数为v(1≤v≤p),则间接迭代的组件个数为w=p-v(w≥0)。其中计算窗口中每个变量的和或平均值是必须迭代计算的特殊组件。和或平均值可以被直接或间接迭代计算。
计算系统为指定规模为n(n>1)的调整前计算窗口初始化简单线性回归系数的三个以上(p,p≥3)组件,包括每个变量的一个和或一个平均值或一个和及一个平均值,以及一个或多个其它组件。该三个以上组件的初始化包括从一个或多个计算设备可读媒体上访问或接收已经计算过的组件或根据其定义根据该计算窗口中的数据元素来计算。
计算系统在接收一个要加入计算窗口的新的流数据元素对。
计算系统存储新的数据元素对到一个或两个缓冲区中。
计算系统通过从调整前计算窗口中去除最老的数据元素对和向调整前计算窗口加入接收的数据元素对来调整调整前计算窗口。
计算系统迭代计算调整后计算窗口的一个和,一个平均值,或一个和及一个平均值。
计算系统为调整后计算窗口直接迭代计算简单线性回归系数的除和及平均值之外的一个或多个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,其可以用于存放大数据集。例如,1012和或1014可以包括数据集123X和123Y。存储系统1011里的数据集可以被数据分析引擎1007访问。
通常,数据流1006可以包括来自不同数据源的流数据,例如,股价,音频数据,视频数据,地理空间数据,互联网数据,移动通讯数据,网游数据,银行交易数据,传感器数据,和/或闭合字幕数据等。这里举例描绘了几个,实时数据1000可以包括从感应器1001,股票1002,通讯1003和银行1004等等实时收集的数据。数据分析引擎1007可以接收来自数据流1006的数据元素。来自不同数据源的数据可以被存储在存储系统1011并且为大数据分析所访问,例如数据集123X和123Y可以来自不同的数据源并且为大数据分析所访问。
请理解图1是以非常简化的形式介绍一些概念,例如,分布设备1016和1017可能经过防火墙才联到数据分析引擎1007,数据分析引擎1007从数据流1006和/或存储系统1011访问或接收的数据可能经过数据过滤器筛选,等等。
图1-1图示了为有两个输入数据流迭代计算简单线性回归系数,其所有(v=p≥3)组件被直接迭代计算,的一个例子计算系统架构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可以生成简单线性回归系数b1 192和b0193。
通常,数据流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,数据元素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≥3)个组件的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可根据需要基于一个或多个初始化或迭代计算的组件计算单线性回归系数。
图1-2图示了为有两个输入数据流迭代计算简单线性回归系数并且部分(v(1≤v<p,p≥3))组件直接迭代计算,部分(w=p-v)组件间接迭代计算的一个例子计算系统架构100B。在一些实现中,计算系统架构100B和100A之间的区别是架构100B包括组件计算模块135。除此之外,和100A有同样标记号的部分都按同样的方式工作。为了不重复之前在100A描述里面解释过的东西,只有不同的部分会在这里讨论。100B里面的数字v和100A里面的数字v可能不同,因为有些100A里被直接迭代计算的组件会在100B里被间接迭代计算。在100A中,v=p≥3,但在100B中,1≤v<p,p≥3。参考图1-2,计算系统架构100B包括组件计算模块135。组件计算模块131的输出可以作为组件计算模块135的输入,计算模块131和135的输出可以作为简单线性回归系数计算模块191的输入,简单线性回归系数计算模块191可以生成简单线性回归系数b1 192和b0 193。组件计算模块135通常包括w=p-v个组件计算模块来间接迭代计算w个组件。例如,组件计算模块135包括组件计算模块163用于间接迭代计算组件Ci1,组件计算模块164用于间接迭代计算组件Ciw,以及它们之间的其它w-2个组件计算模块。间接迭代计算w个组件包括一个一个地间接迭代计算w个组件的每一个。间接迭代计算一个组件包括访问和使用除该组件本身之外的一个或多个组件。那一个或多个组件可以是被初始化,直接迭代计算或间接迭代计算过的。
图1-3图示了一个为流数据迭代计算简单线性回归系数并且支持由两个变量的数据元素交叉组成的单输入数据流并且所有(v=p≥3)个组件被直接迭代计算的计算系统架构100C例子。计算系统架构100C和计算系统架构100A之间的区别是架构100C用由两个变量的数据元素交叉组成的一个单输入数据流并且100C用一个缓冲区为存储数据元素。除了100C的输入模式以外,和100A有一样参考数的部分都按同样的方式工作。为了不重复之前在100A描述里面解释过的东西,只有不同的部分会在这里讨论。图1-3中的数据流190包括数据流123X和123Y,其中来自变量X的数据流123X和来自变量Y的数据流123Y的数据元素是交叉的。随着数据元素对被接收,数据元素可以被放在循环缓冲区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对)的计算窗口。计算窗口122XY包含做简单线性回归系数计算的数据元素。计算窗口122XY中的数据元素在一个缓冲区中交叉存储。计算窗口122XY中X变量的4个数据元素101X,102X,103X和104X分别存在位置121XA,121XB,121XC和121XD。计算窗口122XY中Y变量的4个数据元素101Y,102Y,103Y和104Y分别存在位置121YA,121YB,121YC和121YD。计算窗口122XY中的数据元素可以随着新的数据元素对被放入循环缓冲区121而倒换。例如,当数据元素105X被放入位置121XE和数据元素105Y被放入位置121YE时,计算窗口122XY会变成计算窗口122XYA。当数据元素106X被放入位置121XA和数据元素106Y被放入位置121YA时,计算窗口122XYA会变成计算窗口122XYB。
图1-4图示了一个为流数据迭代计算简单线性回归系数并且支持由两个变量的数据元素交叉组成的单输入数据流并且部分(v(1≤v<p,p≥3))组件直迭代计算,部分(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的组件和数据一起描述。
为指定规模为n(n>1)的调整前计算窗口初始化简单线性回归系数的三个以上(p,p≥3)组件,包括每个变量的一个和或一个平均值或一个和及一个平均值,以及一个或多个其它组件(201)。例如,在计算系统架构100A,100B,100C和100D中,初始化模块132可以用贡献151(数据元素对(101x,101y)的贡献),贡献152(数据元素对(102x,102y)的贡献)和贡献153(其它数据元素对(103x,103y),(104x,104y)......的贡献)的值初始化组件Cd1 141。同样,初始化模块138可以访问组件Cdv的初始值并且用贡献181(数据元素对(101x,101y)的贡献),贡献182(数据元素对(102x,102y)的贡献)和贡献183(其它数据元素对(103x,103y),(104x,104y)......的贡献)的值初始化组件Cdv 145。
方法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)从计算窗口122XY去除,数据元素对(105X,105Y)被加入到计算窗口122XY后,计算窗口122XY会变成调整后的计算窗口122XYA。
方法200包括为调整后计算窗口直接迭代计算简单线性回归系数的v个组件(207),包括:访问从调整前计算窗口去除的数据元素对和加入调整前计算窗口的数据元素对(208);访问简单线性回归系数的v个组件(209);从每个访问的组件中数学地去除去除的数据元素对的任何贡献(210);及对访问的每个组件数学地加入加入的数据元素对的任何贡献(211)。细节描述如下。
为调整后计算窗口直接迭代计算简单线性回归系数的v个组件包括访问从调整前计算窗口去除的数据元素对和加入调整前计算窗口的数据元素对(208)。例如,迭代算法133可以访问数据元素(101X,101Y)和(105X,105Y),迭代算法139也可以访问数据元素(101X,101Y)和(105X,105Y)。
为调整后计算窗口直接迭代计算简单线性回归系数的v个组件包括访问调整前计算窗口的简单线性回归系数的v个组件中的每个组件(209)。例如,迭代算法133可访问组件Cd1 141,迭代算法139可访问组件Cdv 145。
直接迭代计算调整后的计算窗口的简单线性回归系数的v个组件包括数学地从v个组件中的每一个去除被去除的数据元素对的任何贡献(210)。例如,直接迭代计算组件Cd1 143可以包括贡献去除模块133A数学地从组件Cd1 141去除贡献151(数据元素对(101X,101Y)的贡献),直接迭代计算组件Cdv 147可以包括贡献去除模块139A数学地从组件Cdv145去除贡献181(数据元素对(101X,101Y)的贡献)。
直接迭代计算调整后的计算窗口的简单线性回归系数的v个组件包括数学地增加被加入的数据元素对的贡献到v个组件的每一个(211)。例如,直接迭代计算组件Cd1 143可以包括贡献增加模块133B数学地增加贡献154到组件Cd1141,直接迭代计算组件Cdv 147可以包括贡献增加模块139B数学地增加贡献184到组件Cdv 145。贡献154和184都是来自数据元素对(105x,105y)的贡献。
如图1-1,1-2,1-3和1-4所示,组件Cd1 143包括贡献152(数据元素对(102X,102Y)的贡献),其它贡献153(数据元素对(103X,103Y)和(104X,104Y)的贡献),和贡献154(数据元素对(105X,105Y)的贡献)。同样,组件Cdv 147包括贡献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)。例如,参考图1-1和图1-3,简单线性回归系数计算模块191可以基于组件Cd1143到组件Cdv 147范围内的一个或多个组件计算简单线性回归系数b1 192和b0 193。
202-211可以随着更多数据元素对的接收被重复。212-213可以根据需要被重复。例如,计算完组件Cd1 143到组件Cdv 147范围内的组件之后,数据元素对(106X,106Y)可以被接收(202)。(106X,106Y)可以分别放在位置121XA覆盖数据元素101X和121YA覆盖数据元素101Y(203)。通过去除最老的数据元素对(102X,102Y)(205)和加入要被加入的数据元素对(106X,106Y)(206),调整后的计算窗口122XYA可以变成调整后的计算窗口122XYB(204)。
迭代算法133可以用组件Cd1 143(调整后的计算窗口122XYA的)直接迭代计算组件Cd1 144(调整后的计算窗口122XYB的)(207)。迭代算法133可以访问去除的数据元素对(102X,102Y)和加入的数据元素对(106X,106Y)(208)。迭代算法133可以访问组件Cd1 143(209)。直接迭代计算组件Cd1 144可以包括贡献去除模块133A从组件Cd1 143数学地去除贡献152(即,去除的数据元素对(102X,102Y)的贡献)(210)。直接迭代计算组件Cd1 144可以包括贡献增加模块133B数学地增加贡献155(即,增加的数据元素对(106X,106Y)的贡献)到组件Cd1 143上(211)。同样,迭代算法139可以用组件Cdv 147(调整后的计算窗口122XYA的)直接迭代计算组件Cdv 148(调整后的计算窗口122XYB的)(207)。迭代算法139可以访问去除的数据元素对(102X,102Y)和加入的数据元素对(106X,106Y)(208)。迭代算法139可以访问组件Cdv 147(209)。直接迭代计算组件Cdv 148可以包括贡献去除模块139A从组件Cdv147数学地去除贡献182(即,去除的数据元素对(102X,102Y)的贡献)(210)。直接迭代计算组件Cdv 148可以包括贡献增加模块139B数学地增加贡献185(即,增加的数据元素对(106X,106Y)的贡献)到组件Cdv 147上(211)。
如图1-1,1-2,1-3和1-4所示,组件Cd1 144包括其它贡献153(数据元素对(103X,103Y)和(104X,104Y)的贡献),贡献154(数据元素对(105X,105Y)的贡献),和贡献155(数据元素对(106X,106Y)的贡献)。同样,组件Cdv 148包括其它贡献183(数据元素对(103X,103Y)和(104X,104Y)的贡献),贡献184(数据元素对(105X,105Y)的贡献)和贡献185(数据元素对(106X,106Y)的贡献)。
方法200包括,根据需要即只有简单线性回归系数被访问时,间接迭代计算w个组件和单线性回归系数。如果单线性回归系数不被访问,方法200包括继续为下一个计算窗口接收下一个要加入的数据元素(202)。如果单线性回归系数被访问,方法200包括间接迭代计算w个组件(212),基于一个或多个迭代计算的组件计算单线性回归系数(213)。
当下一个要加入的数据元素对被接收,组件Cd1 144可被用来直接迭代计算下一个组件Cd1,组件Cdv 148可被用来直接迭代计算下一个组件Cdv。
图3图示在流数据上迭代计算简单线性回归系数时计算窗口300中被访问的数据元素对。计算窗口和计算集的区别是计算窗口上的数据元素对有顺序(例如,数据元素对总是从计算窗口的最左边或最右边被去除并且数据元素对可以加入计算窗口的另一边)。例如,参考图3,最早接收的数据元素对会从计算窗口300的最左边被去除并且一个新接收的数据元素对会增加到计算窗口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图示简单线性回归系数的定义。假设计算窗口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和402分别是简单线性回归系数b1和b0的定义方程。方程403和405是分别为第k轮计算调整前计算窗口XY里变量X的所有数据元素的总和XSk和平均值的传统方程。方程404和406是分别为第k轮计算XY里变量Y的所有数据元素的总和YSk和平均值/>的传统方程。方程407和408是分别为第k轮计算XY的简单线性回归系数b1k和b0k的传统方程。方程409和411是分别为第k+1轮计算调整后计算窗口XY′里变量X的所有数据元素的总和XSk和平均值/>的传统方程。方程410和412是分别为第k+1轮计算调整后的XY′里变量Y的所有数据元素的总和YSk和平均值/>的传统方程。方程413和414是分别为第k+1轮计算调整后计算窗口XY′的简单线性回归系数b1k+1和b0k+1的传统方程。
为展示如何利用组件迭代计算简单线性回归系数,三个不同的迭代简单线性回归系数算法被提供作为例子。
图4-2说明第一个例子迭代简单线性回归系数计算算法(迭代算法1)。方程415和417可以分别被用来初始化调整前计算窗口XY里变量X的所有数据元素的XSk和/或方程416和418可以分别被用来初始化XY里变量Y的所有数据元素的YSk和/或/>方程419,420,421可以分别被用来初始化组件XSSk,XVk,和SXYk。根据需要方程422可以基于初始化的组件计算简单线性回归系数b1k。根据需要方程423可以基于b1k计算简单线性回归系数b0k。假设过段时间数据元素对(xa,ya)被加入调整前计算窗口XY并且数据元素对(xr,yr)被从XY去除。基于组件XSk和/或/>方程424和426可以分别被用来迭代计算调整后计算窗口XY′里变量X的XSk+1和/或/>基于组件YSk和/或/>方程425和427可以分别被用来迭代计算XY′里变量Y的YSk+1和/或/>基于组件XSSk,方程428可以迭代计算XY′的组件XSSk+1。基于组件XSSk+1,方程429可以计算XY′的组件XVk+1。基于组件SXYk,方程430可以迭代计算XY′的组件SXYk+1。基于迭代计算的组件,方程431可以迭代计算调整后计算窗口XY′的简单线性回归系数b1k+1。基于b1k+1,方程432可以迭代计算调整后计算窗口XY′的简单线性回归系数b0k+1。420,422,423,429,431,和432分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
图4-3说明第二个例子迭代简单线性回归系数计算算法(迭代算法2)。方程433和435可以分别被用来初始化调整前计算窗口XY里变量X的所有数据元素的XSk和/或方程434和436可以分别被用来初始化XY里变量Y的所有数据元素的YSk和/或/>方程437和438可以分别被用来初始化组件SSDXk和SDXYk。根据需要方程439可以基于SSDXk和SDXYk计算简单线性回归系数b1k。根据需要方程440可以基于b1k计算简单线性回归系数b0k。假设过段时间数据元素对(xa,ya)被加入调整前计算窗口XY并且数据元素对(xr,yr)被从XY去除。基于组件XSk和/或/>方程441和443可以分别被用来迭代计算调整后计算窗口XY′里变量X的XSk+1和/或/>基于组件YSk和/或/>方程442和444可以分别被用来迭代计算XY′里变量Y的YSk+1和/或/>基于组件SSDXk,方程445可以迭代计算XY′的组件SSDXk+1。基于组件SDXYk,方程446可以迭代计算XY′的组件SDXYk+1。基于SSDXk+1和SDXYk+1,方程447可以迭代计算调整后计算窗口XY′的简单线性回归系数b1k+1。基于b1k+1,方程448可以迭代计算调整后计算窗口XY′的简单线性回归系数b0k+1。440,445,446,和448分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
图4-4说明第三个例子迭代简单线性回归系数计算算法(迭代算法3)。方程449和451可以分别被用来初始化调整前计算窗口XY里变量X的所有数据元素的XSk和/或方程450和452可以分别被用来初始化XY里变量Y的所有数据元素的YSk和/或/>方程453和454可以分别被用来初始化组件XSSk和SXYlk。根据需要方程455可以基于初始化的组件计算调整前计算窗口XY的简单线性回归系数b1k。根据需要方程456可以基于b1k计算调整前计算窗口XY的简单线性回归系数b0k。假设过段时间数据元素对(xa,ya)被加入调整前计算窗口XY并且数据元素对(xr,yr)被从XY去除。基于组件XSk和/或/>方程457和459可以分别被用来迭代计算调整后计算窗口XY′里变量X的XSk+1和/或/>基于组件YSk和/或/>方程458和460可以分别被用来迭代计算XY′里变量Y的YSk+1和/或/>基于组件XSSk,方程461可以迭代计算XU′的组件XSSk+1。基于组件SXYk,方程462可以迭代计算XU′的组件SXYk+1。基于迭代计算的组件,方程463可以迭代计算调整后计算窗口XY′的简单线性回归系数b1k+1。基于b1k+1,方程464可以迭代计算调整后计算窗口XY′的简单线性回归系数b0k+1。455,456,463和464分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。
为展示迭代简单线性回归系数算法以及它们与传统算法的比较,下面给出三个例子。使用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次除法,9次乘法,12次加法和13次减法。
相同的方程和过程可被用来分别为图5-2显示的计算窗口504简单线性回归系数和为图5-3显示的计算窗口505计算简单线性回归系数。计算窗口504的简单线性回归系数 这个计算中的每一个在没有优化的情况下包括3次除法,9次乘法,12次加法和13次减法。计算窗口505的简单线性回归系数/> 这个计算中的每一个在没有优化的情况下包括3次除法,9次乘法,12次加法和13次减法。传统算法在没有优化的情况下计算计算窗口长度为n的简单线性回归系数时通常需要完成3次除法,2n+1次乘法,4(n-1)次加法,和3n+1次减法。
下面用迭代算法1分别计算计算窗口503,504,和505的简单线性回归系数。
为长度为4的计算窗口503计算简单线性回归系数:
用方程417初始化第1轮和方程418初始化第1轮/>
用方程419,420,421分别初始化第1轮XSS1,XV1,XSY1:
用方程422和423分别计算第1轮b11和b01:
为计算窗口503计算简单线性回归系数时共有3个除法,17个乘法,18个加法和13个减法。
为长度为4的计算窗口504计算简单线性回归系数:
用方程426,427,428,429和430分别迭代计算第2轮的组件XSS2,XV2,和SXY2:
XSS2=XSS1+xa 2-xr 2=110+42-82=62
SXY2=SXY1+xaya-xryr=112+4×7-8×9=68
用方程431和432分别计算第2轮b12和b02:
为计算窗口504迭代计算简单线性回归系数时共有3个除法,9个乘法,4个加法和7个减法。
为长度为4的计算窗口505计算简单线性回归系数:
用方程426,427,428,429和430分别迭代计算第3轮的组件XSS3,XV3,和SXY3:
XSS3=XSS2+xa 2-xr 2=62+22-32=57
SXY3=SXY2+xaya-xryr=68+2×(-1)-3×2=60
用方程431和432分别计算第3轮b13和b03:
/>
为计算窗口505迭代计算简单线性回归系数时共有3个除法,9个乘法,4个加法和7个减法。
下面用迭代算法2分别计算计算窗口503,504,和505的简单线性回归系数。
为长度为4的计算窗口503计算简单线性回归系数:
用方程435初始化第1轮和方程436初始化第1轮/>
用方程437和438分别初始化第1轮SSDX1和SDXY1:
用方程439和440分别计算第1轮b11和b01:
为计算窗口503计算简单线性回归系数时共有3个除法,9个乘法,12个加法和13个减法。
为长度为4的计算窗口504计算简单线性回归系数:
用方程443,444,445和446分别迭代计算第2轮的组件SSDX2和SDXY2:
用方程447和448分别计算第2轮b12和b02:
为计算窗口504迭代计算简单线性回归系数时共有3个除法,4个乘法,7个加法和9个减法。
为长度为4的计算窗口505计算简单线性回归系数:
用方程443,444,445和446分别迭代计算第3轮的组件SSDX3和SDXY3:
用方程447和448分别计算第3轮b13和b03:
为计算窗口505迭代计算简单线性回归系数时共有3个除法,4个乘法,7个加法和9个减法。
下面用迭代算法3分别计算计算窗口503,504,和505的简单线性回归系数。
为长度为4的计算窗口503计算简单线性回归系数:
用方程451初始化第1轮和方程452初始化第1轮/>
用方程453和454分别初始化第1轮XSS1和SXY1:
用方程455和456分别计算第1轮b11和b01:
为计算窗口503计算简单线性回归系数时共有3个除法,12个乘法,12个加法和3个减法。
为长度为4的计算窗口504计算简单线性回归系数:
用方程459,460,461和462分别迭代计算第2轮的组件XSS2和SXY2:
/>
XSS2=XSS1+xa 2-xr 2=110+42-82=62
SXY2=SXY1+xaya-xryr=112+4×7-8×9=68
用方程463和464分别计算第2轮b12和b02:
为计算窗口504迭代计算简单线性回归系数时共有3个除法,8个乘法,4个加法和7个减法。
为长度为4的计算窗口505计算简单线性回归系数:
用方程459,460,461和462分别迭代计算第3轮的组件XSS3和SXY3:
XSS3=XSS2+xa 2-xr 2=62+22-32=57
SXY3=SXY2+xaya-xryr=68+2×(-1)-3×2=60
用方程463和464分别计算第3轮b13和b03:
为计算窗口505迭代计算简单线性回归系数时共有3个除法,8个乘法,4个加法和7个减法。
在以上三个例子中,平均值被用于迭代简单线性回归系数计算。和也可被用于简单线性回归系数迭代计算,只是操作数不同。
图6-1图示了n=4时,传统简单线性回归系数算法和迭代简单线性回归系数算法的计算量。如图所示,任何一个迭代算法和传统算法都比传统算法少很多加法操作和减法操作。
图6-2图示了n=1,000,000时,传统简单线性回归系数算法和迭代简单线性回归系数算法的计算量。如图所示,任何一个迭代算法都比传统算法少很多乘法操作,加法操作和减法操作。把需要在成千上万台计算机上处理的数据只在单机上就能完成。大大提高计算效率,减少计算资源,降低计算设备能耗。
本发明可以在不脱离其思想或本质特征的情况下以其它特定的方式来实现。本申请描述的实现方案从各个方面来说是仅作为示范性的而不是限制性的。因此,本发明的范围由附加的权利要求书而不是前面的描述来指明。与权利要求书中权利要求的含义和范围等价的所有变化都包含在它们的范围内。
Claims (11)
1.一种调整后计算窗口的简单线性回归系数的生成方法,其特征在于:
由基于计算设备的一个计算系统,为存储于该系统上至少一个存储设备上的一个或两个缓冲区中的一个指定规模为n的调整前计算窗口,n>1,初始化每个变量的一个和,或一个平均值,或一个和及一个平均值,以及初始化简单线性回归系数的除了和及平均值之外的一个或多个其它组件,该一个或两个缓冲区中存储了从一个或两个数据流接收的n对数据元素;
由基于计算设备的该计算系统,接收一个要加入该调整前计算窗口的数据元素对;
由基于计算设备的该计算系统,存储接收的数据元素对到该一个或两个缓冲区中;
由基于计算设备的该计算系统,调整该调整前计算窗口,通过:
从该调整前计算窗口中去除最早加入的数据元素对;以及
向该调整前计算窗口加入要加入的数据元素对;
由基于计算设备的该计算系统,为该调整后计算窗口迭代计算每个变量的一个和,或一个平均值,或一个和及一个平均值;
由基于计算设备的该计算系统,至少基于该调整前计算窗口的简单线性回归系数的该一个或多个除了和及平均值之外的其它组件,为该调整后计算窗口直接迭代计算简单线性回归系数的除了和及平均值之外的其它组件,该直接迭代计算包括:
访问被去除数据元素对和被加入的数据元素对而避免访问该调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低能耗;
访问该调整前计算窗口的简单线性回归系数的该一个或多个除了和及平均值之外的其它组件;以及
基于被去除的数据元素对和被加入的数据元素对,从访问的每一个组件中数学地去除被去除的数据元素对的任何贡献和数学地加入被加入的数据元素对的任何贡献而避免在直接迭代计算简单线性回归系数的该一个或多个组件中使用该调整后计算窗口中的所有数据元素来提高计算效率;以及
由基于计算设备的该计算系统,基于一个或多个为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成简单线性回归系数。
2.按照权利要求1所述的方法,其特征在于:所述为该调整后计算窗口生成简单线性回归系数进一步包括由基于计算设备的该计算系统为该调整后计算窗口间接迭代计算简单线性回归系数的一个或多个组件,间接迭代计算该一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算该一个或多个组件。
3.按照权利要求1所述的方法,其特征在于:所述接收一个要加入的数据元素对包括接收多个要加入该调整前计算窗口的数据元素对,该方法也进一步包括对于多个要加入的数据元素对中的每一个数据元素对进行调整该调整前计算窗口,迭代计算每个变量的和或平均值或和及平均值,直接迭代计算一个或多个其它组件,以及为该调整后计算窗口生成简单线性回归系数。
4.按照权利要求3所述的方法,其特征在于:所述为该调整后计算窗口生成简单线性回归系数当且仅当该简单线性回归系数需要被访问时。
5.按照权利要求4所述的方法,其特征在于:所述为该调整后计算窗口生成简单线性回归系数进一步包括由基于计算设备的该计算系统为该调整后计算窗口间接迭代计算简单线性回归系数的一个或多个组件,间接迭代计算该一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算该一个或多个组件。
6.一个计算系统,其特征在于:
一个或多个计算设备;
每个计算设备包含一个或多个处理器;
一个或多个存储设备;以及
一个或多个计算模块,当该一个或多个计算模块被一个或多个计算设备中的至少一个计算设备执行时,为该一个或两个缓冲区的一个指定规模的调整后计算窗口确定简单线性回归系数,这里该简单线性回归系数的确定包括:
a.为一个或两个缓冲区的一个指定规模为n的调整前计算窗口,n>1,初始化每个变量的一个和,或一个平均值,或一个和及一个平均值,以及初始化简单线性回归系数的除和及平均值之外的一个或多个其它组件,该一个或两个缓冲区位于该计算系统里该一个或多个存储设备中的至少一个存储设备上并按接收顺序存储了来自一个或两个数据流的n对数据元素;
b.接收一个要加入到该调整前计算窗口的数据元素对;
c.存储接收的数据元素对到该一个或两个缓冲区中;
d.调整该调整前计算窗口,包括:
从该调整前计算窗口中去除最早加入的数据元素对;以及
向该调整前计算窗口中加入要加入的数据元素对;
e.为该调整后计算窗口迭代计算每个变量的一个和,或一个平均值,或一个和及一个平均值;
f.为该调整后计算窗口直接迭代计算简单线性回归系数的一个或多个除了和及平均值以外的其它组件,包括:
访问被去除的数据元素对和被加入的数据元素对而避免访问该调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低能耗;
访问该调整前计算窗口的简单线性回归系数的该一个或多个除了和及平均值以外的其它组件;
基于被去除的数据元素对和被加入的数据元素对,通过从该调整前计算窗口的每一个组件中数学地去除被去除的数据元素对的任何贡献和数学地加入被加入的数据元素对的任何贡献来得到该调整后计算窗口的简单线性回归系数的一个或多个除了和及平均值以外的其它组件,而避免在直接迭代计算简单线性回归系数的该一个或多个组件中使用该调整后计算窗口中的所有数据元素来提高计算效率;以及
g.基于一个或多个为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成简单线性回归系数。
7.按照权利要求6所述的计算系统,其特征在于:该一个或多个计算模块,当它们被一个或多个计算设备中的至少一个计算设备执行时,多次执行b,c,d,e,f,和g。
8.按照权利要求7所述的计算系统,其特征在于:执行g当且仅当简单线性回归系数被访问时。
9.按照权利要求8所述的计算系统,其特征在于:所述g进一步包括由该计算系统为该调整后计算窗口间接迭代计算简单线性回归系数的一个或多个组件,间接迭代计算该一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算该一个或多个组件。
10.一种计算设备可读媒体,其包含多条计算设备可执行指令,当这些计算设备可执行指令被包含一个或多个计算设备以及一个或多个存储设备的计算系统中的至少一个计算设备运行时,使得该计算系统执行一个为流数据上的调整后计算窗口生成简单线性回归系数的方法,其特征在于:
为一个或两个缓冲区的一个指定规模为n的调整前计算窗口,n>1,初始化每个变量的一个和,或一个平均值,或一个和及一个平均值,以及初始化简单线性回归系数的除和及平均值之外的一个或多个其它组件,该一个或两个缓冲区位于该计算系统里一个或多个存储设备中的至少一个存储设备上并按时间顺序存储了来自一个或两个数据流的n对数据元素;
接收一个要加入到该调整前计算窗口的数据元素对;
存储接收的数据元素对到该一个或两个缓冲区中;
调整该调整前计算窗口,通过:
从该调整前计算窗口中去除最早接收的数据元素对;以及
向该调整前计算窗口加入要加入的数据元素对;
为该调整后计算窗口迭代计算每个变量的一个和,或一个平均值,或一个和及一个平均值;
至少基于该调整前计算窗口的简单线性回归系数的该一个或多个除了和及平均值之外的其它组件,为该调整后计算窗口直接迭代计算简单线性回归系数的一个或多个除了和及平均值之外的其它组件,该直接迭代计算包括:访问被去除的数据元素对和被加入的数据元素对而避免访问该调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低系统能耗;
访问该调整前计算窗口的简单线性回归系数的该一个或多个除了和及平均值之外的其它组件;以及
基于被去除的数据元素对和被加入的数据元素对,从访问的每一个组件中数学地去除被去除的数据元素对的任何贡献和数学地加入被加入的数据元素对的任何贡献而避免在直接迭代计算简单线性回归系数的该一个或多个组件中使用该调整后计算窗口中的所有数据元素来提高计算效率;以及
基于一个或多个为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成简单线性回归系数。
11.一种计算设备可读媒体,其特征在于:所述计算设备可读媒体包含多条计算设备可执行指令,当所述计算设备可执行指令被包含一个或多个计算设备以及一个或多个存储设备的计算系统中的至少一个计算设备运行时,使得该计算系统实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810254481.7A CN110362365B (zh) | 2018-03-26 | 2018-03-26 | 一种实时预测流数据变化趋势的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810254481.7A CN110362365B (zh) | 2018-03-26 | 2018-03-26 | 一种实时预测流数据变化趋势的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362365A CN110362365A (zh) | 2019-10-22 |
CN110362365B true CN110362365B (zh) | 2024-02-13 |
Family
ID=68212801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810254481.7A Active CN110362365B (zh) | 2018-03-26 | 2018-03-26 | 一种实时预测流数据变化趋势的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362365B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093445A (zh) * | 2007-07-27 | 2007-12-26 | 中国科学院软件研究所 | 基于软件过程时序数据自动挖掘的多步预测方法和系统 |
CN105893541A (zh) * | 2016-03-31 | 2016-08-24 | 中国科学院软件研究所 | 一种基于混合存储的流式数据自适应持久化方法及系统 |
US9760539B1 (en) * | 2015-02-28 | 2017-09-12 | Cloud & Stream Gears Llc | Incremental simple linear regression coefficient calculation for big data or streamed data using components |
CN107222892A (zh) * | 2017-07-10 | 2017-09-29 | 东南大学 | 基于局部加权线性回归的超密集网络负载均衡优化方法 |
CN107707431A (zh) * | 2017-10-31 | 2018-02-16 | 河南科技大学 | 一种面向云平台的数据安全监测方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5178374B2 (ja) * | 2008-07-29 | 2013-04-10 | キヤノン株式会社 | 検出装置 |
US10097973B2 (en) * | 2015-05-27 | 2018-10-09 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
-
2018
- 2018-03-26 CN CN201810254481.7A patent/CN110362365B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093445A (zh) * | 2007-07-27 | 2007-12-26 | 中国科学院软件研究所 | 基于软件过程时序数据自动挖掘的多步预测方法和系统 |
US9760539B1 (en) * | 2015-02-28 | 2017-09-12 | Cloud & Stream Gears Llc | Incremental simple linear regression coefficient calculation for big data or streamed data using components |
CN105893541A (zh) * | 2016-03-31 | 2016-08-24 | 中国科学院软件研究所 | 一种基于混合存储的流式数据自适应持久化方法及系统 |
CN107222892A (zh) * | 2017-07-10 | 2017-09-29 | 东南大学 | 基于局部加权线性回归的超密集网络负载均衡优化方法 |
CN107707431A (zh) * | 2017-10-31 | 2018-02-16 | 河南科技大学 | 一种面向云平台的数据安全监测方法及系统 |
Non-Patent Citations (1)
Title |
---|
Logistic 回归系数极大似然估计的计算;王治;数学理论与应用;第29卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110362365A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9928215B1 (en) | Iterative simple linear regression coefficient calculation for streamed data using components | |
US20150278159A1 (en) | Iteratively calculating standard deviation for streamed data | |
US9760539B1 (en) | Incremental simple linear regression coefficient calculation for big data or streamed data using components | |
US20180270158A1 (en) | Decremental autocorrelation calculation for big data using components | |
CN110362365B (zh) | 一种实时预测流数据变化趋势的方法 | |
US10275488B1 (en) | Incremental covariance calculation for big data or streamed data using components | |
US10394809B1 (en) | Incremental variance and/or standard deviation calculation for big data or streamed data using components | |
CN110909305B (zh) | 一种实时判断数据流变化同向性及其程度的方法 | |
CN110363321B (zh) | 一种实时预测大数据变化趋势的方法 | |
US10248690B1 (en) | Decremental correlation calculation for big data or streamed data using components | |
US10394810B1 (en) | Iterative Z-score calculation for big data using components | |
CN112035521A (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
CN110515681B (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
CN110457340B (zh) | 一种实时寻找大数据自身重复规律的方法 | |
CN110515680B (zh) | 一种实时判断大数据自身给定延迟重复性的方法 | |
US10079910B1 (en) | Iterative covariance calculation for streamed data using components | |
US10320685B1 (en) | Iterative autocorrelation calculation for streamed data using components | |
CN112784211A (zh) | 一种实时预测大数据或流数据变化趋势的方法 | |
US10191941B1 (en) | Iterative skewness calculation for streamed data using components | |
US10318530B1 (en) | Iterative kurtosis calculation for big data using components | |
US10162856B1 (en) | Incremental correlation calculation for big data or streamed data using components | |
CN112035520A (zh) | 一种实时判断流数据自身给定延迟重复性的方法 | |
CN111708972A (zh) | 一种实时判断流数据分布密度集中程度的方法 | |
US10282445B1 (en) | Incremental kurtosis calculation for big data or streamed data using components | |
CN111858660A (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 |