数据挖掘中是如何计算度量的?
度量可以组织成三个要素,包括分布式、代数式和整体式。这取决于所使用的聚合函数的类型。
分布式 - 如果一个聚合函数可以以如下所示的分布式方式计算,则该函数是分布式的。假设数据被独立地划分为n个集合。它可以对每个分区使用该函数,从而得到n个聚合值。
如果将该函数应用于n个聚合值的结果与将该函数应用于整个数据集(不进行分区)的结果相同,则该函数可以以分布式方式计算。
例如,count() 可以通过首先将数据立方体划分为一组子立方体,计算每个子立方体的 count(),然后将每个子立方体获得的计数相加来计算数据立方体的 count()。因此,count() 是一个分布式聚合函数。
如果一个度量是通过使用分布式聚合函数获得的,则该度量是分布式的。分布式度量可以有效地计算,因为它们可以以分布式方式计算。
代数式 - 如果一个聚合函数可以通过一个具有M个参数(其中M是一个有界的正整数)的代数函数计算,并且每个参数都是通过使用分布式聚合函数获得的,则该函数是代数式的。
例如,avg()(平均值)可以通过 sum()/count() 计算,其中 sum() 和 count() 都是分布式聚合函数。同样,可以证明 min N() 和 max N()(分别在一个给定集合中查找N个最小值和N个最大值)以及标准差() 都是代数聚合函数。如果一个度量是通过使用代数聚合函数获得的,则该度量是代数式的。
整体式 - 如果没有固定的界限来限制定义子聚合所需的存储大小,则一个聚合函数是整体式的。如果没有一个具有M个参数(其中M是常数)的代数函数来描述计算过程。
整体式函数的示例包括 median()、mode() 和 rank()。如果一个度量是通过使用整体式聚合函数获得的,则该度量是整体式的。
大多数大型数据立方体应用程序都需要有效地计算分布式和代数度量。为此存在一些有效的方法。相反,有效地计算整体式度量是很复杂的。然而,确实存在一些有效的方法来近似计算某些整体式度量。
例如,可以不用计算精确的 median(),而是使用近似方法来计算大型数据集的近似中位数。在某些情况下,此类方法足以克服有效计算整体式度量的困难。