专利名称:处理数据流的方法和设备的利记博彩app
技术领域:
本发明总体涉及数据处理技术,并且尤其涉及用于聚类(clustering)和分类诸如高维数据流之类的数据流的技术。
背景技术:
因为可以非常容易地收集流数据,所以用于处理数据流的技术近些年来已经变得重要了。也就是说,硬件技术的进步已经使日常生活中自动地记录与事务和活动相关联的数据变得容易。仅仅举例来说,可以在零售应用、多媒体应用、远程通信应用等的环境中收集这样的数据。此外,已知这样的数据经常具有与之相关联的非常高的维数(dimensionality)。仅仅举例来说,内在地具有高维数的数据集可以包括人口统计数据集,其中维度包含诸如姓名、年龄、薪水、以及许多其它用于表征个人的特征之类的信息。
这样的数据流在许多实际领域(例如,如上面通过举例提及的零售、多媒体、远程通信)中的普遍存在已经导致进行了许多研究,尤其是在流数据的聚类(clustering)和分类的领域更是如此。对于数据流领域来说,聚类问题是尤其让人感兴趣的,这是因为它可以应用于数据概括和离群值(outlier)检测。在下述文献中公开了这种研究的示例1998年的ACM SIGMOD会议上、由R.Agrawal等人所著的“Automatic Subspace Clustering of High Dimensional Data for DataMining Applications”;1999年的ACM SIGMOD会议h、由C.C.Aggarwal等人所著的“Fast Algorithms for Projected Clustering”;2003年的VLDB会议上、由C.C.Aggarwal等人所著的“A Frameworkfor Clustering Evolving Data Streams”;以及2004的VLDB会议上、由C.C.Aggarwal等人所著的“A Framework for High DimensionalProjected Clustering of Data Streams”,这些公开通过引用包括在此。
发明内容
本发明提供了用于聚类和分类流数据的技术。虽然不局限于此,但是这样的技术尤其适合于呈现高维数的流数据。
举例来说,在本发明的一个方面,一种用于处理数据流的技术包含以下步骤/操作。维护表示数据流中的一个或多个聚类的聚类结构。使用在聚类结构中的数据点,为一个或者多个聚类中的每一个聚类确定一个投影维度(projected dimension)集。使用与用于一个或者多个聚类中的每一个聚类的每个投影维度集相关联的距离,为数据流的进入(incoming)数据点确定到一个或者多个聚类的分配。
在本发明的另一个方面中,聚类结构可以用于对数据流中的数据进行分类。
根据对以下要结合附图阅读的本发明的说明性实施例的详细说明,本发明的这些及其他目的、特征和优点将变得明显。
图1说明了依据本发明的一个实施例的服务器结构,依据该结构可以采用数据流处理;图2说明了依据本发明的一个实施例、用于对高维数据流进行聚类的方法;图3说明了依据本发明的实施例、用于在不同的聚类上确定投影(projection)的方法;图4说明了依据本发明的实施例、用于为聚类查找界限的方法;以及图5说明了依据本发明的实施例、用于执行高维数据流分类的方法。
具体实施例方式
以下的描述将使用一个示例性的数据处理系统体系结构来说明本发明。然而,应该理解,本发明不局限于和任何特定的系统体系结构一起使用。作为替代,本发明一般来说可应用于其中期望执行数据流聚类和分类的任何数据处理系统。
虽然本发明不局限于此,但是本发明尤其适用于高维流数据集。仅仅举例而言,当有10个或更多维度时,可以认为流的维数是“高”的。然而,没有规定认为流数据呈现“高”维数的严格的维数阈值。尽管如此,本发明的技术不局限于任何特定量的维数阈值。
此外,此处使用的短语“数据流”可以泛指在给定时间段上的连续数据序列。举例来说,可以由使用连续数据存储的实时处理生成这样的数据序列。例如,甚至诸如使用信用卡之类的、每天生活中的简单交易也会导致在信用卡公司的数据库处的自动存储。对于大公司来说,这可以导致上百万的数据事务-高容量数据流的典型示例。
如将在下面详细说明的那样,本发明提供了用于在高维数据流上构造聚类的技术。这样的技术采用迭代处理,其用于在维度子空间中聚类数据对象。可以进一步采用该方法来对高维流数据进行分类。为了执行分类,在一个说明性实施例中,本发明的技术通过使用交替投影并且在这些投影上进行聚类来构造聚类。因此,本发明提供了用于高维数的投影数据流的聚类和分类的技术。
将聚类问题说明性地定义为以下内容对于给定的数据点(此处也称为“点”)集,希望把这些点划分成为一个或多个相似的对象组,其中由距离函数定义相似性的概念。在数据流领域中,聚类问题需要这样的处理,其可以连续地确定数据中的支配(dominant)聚类,而不受流的先前历史记录所支配。
即使在传统的静态数据集领域中,高维数情况也向聚类算法给出了一个特别的难题。这是因为在高维数情况中数据的稀疏性(sparsity)而造成的。在高维空间中,所有的点对都趋向于彼此是几乎等间距的。因此,以有意义的方法定义基于距离的聚类经常是不切实际的。
已知存在可以为维度的特定子集确定聚类的用于投影聚类的技术,可参见例如1999年的ACM SIGMOD会议上、由C.C.Aggarwal等人所著的“Fast Algorithms for Projected Clustering”(其公开通过引用包括在此)。在这些方法中,这样定义聚类以便每个聚类对于特定的一组维度是特定的。这在某种程度上减轻了高维空间中的稀疏性问题。即使由于数据的稀疏性而导致未必可以在全部维度上有意义地定义聚类,但是也可以找到维度的某些子集,在其上的点的特定子集形成高质量和有意义的聚类。当然,这些维度的子集可以在不同的聚类上发生改变。这样的聚类称为投影聚类。
投影聚类的概念形式上定义如下。假定k是要查找的聚类数目。聚类算法将把其中报告了每个聚类的子空间的维数l当做输入。该算法的输出包含所述聚类中的点集,以及聚类特定的维度集。
在数据流的环境中,查找投影聚类的问题变得更加是个难题。这是因为为每个聚类查找相关维度集的附加问题使得该问题在数据流环境中显著增加了更多计算强度。虽然已经在数据流环境中研究了聚类问题,但是这些方法是用于全维数聚类的情况。本发明依据投影聚类解决了对高维数据流进行聚类的显著更难的问题。
如将要说明性阐述的那样,本发明提供了用于高维投影流聚类的技术,所述聚类包括在流的发展过程期间连续改进投影维度和数据点的集合。以这样的方式执行与每个聚类相关联的维度集的更新,以便可以随着时间的推移有效地衍变与每个聚类相关联的点和维度(应当理解,维度是点的一个分量,例如人口统计数据库对于每个个人具有一个点,其中的一个维度是他的年龄)。为了实现这个目标,使用了在这些聚类内部的点的统计数据的压缩(condensed)表示。以这样的方式选择这些压缩表示,以便可以在快速数据流中有效地更新它们。同时,存储足够量的统计数据,以便可以快速地计算有关在给定投影中的聚类的重要量度。
此外,本发明解决了高维数据流分类的问题。应当注意到,由于有大量可以在分类处理中使用的属性组合,所以高维数的情况向分类问题给出了特殊的难题。可以使用本发明的聚类处理以便提高分类处理的效率,这是因为可以与高维投影流聚类方法结合使用最接近聚类分类处理。可以使用这个最接近聚类分类方法,以便为各种情况构造有效的高维分类器。
数据流包含在时戳T1…TK到达的多维记录X1…XK的集合。每个数据点Xi是包含d个维度的多维记录,表示为Xi=(xi1…xid)。因为流聚类处理应该向新近的(recent)数据点提供更高的重要性级别,所以引入了衰减数据结构的概念,该结构能够以灵活的方式对聚类的新近性(recency)进行调整。假定每个数据点具有由对时间t的函数f(t)定义的权重。函数f(t)也称为衰减函数。衰减函数的值在(0,1)的范围内。还假定衰减函数是随着时间t均匀衰变(decay)的单调递减函数。特别地,为衰减函数选择了指数形式。为了将这个概念公式化,将数据流中的点的半衰期定义如下点的半衰期定义为在f(t0)=(1/2)f(0)的时间处。
概念上来说,定义半衰期的目的是定义分配给流中的每个数据点的权重的衰变速率。相应地,将衰变速率定义为数据流的半衰期的倒数。用λ=1/t0表示衰减率。为了保持半衰期属性,用f(t)=2-λ-t定义数据流中每个点的权重。从聚类处理的观点来看,每个数据点的权重是f(t)。显然这个衰变函数创建了1/λ的半衰期。此外,显然通过改变λ的值有可能改变数据流中历史信息重要性衰变的速率。λ的值越高,和更新近的数据相比,历史信息的重要性越低。
下面将定义衰减聚类结构(FCS),它是一种被设计成能捕获在数据流的过程期间生成的聚类的关键统计特征的数据结构。衰减聚类结构的目的是捕获足够数目的基础统计数据,以便有可能计算这些基础聚类的关键特征。
在时间t处用于具有时戳Ti1…Tin的d维点集C={Xi1…Xin}的衰减聚类结构被定义为包含以下条目集的(2·d+1)元组(i)对于每个维度j,由在那个维度中的相应数据值的平方的加权和给出第j个条目。每个数据点的权重由该数据点的从其到达数据流开始的失时效(staleness)级别所定义。因此,这个条目包含d个值。第j个条目等于∑k=1nf(t-Tik)·(xikj)2。
(ii)对于每个维度j,由相应数据值的加权和给出第j个条目。每个数据点的权重由该数据点的从其到达数据流开始的失时效级别所定义。因此,这个条目包含d个值。第j个条目等于∑k=1nf(t-Tik)·(xikj)。
(iii)此外还维护单个条目W(t),其包含在时间t处所有数据点权重的总和。因此,这个条目等于∑k-1nf(t-Tik)。
依据本发明,用于聚类的整体方法使用迭代处理,其与为不同聚类构造点和维度相结合地维护衰减聚类结构。这个为不同聚类构造和维护点和维度的处理描述如下。此外,该方法可以用于高维分类。这是因为该技术可以用于构造对于给定类别来说特定的聚类。当接收到新的测试示例时,将它们放入最接近的聚类中,并且报告相应的类别标记。
首先参见图1,一个框图说明了适于采用依据本发明实施例的聚类和分类方法的硬件实现。如说明的那样,示例系统包含服务器100。服务器100可以包含中央处理单元(CPU)120,其与主存储器130和盘140相连。虽然没有明确示出,但是假定可以有多个可以从中收集要被处理的数据的客户端经由通信网络与服务器100进行交互。应当理解该网络可以是诸如例如Internet或者万维网之类的公共信息网络,但是做为选择,客户端和服务器可以经由私用网络、局域网、或者某些其它适当的网络进行连接。此外,还将要理解,服务器100可以从任何其它一个或者多个来源接收要被处理的数据流。
在服务器100上的CPU 120处执行本发明中的聚类和分类操作/计算。应当理解,客户端设备可以将要被处理的数据集提供给服务器100。然而,所有或者部分要被处理的数据集可能在服务器处早已是可得到的(例如,在盘140上),或者可以由服务器进行访问。可以使用主存储器130,以便存储某些或者所有在操作/计算期间执行的中间结果。这些操作/计算的结果可以返回给请求客户端设备和/或提供给某些其它目的地。
在一个优选实施例中,如此处所描述的那样,包括用于执行本发明的方法的指令或者代码的软件部件可以存储在上面关于服务器所描述的一个或多个存储器设备中,并且当准备好要被使用时,其可以由CPU部分或者全部加载,并且由CPU执行。
因为本发明的方法被设计用于数据流的投影聚类,所以有一个维度集与每个聚类相关联。因此,将与每个聚类C中的相关维度集相对应的d维位向量B(C)与该聚类C相关联。在这个d维向量中的每个元素均具有与给定维度是否包含在那个聚类中相对应的1-0值(每个元素可以具有要么“1”值要么“0”值)。这个位向量是在把进入点分配到适当聚类中所必须的簿记(book-keeping)所需要的。随着该方法的进展,这个位向量进行改变以反映维度的变化集。
用于高维聚类的方法利用迭代的方法,其在重新定义包含在每个聚类中的维度集的同时连续地确定新的聚类结构。到聚类方法的输入包括当前聚类结构FCS和与每个聚类相关联的维度集。这些聚类结构和维度集随着方法的进展而动态地进行更新。与每个聚类相关联的维度集BS包括用于FCS中的每个聚类结构的d维位向量B(Ci)。这个位向量对于包含在聚类Ci中的每个维度包含一个比特。此外,将聚类的最大数目k和平均聚类维数l用作输入参数。平均聚类维数l表示在聚类投影中使用的维度平均数。
本发明中的迭代数据流聚类方法在处理的每个步骤中将数据点分配给最接近的聚类结构。通过使用投影距离量度确定最接近的聚类结构。对于每个聚类,在距离计算中仅仅使用与那个聚类相关的那些维度。同时,继续重新定义与每个聚类相关联的投影维度集。投影维度的重新定义试图保持聚类在该投影维度上的半径尽可能地低。因此,聚类处理同时维护聚类以及与每个聚类相关联的维度集。
图2中说明了整体聚类处理200。处理从块210开始。在步骤220,处理初始化数据中的聚类集。如果期望的话,众所周知的k均值方法可用于构造初始聚类集。在1998年由A.Jain等人所著、NJ,Englewood Cliffs的Prentice Hill出版的“Algorithms for ClusteringData”中描述了众所周知的k均值方法,这个公开通过引用包括在此。
在步骤230,处理查找与每一个聚类集相关联的维度集。下面将描述有关查找这个维度集的细节。
在步骤240,处理将来自数据流的进入点分配给最接近的聚类,或者创建新的聚类。可以如下所述实现确定关于进入数据点X的最接近聚类结构。该处理仅仅使用用于相应聚类的投影维度集计算X到每个聚类质心的距离。在BS中的这个数据用作簿记机制,以在距离计算期间确定用于每个聚类的投影维度集。一旦确定了应该将数据点X分配给哪个聚类,处理就确定相应聚类的极限半径。极限半径被认为是聚类的边界。不把在这个边界外面的数据点添加到聚类中。相反,这样的点创建它们自己的新聚类。如果进来的数据点在该极限半径内,则把它添加到该聚类中。否则,构造包含该单独数据点X的新聚类。
在步骤250,处理更新聚类统计数据以反映在该聚类中的进来点。然后,处理返回到步骤230,以处理数据流中的下一个点。
接下来,通过在FCS中沿着用于每个聚类的每个维度计算扩展(spread)来实现投影维度的构造。因此,计算了总共|FCS|*d个值并且以递增次序进行排名。选择具有最小半径的|FCS|*1个维度作为用于这个聚类的投影维度。为了计算维度的目的,把进来的数据点X包含在每个聚类中。这确保如果将进来的数据点添加到这个聚类中,则相应的投影维度集反映了所包括的数据点X。当聚类包含少量数据点时,这有助于对投影维数的更稳定的计算。以这样的方式选择聚类的维度,以便沿着每个维度的扩展是尽可能小的。
应注意到许多聚类可能仅仅包含一些点。这使得难以以统计学上鲁棒的方式计算维度。在极端的情况下,一个聚类可能仅仅包含一个点。在这个恶化的情况下,维度的计算是不可能的,这是因为不能区分沿着不同维度的半径。为了处理这样的恶化情况,在为每个聚类确定维度期间使用进来的数据点X。以这样的方式挑选维度以便即使在选择了投影维度之后X也良好地符合所选择的聚类,是所期望的。具体而言,在确定维度的处理期间,将数据点X暂时添加到每个可能的聚类中。这对于为包含非常少数据点的聚类所选择的维度产生了显著的差异。一旦已经选择了这些所选中的维度,就将相应的位存储在BS中。
图3说明了在不同的聚类上确定投影的过程中使用的处理300。处理从块310开始。在步骤320,处理确定沿着各个维度的变化。在步骤330,处理确定具有最小变化的维度集。在步骤340,选择和报告这些维度集。处理在块350结束。
为了确定关于进来数据点的最接近聚类,可以使用用于确定X距离每个聚类Cr的投影距离的过程。为了查找投影距离,确定沿着在B(Cr)中具有位值1的每个维度的距离。将沿着这些维度的平均距离(也称为曼哈顿部分(Manhattan Segmental)距离)报告为投影距离。为每个聚类计算这个距离值,而且将数据点X添加到具有最小距离值的聚类中。
回想起在图2的步骤240中,将进来数据点添加到聚类中,或者利用单独的数据点创建新的聚类。查找极限半径的动机是确定聚类的边界。向不在其最接近聚类的极限半径内的这些进来数据点分配它们自己的聚类。这是因为这些数据点不是自然地适合在任何现有聚类的内部。将极限半径定义为该聚类中的数据点的平均半径的某个因数。可以使用衰减聚类结构中的统计数据计算这个半径。
因此,位于沿着其最接近聚类的投影维度的平均半径的因数τ外面的任何进来数据点使得创建包含单独数据点的新聚类成为必需。在图4中说明了沿着投影维度查找平均半径的处理。
如图4所示,处理400从块410开始。在步骤420,处理沿着投影维度确定半径。在步骤430,然后确定在投影维度上的平均半径。处理在块440结束。
如上所述,本发明的聚类处理可以有利地用于高维分类。为了使用该方法用于高维分类,分别为数据中的每个类别创建聚类。一旦已经创建了这样的聚类,图5中说明的处理就可以用于独立测试实例的分类。
如图5所示,处理500从块500开始。在步骤520,处理沿着维度的投影集查找测试实例的最接近聚类。在步骤530,将最接近聚类的类别标记报告为测试实例的相关类别标记。处理在块540结束。
因此,如在此处说明性描述的那样,本发明提供了用于数据流的高维投影聚类的新框架。它通过维护聚类随时间的压缩表示,查找特定维度子集中的投影聚类。数据流的高维投影聚类开启了进行流数据挖掘的新方向。利用这种方法,人们可以将投影聚类作为一个步骤进行处置,其可以用来提供用于流分类的更有效方法,类似地,其也可以用于演化和离群值(outlier)分析。有利地,本发明为了执行数据挖掘而提供了高维的投影流聚类处理。
虽然此处已经参考附图描述了本发明的说明性实施例,但是应当理解,本发明不局限于那些明确的实施例,而且可以由本领域技术人员进行各种其它的改变和修改而没有背离本发明的范围或者精神。
权利要求
1.一种处理数据流的方法,包含步骤维护一个聚类结构,该聚类结构表示数据流中的一个或多个聚类;使用该聚类结构中的数据点为一个或者多个聚类中的每一个聚类确定一个投影维度集;以及使用与用于一个或者多个聚类中每一个聚类的每个投影维度集相关联的距离,确定数据流中的进入数据点到一个或者多个聚类的分配。
2.如权利要求1所述的方法,其中,分配确定步骤还包含当进入数据点在一个或者多个聚类中的最接近聚类的边界之内时,将该进入数据点分配给最接近的聚类。
3.如权利要求2所述的方法,其中,分配步骤还包含使用聚类的半径确定聚类的边界。
4.如权利要求1所述的方法,其中,分配确定步骤还包含当进入数据点在最接近聚类的边界之外时,将该进入数据点分配给一个新创建的聚类。
5.如权利要求1所述的方法,其中,分配确定步骤还包含使用相应的投影维度集将进入数据点分配给最接近的聚类。
6.如权利要求1所述的方法,其中分配确定步骤还包含使用每个聚类的相应维度集确定进入数据点到每个聚类的距离。
7.如权利要求1所述的方法,其中维度集确定步骤还包含使用沿着各个维度的变化来确定投影维度集。
8.如权利要求7所述的方法,其中维度集确定步骤还包含选择具有最小变化的投影维度集。
9.如权利要求1所述的方法,还包含步骤使用聚类结构用于对数据流中的数据进行分类。
10.如权利要求9所述的方法,其中聚类结构维护步骤还包含以类别特定的方式维护一个或者多个聚类。
11.如权利要求10所述的方法,还包含步骤将最接近聚类的类别标记标识为关于正被分类的数据的相关标记。
12.一种用于处理数据流的设备,包含存储器;以及至少一个处理器,可以操作用于(i)维护一个聚类结构,该聚类结构表示数据流中的一个或多个聚类;(ii)使用该聚类结构中的数据点为一个或者多个聚类中的每一个聚类确定一个投影维度集;以及(iii)使用与用于一个或者多个聚类中每一个聚类的每个投影维度集相关联的距离,确定数据流中的进入数据点到一个或者多个聚类的分配。
13.如权利要求12所述的设备,其中,分配确定操作还包含当进入数据点在一个或者多个聚类中的最接近聚类的边界之内时,将该进入数据点分配给最接近的聚类。
14.如权利要求13所述的设备,其中,分配操作还包含使用聚类的半径确定聚类的边界。
15.如权利要求12所述的设备,其中,分配确定操作还包含当进入数据点在最接近聚类的边界之外时,将该进入数据点分配给一个新创建的聚类。
16.如权利要求12所述的设备,其中,分配确定操作还包含使用相应的投影维度集将进入数据点分配给最接近的聚类。
17.如权利要求12所述的设备,其中,分配确定操作还包含使用每个聚类的相应维度集确定进入数据点到每个聚类的距离。
18.如权利要求12所述的设备,其中,维度集确定操作还包含使用沿着各个维度的变化来确定投影维度集。
19.如权利要求18所述的设备,其中,维度集确定操作还包含选择具有最小变化的投影维度集。
20.如权利要求12所述的设备,其中,至少一个处理器还可以操作用于使用聚类结构用于对数据流中的数据进行分类。
21.如权利要求20所述的设备,其中,聚类结构维护操作还包含以类别特定的方式维护一个或者多个聚类。
22.如权利要求21所述的设备,其中至少一个处理器还可以操作用于将最接近聚类的类别标记标识为关于正被分类的数据的相关标记。
23.一种设备,包含服务器,响应于与一个或多个客户端设备相关联的数据流,可以操作用于(i)维护一个聚类结构,该聚类结构表示数据流中的一个或多个聚类;(ii)使用该聚类结构中的数据点为一个或者多个聚类中的每一个聚类确定一个投影维度集;以及(iii)使用与用于一个或者多个聚类中每一个聚类的每个投影维度集相关联的距离,确定数据流中的进入数据点到一个或者多个聚类的分配。
24.一种在处理数据流的过程中使用的制品,该制品包含机器可读介质,该介质包含一个或多个程序,当执行这些程序时,其实现以下步骤维护一个聚类结构,该聚类结构表示数据流中的一个或多个聚类;使用该聚类结构中的数据点为一个或者多个聚类中的每一个聚类确定一个投影维度集;以及使用与用于一个或者多个聚类中每一个聚类的每个投影维度集相关联的距离,确定数据流中的进入数据点到一个或者多个聚类的分配。
全文摘要
公开了用于对流数据进行聚类和分类的技术。举例来说,一种用于处理数据流的技术包含以下步骤/操作。维护表示数据流中的一个或多个聚类的聚类结构。使用该聚类结构中的数据点为一个或者多个聚类中的每一个聚类确定一个投影维度集。使用与用于一个或者多个聚类中每一个聚类的每个投影维度集相关联的距离,确定数据流中的进入数据点到一个或者多个聚类的分配。此外,该聚类结构可以用于对数据流中的数据进行分类。
文档编号G06F17/30GK1855097SQ200610005938
公开日2006年11月1日 申请日期2006年1月19日 优先权日2005年4月20日
发明者查鲁·C·阿加瓦尔, 俞士伦 申请人:国际商业机器公司