数据挖掘中如何计算度量?
度量可以分为三种:分布式、代数式和整体式。这取决于所使用的聚合函数的类型。
分布式 − 如果一个聚合函数可以按如下方式计算,则该函数是分布式的。假设数据独立地分布在 n 个集合中。它可以对每个分区使用该服务,从而得到 n 个聚合值。
如果将函数应用于 n 个聚合值的结果与对整个数据集(未分区)使用该函数得到的结果相同,则可以以分布式方式计算该函数。
例如,可以先将数据立方体划分为一组子立方体,然后对每个子立方体计算 count(),最后将每个子立方体获得的计数相加,从而计算数据立方体的 count() 值。因此,count() 是一个分布式聚合服务。
如果一个度量是使用分布式聚合服务获得的,则该度量是分布式的。分布式度量可以有效地计算,因为它们可以以分布式方式计算。
代数 − 如果一个聚合函数可以通过带有 M 个参数(其中 M 为有界正整数)的代数服务计算,并且每个参数都是使用分布式聚合服务获得的,则该聚合函数是代数的。
例如,avg()(平均值)可以通过 sum()/count() 计算,其中 sum() 和 count() 都是分布式聚合服务。类似地,可以证明 min N() 和 max N()(分别在给定集合中发现 N 个最小值和 N 个最大值)以及 standard deviation() 都是代数聚合服务。如果度量是使用代数聚合服务获得的,则该度量是代数的。
整体 − 如果定义子聚合所需的存储大小没有固定的界限,则聚合函数是整体的。如果存在不连续的代数函数,则该函数带有描述计算的 M 个参数(其中 M 为常数)。
整体函数的示例,例如 median()、mode() 和 rank()。如果度量是使用整体聚合函数获得的,则该度量是整体的。
大多数大型数据立方体应用程序都需要有效地计算分配度量和代数度量。目前有一些有效的方法可以实现这一点。相比之下,有效地计算整体度量则很复杂。然而,仍然有一些有效的方法来近似计算某些整体度量。
例如,可以使用计算海量数据集的近似中位数来代替计算精确的 median()。在某些情况下,这些方法足以克服有效计算整体指标的困难。

