知识探勘的利器-丛集算法5

本文作者:admin       点击: 2008-06-12 00:00
前言:
十一、大型资料集之丛集化

大型数据分析是数据/知识探勘领域的一个重镇,因此丛集方法的使用也被要求要能应用在这些大型数据的处理上。许多传统丛集法(例如:K-means)在处理大型数据上颇受青睐,但是在应付高维度数据关系的分析时却捉筋见肘。为了因应数据的日趋多样化且大量化,丛集算法本身具有的延展性便成为该方法得否长生不死的关键。这些多样化的大量数据通常具有两种特征,一种是数量庞大,另一种特征是数据的高维度性。面对未来分布式的网络数据库趋势,丛集算法能否处理这些快速成长的数据,遂成为其面临续用或淘汰之最后一根羽毛。一些常见型态及典型的丛集算法之运算复杂度,可以参考表2。

从其中我们可以了解到不同丛集法的一些重要的概念,例如:K-means算法的时间复杂度为O(N),而空间复杂度为O(N+K),当N越大时,其复杂度会与数据库中的样本数接近“线性关系”。因此K-means算法在丛集化大型数据时是有效率的,只是其本身亦有一些缺点存在。另外,大多数的丛集算法并无处理高维度数据之能力(由表二可清楚看见),因此,一旦数据维度往上攀升时,其效能就会明显衰退。一些可以应付这种情形的其它算法(例如:DENCLUE,其时间复杂度为O(N log N)),其在整体效能上的表现却无法尽如人意。目前的丛集算法发展趋势之一,便是要让新的方法可以适用在高维度数据以及大型数据集的处理,尤其是在数据探勘领域上更是如此。在这些新兴的方法里面,其有些可以依据其输入的资料多寡,而可线性限缩其运算复杂度。从相关研究成果来看,这些新的分法对于大型数据集的分析潜力实在令人期待,在此我们将这些新兴技术在此略列以下几种供读者参考:

(一)浓缩法(condensation-based method)
此类方法比较知名者包含T. Zhang、R. Ramakrishman及M. Livny等人提出的BIRTH方法,此法可以有效的捕捉丛集信息,并大量减少运算成本,其可自原始数据中的CF树(CF tree)中产生精简结果并予以储存。

(二)网格法(grid-based method)
此类方法例如D. Barbar’a及P.Chen提议的碎形丛集法(fractal clustering,FC),此法结合了增量丛集(incremental clustering)与碎形维度(fractal dimension)的概念。数据对象经由一个起始过程的指定后,会一直被加入丛集中,并在网格的储存槽(cell)中表现出来,并且会伴随着丛集之碎形维度需要保持相对稳定的一些条件。另外像是G. Sheikholeslami、S. Chatterjee及A. Zhang等人所提议之WaveCluster法也是属于网格法的一种,在这种方法里面,其会将数据对象储存在一些自特征空间所切割而来的单元集合中,并利用小波转换(wavelet transform)来将这些单元中的数据对象对应的一个频率领域。这种方法的主要优点在于其丛集在转换空间里,是非常容易被区别的。

(三)随机搜寻法(randomized search method)
此法之代表可参考R. Ng与J. Han(2002年)所提议之CLARANS方法,其主要是被用在探索空间数据的探勘研究上,而其理论的基础为随机搜寻法。此法将丛集视为一种图形中的搜寻过程,此过程的起点可以发生在任一节点,此起点节点辩称为现行节点(current node,CN)。伟了寻求最佳解法,任一个有着最低成本的邻近节点均会被设定为现行节点。此搜寻过程会不断被重复执行,直到使用者指定的最大邻近数量被满足为止。当最大邻近数量被满足后,最后的现行节点则被称为胜出节点(winning node),并且是有着最佳解法的节点。因为运算复杂度关系着丛集法可否被使用在大型数据集中的一个重要因子,因此CLARANS方法的运算效能虽比其它算法(例如:稍后即将谈到的CLARA)好,但因其最大邻近数量的指定影响了该递归程序的执行次数,故这种递归方式的丛集法仍可能不适合被使用在那些大量数据集的分析上。

(四)随机取样法(random sampling method)
L. Kaufman及P. Rousseeuw在1990年时提出了CLARA的丛集法,以及S. Guha、R. Rastogi及K. Shim(1998年)提出的CURE法,乃是随机取样方法中最为人所知的技术。这些方法的核心概念,在于利用适当的样本大小来维持丛集的重要几何属性。惟数据的样本大小本来就不一致,只能适用于某些样本规模的技术相对之下其应用性便受到较多限制。

(五)密度法(density-based method)
这种方法常见者有M. Ester等人于1996年提出DBSCAN方法,或是A. Hinneburg及D. Keim于1998年提议的DENCLUE法。在DBSACN中,其使用的原理是“聚落原则”,一个现存的中心node要成为丛集(即是聚落)之前,必须先满足其周围有足够密度的节点存在。一旦密度达形成聚落之最低要求,DBSCAN便会为此聚落建立新的丛集。在此所谓的最低聚落密度要求,只是使用者所指定的一些最低密度门坎罢了。一个DBSCAN的参考算法如下:
消除噪声点(noise points)
/*以下过程将完成剩余点的丛集化*/
cur_cluster_label←1  //目前丛集标记
for 所有核心点 do
if 核心点没有丛集标记 then
cur_cluster_label ←cur_cluster_label+1
将目前核心点用cur_cluster_label标记成丛集
end if
for 指定半径内的所有邻近点除了第i个点自己本身之外 do
if 如果该点没有丛集标记 then
用cur_cluster_label标记该点为一个丛集
end if 
end for
end for
DBSCAN的优点在于对噪声的抗性与丛集形状与大小的掌握上面,但是如果丛集密度具有很大变异性或是数据维度太高时,DBSCAN方法就不会是一个很好的选择。至于DENCLUE方法则是搜寻整个密度函数中的局部最大值,以反应所对应的数据空间中数据对象与其邻居之间的影响力,关于其运作细节于此就不另多述。

(六)其它法
除了上述这几种方法对分割大型数据有特殊帮助之外,其它方法(诸如:平行算法(parallel algorithm))则可以更有效率利用运算资源,并在时间与空间复杂度上有较多改善。
另外在一些增量丛集技术里面,其并不须要储存整个数据集,而以一次一个模式的方式(one-pattern-at-a-time)来运作数据。如果依据某些预定规则,其模式亦经非常接近所设立之丛集,那他就会被归入该丛集;反之,一个新的丛集就会被创造出来,用以表示该对象。另外在处理大型数据库上面,P. Bradley、V. Fayyad及C. Reina提议了一种具有延展性的丛集化架构。其中比较值的注意的是,他们归纳了约七种在处理大型数据库上所应注意之因子,此对那些须要处理大型资料的工作者,提供了某些具有参考价值的建议。

十二、数据可视化之探索与高维度数据分析

“数据维度性(data dimensionality)”的概念最早是由R. Bellman在其《适应性控制处理》一书中所提及,其当时的概念是在高维度条件下,对于多变量函数之复杂度呈现指数成长的一种观察,此观察通常被用来描述高维度空间中的一些问题。其理论中的一个重要概念,在于其与最近点之间的距离,如果在维度够高时,和其与其它点之间的距离是没有差异的。此暗示了,以距离测量式的丛集法,在资料维度够高时的运作将变得没有效率。在大型资料的分析上面,表2列出了几种目前常用的丛集方法。但可惜的是这些方法里面,有许多往往不足以辅助我们分析高维度资料。数据分析最大的困难点之一,在于对数据维度的分析与处理能力。1998年的时候,V. Cherkassky及F. Muiler的著作《从数据中学习:观念、理论与方法》揭示了在高维度数据中通常存有一个“本质维度性(intrinsic dimensionality)”这种本质维度要比原始维度低很多。如何把欲处理的数据维度降低,此在丛集分析里面是一项很重要的工作。如果降低维度的工作进展顺利,不只可以让高维度数据具有可定位性(addressable);最重要的,其将协助我们降低所须要的运算成本(computational cost),并且使我们对于所要处理的问题轮廓具有更清楚的认知,以及对我们所感兴趣的数据,提供一个可视性的检测机会。不过,维度降低的方法将无可避免的会使一些原始数据的讯息遗失,并可能因为这些信息的遗失,而伤及最后结果的正确性或精密度,甚至扭曲了真实的丛集。在实作上,一个较常见用以减少数据维度之方法,乃利用关键组件撷取策略。也就是说,该方法只撷取原始数据中重要的组成部分来作为处理标的,而非将整个数据中所有信息均纳入处理范围。可是这种方法有另一个问题,那就是我们要如何得知哪些是数据中的重要组件(即重要组件是如何“定义”?)一个处理共识,乃基于其对丛集分割的贡献度而定。利用此原则所发展出来的决策方法主要有PCA转换(principle component analysis transform)及Karhunen-Loéve转换。PCA的处理原则是基于共变异矩阵中的二级关系,所以其适合用在高斯分布的机率模型。其它线性转换方法(例如:独立组件分析法(independent component analysis,ICA)、投影追击法(projection pursuit,PP)…等)乃使用较高阶的信息统计方法,故较适合用在非高斯分布的案例上。投影追击法(projection pursuit,PP)是另一种不同于ICA的方法,其亦是使用统计学上的技巧,来对一个含有多变量的数据进行低维度的投影结构搜寻,其处理的案例主要是常态分布形式,并且有时会将非正规性(non-normality)级数的测量指示予以最佳化。如果站在此一观点来看,PCA的方法有点类似PP方法的一种特例情形,对此cherkassky及Muiler亦持相同见解(1998)。有关PP更细部的运作原理,可参阅J. Friedman及P. Huber等人的相关研究资料。这些方法所关心的焦点,均放在对数据变异情形可以真实反应的最佳线性组合之向量集合。例如:在PCA方法中,其会最小化平方差的和以逼近输入向量,并可利用三层式类神经网络架构(一般称为具有线性活化功能(linear activation functions)的一个自动辅助多层感官架构)来进行了解。

为了撷取更多非线性的数据结构,一些学者发展出非线性PCA法(例如:核心PCA法(kernel PCA method))。在非线性PCA法里面,其首先将输入模式对应到一个特征空间,然后在此新的特征空间中应用新的共变异矩阵(covariance matrix)来解决一些特征值的问题。另外在R. Duda及P. Hart等人的提议方法里面,其在自动辅助网络(auto-associative networks)中加入一些额外具有非线性活化功能的隐藏层,来处理这些非线性数据的问题。在ICA的方法里,其主要是在各种组件中找出最具统计独立性的组件,其相关的研究可参考1999年A. Hyvrinen所发表的相关独立组件分析文章。在应用领域,ICA方法可以被用在信号鉴别上,例如:从一个客观的混合信号中,鉴别各自独立的来源信号。对这些问题的处理,Hyvrinen提出了数种不同方法可试,并将之公式化,在此我们无法一一详述。其中在不考虑噪声情况下,一个最简单的方法,其形式可以表示为x=As;式中x表示N维度的可观察向量,s则表示L维度之来源向量(假设其可满足统计之独立性),而A表示一个非特异的N×L混合矩阵。

不过还有一种重要的投影技术是与PCA、ICA以及PP方法所不同的,其称为“多维度缩放(multidimensional scaling,MDS)法”。此法使用的是种非线性投影法,其相关研究来自F. Young及R. Hamer(1987)之MDS著作,或可参考2001年R. Duda、P. Hart及D. Stork等人合着之《模式分类(pattern classification)》一书。另外,J. Tenenbaum、V. Silva及J. Langford等人(2000年)基于MDS提出了一种称为Iosmap的非线性演算技术。此法可以评估两点之间的测地线距离(geodesic distance),其为多种路线之间的最短路线。经由测量输入空间的距离(例如:常用的欧式几何距离),Isomap将MDS能力强化,使其可搜数据中更复杂的非线性结构。另外在降低非线性结构维度上的问题方面,其方法主要有M. Belkin及P. Niyogi所介绍的拉普拉斯特征图法(Laplace eigenmap algorithm,LEA)以及S. Roweis及L. Saul所提议的局部线性嵌入法(locally linear embedding,LLE)…等等方式,来降低非线性数据维度。在LLE方法里面,其所强调的是数据的多多样局部线性概念,其可自不同的起点位置来降低非线性维度之复杂性。不过,LLE有一个假设前提,那就是原始数据空间中的局部关联性信息(local relation information),在经过投影到低维度空间时亦会被保留下来。而其表现的方式可经由加权矩阵为之,经由此加权矩阵,其它数据点的建立便可依据起点数据点的定性描述与此矩阵来加以重建。因此整个维度简化过程,便可被视为在低维度空间向量中找到一个满足是最小值向量(yi)的过程。

一个重要参数-丛集数的决定

丛集数目(K)的决定在丛集化方法里面具有一定重要的地位,其中最重要的乃涉及到其时间与空间的运算复杂度与决策精确度的问题。一个数据集经过程丛集化的过程处理后,会形成各种拥有适当数目之子集合。虽然在某些应用里,使用者可以决定其所需要的丛集数,但在大多数情况下,所可能形成的丛集数目是难以得知的,因为这必须依据我们给定的输入数据本身而定。不过许多丛集化算法常会要求使用者输入其期望之丛集数目来当作输入参数,其用意常是藉由K的指定来评估其所需要的丛集化质量。在某些时候,如果丛集化后的结果将产生许多丛集出现,将会使结果的分析变得更加复杂,但如果产生的丛集数太少也不行。因为丛集数少,表示丛集化过程中或许有许多有用的信息被不当牺牲掉了,而使产生的结果会有误导决策之危险,因此R. Dubes称此类决定丛集数目的问题为“丛集有效性(clusters validity)的基本问题”,其中便有其道理。为了找到合适的K值,许多研究者做了不少尝试,其中一些较重要的工作我们在此简述如下:

一、利用机率混合模型架构,来最佳化某些规则函数
站在统计的观点而言,要找到正确的丛集数目的K值,等同于修正一个模型中的客观数据部分与最佳化规则,使其能彼此吻合。在此例子中,通常EM算法会在预定义的数值范围中,评估模型参数以找到合适的K值。至于K值是要最大化或是最小化,则属规则的最佳化问题。P. Smyth曾提出一种蒙地卡罗交叉验证方法(Monte-Carlo cross validation method),其根据某些余数(β)来随机将数据分割成两个部分,一个是训练部分另一个是测试集合。经其实验证明,当β=0.5时,其模型运作的效果最好。K值的来源可以是依据某些决策函数或是其它机率计算,在许多规则中,其常与信息论中的概念相结合。例如:一个典型的例子为H. Akaike所提议的信息规则(Akauke’s information criterion,AIC),其形式为,其中式中N表示全部模式的数目,Nk则表示每个丛集的参数数目,Np则表示被评估的参数总数。另外表示最大对数可能性,而K之选择则以AIC(K)之最小值来决定。除了AIC法之外,尚有知名的贝氏推论规则(Bayesian inference criterion,BIC),其其形式为。BIC与AIC不同之处,在于BIC对K的选择是以其最大值为候选值。其它方法还有最小讯息长度(minimum message length,MML)、共变异膨胀规则(covariance inflation criterion,CIC)、最小描述长度(minimum description length,MDL)以及交叉验证式信息规则(cross validation based information criterion,CVIC)…等方法,有兴趣的读者不妨参考看看。

二、数据可视化法
对那些可以被有效率投影到2-D欧氏空间的数据点而言,如果数据集规模不大,其可利用长条图法(histogram)直接观察K值的最佳范围。通常长条图法在显示数据彼此间的组距差异性上具有对比作用,可增进我们对数据的特色的判断,但如果数据集规模较大,该法便不适用。

三、建立指针或停止规则法
这种指针方法乃属数据特异性指针,换句话说,一旦数据集被改变了,则不保证指针在新的数据集中亦具有良好效能。事实上,每一种单一规则的指针型态多少均有此方面之问题,因此B. Everitt及S. Landan等人便建议,以混合规则的方法来取代单一规则法,其可靠性会高一点。因此这些指标的建置应要能凸显丛集内之精简性以及丛集彼此间的差异点,更重要的是要能考虑一些因子所可能带来周边效应(例如:统计学属性、相似度…等特性)。在其中可达最佳效能之指标为Caliski及Harabasz指标,其形式为,其中N表示模式总数,Tr(SB)及Tr(SW)分别表示类别散布矩阵(class scatter matrix,CSM)之内与CSM之间的轨迹,在此并以CH(K)的最大值来作为K值的选择。其它有关指标选用之建议,及相关研究可以参考1985年时G. Milligan及M. Copper的数据,其比较了大约30种的指针并对其性能加以研究,或参考1998年C. Chen、L. Pau及P. Wang等人有关模式辨识及计算机视觉方面之书籍。

四、基于其它不同技术与理论之启发式(heuristic)方法
除了前述的各种不同方法外,一个丛集算法的建构可以是随适性(adaptive)或是动态性(dynamic)的。也就是说在这些算法的设计中,丛集的数目是可变而非固定的,以反应不同情况(或参数选择)的存在。回顾历史,在这些丛集数目最适性的研究里面,很明显的我们可以看见丛集数目的决定方法已慢慢被视为一种参数选择的问题,而最后所可能得到的丛集数目规模,则必须依照参数的选择情况而定。例如:ART网络只有在输入模式与某些信赖值(confidence value)期待相符合时,才会产生新的丛集。另一个与ART网络机制相似者,还有1998年时T. Eltoft及R. deFigueiredo所提出的CDL网络。另外M. Girolami在2002年时曾示范了在高维度特征空间中,完成特征值分解的过程。其并利用分解总和中,具有显著的k个组件来作为可能存在的丛集指标。其它像是强固性竞争丛集法(robust competitive clustering),则是利用阶段中所发展之竞争同化过程来精简丛集的产生。因此,那些在竞争中所遗失的潜在丛集就会被丢弃,而无法真正形成一个丛集,或是亦有可能被加入到其它丛集区域内。N. Boujemaa提出了将其一般化的方法,其最后取的的丛集数目乃是平衡运算复杂度与维持决策精确性之后的一个成果。