近似谱聚类算法描述
谱聚类方法

谱聚类方法一、谱聚类的基本原理谱聚类(Spectral Clustering)是一种基于图论的聚类方法,通过研究样本数据的图形结构来进行聚类。
谱聚类方法的基本原理是将高维数据转换为低维数据,然后在低维空间中进行聚类。
它利用样本之间的相似性或距离信息,构建一个图模型(通常是相似度图或距离图),然后对图模型进行谱分解,得到一系列特征向量,最后在特征向量空间中进行聚类。
谱聚类的核心步骤是构建图模型和进行谱分解。
在构建图模型时,通常采用相似度矩阵或距离矩阵来表示样本之间的联系。
在谱分解时,通过对图模型的拉普拉斯矩阵进行特征分解,得到一系列特征向量,这些特征向量表示了样本数据的低维空间结构。
通过对特征向量空间进行聚类,可以将高维数据分为若干个类别。
二、谱聚类的优缺点1.优点(1)适用于高维数据:谱聚类方法能够有效地处理高维数据,因为它的核心步骤是将高维数据转换为低维数据,然后在低维空间中进行聚类。
这有助于克服高维数据带来的挑战。
(2)对噪声和异常值具有较强的鲁棒性:谱聚类方法在构建图模型时,会考虑到样本之间的相似性和距离信息,从而在一定程度上抑制了噪声和异常值的影响。
(3)适用于任意形状的聚类:谱聚类方法可以适用于任意形状的聚类,因为它的聚类结果是基于特征向量空间的,而特征向量空间可以捕捉到样本数据的全局结构。
2.缺点(1)计算复杂度高:谱聚类的计算复杂度相对较高。
构建图模型和进行谱分解都需要大量的计算。
在大规模数据集上,谱聚类的计算效率可能会成为问题。
(2)对相似度矩阵或距离矩阵的敏感性:谱聚类的结果会受到相似度矩阵或距离矩阵的影响。
如果相似度矩阵或距离矩阵不合理或不准确,可能会导致聚类结果不理想。
(3)对参数的敏感性:谱聚类的结果会受到参数的影响,如相似度度量方式、距离度量方式、图模型的构建方式等。
如果参数选择不当,可能会导致聚类效果不佳。
三、谱聚类的应用场景1.图像分割:谱聚类方法可以应用于图像分割,将图像中的像素点分为若干个类别,从而实现对图像的分割。
数据分析知识:数据挖掘中的谱聚类算法

数据分析知识:数据挖掘中的谱聚类算法数据挖掘是从海量数据中提取有用的信息的一种技术,谱聚类算法是其中的一种经典算法。
本文将从以下几个方面介绍谱聚类算法:算法原理、流程步骤、应用场景、优缺点以及发展趋势。
一、算法原理谱聚类算法是一种基于图论的无监督聚类算法,其基本思想是将数据集看成是图的节点集合,通过图上的边连接不同的节点,将节点划分成不同的子集,从而实现聚类。
谱聚类算法的核心在于矩阵的特征值和特征向量。
假设有N个数据点集成一个矩阵X,每个数据点有m个特征,组成了一个m*N的矩阵。
首先,定义相似度矩阵W,其元素W(i,j)表示第i个数据点和第j个数据点的相似度。
W的计算可以采取欧式距离、余弦相似度、高斯核等方式。
其次,通过对相似度矩阵进行正则化处理,可以得到一个拉普拉斯矩阵L。
拉普拉斯矩阵L是一个对称半正定的矩阵,其用途是度量每个数据点与其他数据点之间的关联度。
接下来,求解拉普拉斯矩阵L的m个最小的非零特征值及其对应的特征向量u1,u2,...,um,并将其组成一个m*N的矩阵U。
特征向量的个数m是谱聚类算法的超参数,通常根据具体情况进行调整。
最后,对特征向量矩阵U进行聚类,将其划分为k个子集,即可完成谱聚类算法。
二、流程步骤谱聚类算法的流程可以归纳为以下几个步骤:1.构建相似度矩阵W2.对相似度矩阵进行正则化处理,得到拉普拉斯矩阵L3.求解拉普拉斯矩阵L的特征值和特征向量4.将特征向量矩阵U进行聚类5.输出聚类结果三、应用场景谱聚类算法广泛应用于社交网络分析、图像分割、文本聚类、机器学习等多个领域。
例如,在社交网络分析中,谱聚类可以将社交网络中的用户划分成不同的群体,从而便于研究用户间的关系;在图像分割中,谱聚类可以将图像像素点划分成不同的区域,从而得到清晰的图像轮廓。
四、优缺点优点:1.对数据分布没有先验要求2.可以有效地解决高维数据聚类问题3.对噪声数据有一定的容忍度4.支持并行化计算,适合于大规模数据集的处理缺点:1.超参数的选取比较困难2.对于纹理复杂、噪声较大、数据量较小的数据集,聚类效果可能不佳3.对于非凸形状的数据集,聚类效果可能不佳五、发展趋势随着数据量的不断增大和数据种类的不断增多,聚类算法的应用也越来越广泛。
谱聚类算法综述

谱聚类算法综述一、本文概述谱聚类算法是一种基于图理论的机器学习技术,它在数据分析和模式识别中发挥着重要作用。
本文旨在对谱聚类算法进行全面的综述,从理论基础、算法流程、应用领域以及最新进展等多个方面进行深入的探讨。
我们将简要介绍谱聚类算法的基本概念和原理,包括图论基础、拉普拉斯矩阵、特征值分解等关键知识点。
然后,我们将详细阐述谱聚类算法的基本流程和主要步骤,包括数据预处理、构建相似度矩阵、计算拉普拉斯矩阵、求解特征向量和聚类等。
接下来,我们将重点分析谱聚类算法在不同领域中的应用,如图像处理、社交网络分析、机器学习等,并探讨其在这些领域中取得的成果和优势。
我们还将对谱聚类算法的性能进行评估,包括其时间复杂度、空间复杂度以及聚类效果等方面。
我们将对谱聚类算法的最新研究进展进行综述,包括新的算法模型、优化方法以及应用领域的拓展等方面。
通过对这些最新进展的梳理和总结,我们可以更好地了解谱聚类算法的发展趋势和未来研究方向。
本文旨在对谱聚类算法进行全面的综述和分析,为读者提供一个清晰、系统的认识框架,同时也为该领域的研究者提供有价值的参考和启示。
二、谱聚类算法的基本原理谱聚类算法是一种基于图理论的聚类方法,它通过将数据点视为图中的节点,数据点之间的相似性视为节点之间的边的权重,从而构建出一个加权无向图。
谱聚类的基本原理在于利用图的拉普拉斯矩阵(Laplacian Matrix)的特征向量来进行聚类。
构建相似度矩阵:需要计算数据点之间的相似度,这通常通过核函数(如高斯核函数)来实现,从而构建出一个相似度矩阵。
构建图的拉普拉斯矩阵:根据相似度矩阵,可以构建出图的度矩阵和邻接矩阵,进而得到图的拉普拉斯矩阵。
拉普拉斯矩阵是相似度矩阵和度矩阵之差,它反映了数据点之间的局部结构信息。
求解拉普拉斯矩阵的特征向量:对拉普拉斯矩阵进行特征分解,得到其特征向量。
这些特征向量构成了一个新的低维空间,在这个空间中,相似的数据点更接近,不相似的数据点更远。
谱聚类的流程

谱聚类的流程
谱聚类的流程包括以下步骤:
1. 初始化。
选择相似度矩阵或者生成相似度矩阵,一般通过数据点之间的相似
程度进行估计。
此外,需要随机选择一个数据点并作为聚类簇心(centroid)。
这两个过程可以选择手动操作或使用启发式自动完成。
2. 计算谱距离。
对于给定的相似度矩阵,根据某种方式将数据映射到特征空间,并通过这些坐标值来计算数据集之间以及各个样本与其中心之间的距离。
这是谱聚类的重要部分,因为它定义了哪些数据点彼此接近以及如何对数据进行分组。
3. 根据新的相似度和距离矩阵构造拉普拉斯矩阵。
在得到新的相似度矩阵后,
可以计算出拉普拉斯矩阵W 的特征向量和对应的特征值。
这些特征向量就是聚类结果中的群内连接矩阵,它描述了同一聚类内部的数据点的布局结构。
4. 选择合适的阈值并对聚类结果进行处理。
可以根据得到的特征值和群内连接
矩阵判断是否满足聚类的要求,如果不满足则重新调整相似度矩阵并进行上述步骤直到满足条件为止。
最终的聚类结果是所有满足条件的聚类结果的交集。
5. 对每个非簇心点,按照其与簇心的相似度大小分配到不同的簇中。
这个过程
通常采用贪婪算法进行,即选择具有最大相似度的群成员分配该点为新组的成员。
重复此步骤直到所有的点都被分配到相应的组中。
6. 最后输出聚类结果,包括每个数据点的所属类别以及整个数据集的聚类效果评估指标等。
请注意,谱聚类是一种高级聚类方法,需要仔细设置参数和处理异常值,以确保获得可靠的结果。
列举常用聚类算法

列举常用聚类算法聚类算法是一种将数据集中的相似数据分组的方法。
它是无监督学习的一种应用,可以在没有标签或类别信息的情况下对数据进行分类。
在机器学习和数据挖掘中,聚类算法被广泛应用于数据分析、图像处理、模式识别等领域。
本文将列举常用的聚类算法。
一、K均值聚类算法(K-means Clustering)K均值聚类算法是一种基于距离度量的聚类方法,它将数据集划分为K 个簇,每个簇包含距离其它簇最近的点。
该算法首先随机选择K个点作为初始质心,然后将每个点分配到与其距离最近的质心所在的簇中,并计算每个簇内所有点的平均值作为新的质心。
重复以上过程直到质心不再改变或达到预定迭代次数。
二、层次聚类算法(Hierarchical Clustering)层次聚类算法是一种自下而上或自上而下逐步合并或拆分簇来建立层次结构的方法。
该算法有两种实现方式:凝聚层次聚类和分裂层次聚类。
凝聚层次聚类从每个数据点开始,将它们逐步合并成越来越大的簇,直到所有点都被合并为一个簇。
分裂层次聚类从整个数据集开始,将其逐步拆分成越来越小的簇,直到每个簇只包含一个点。
三、DBSCAN聚类算法(Density-Based Spatial Clustering of Applications with Noise)DBSCAN聚类算法是一种基于密度的聚类方法,它可以识别任意形状的簇,并能够自动排除离群值。
该算法首先选择一个未访问的核心点作为起始点,并找到其可达范围内的所有点,并将它们加入同一簇中。
然后继续寻找未访问的核心点,并重复以上过程直到所有核心点都被访问完毕。
四、谱聚类算法(Spectral Clustering)谱聚类算法是一种基于图论和线性代数的聚类方法,它将数据集看作是一个图,在图上进行划分。
该算法首先构建一个相似度矩阵或邻接矩阵,并通过特征值分解或奇异值分解来获取特征向量和特征值。
然后将特征向量作为新的数据集,使用K均值或层次聚类等方法对其进行聚类。
谱聚类算法

基本理论:
图划分准则:
谱聚类算法的思想来源于谱图划分理论 。假定将每个 数据样本看作图中的顶点V, 根据样本间的相似度将顶点间 的边E赋权重值W, 这样就得到一个基于样本相似度的无向 加权图G= (V, E) 。那么在图G 中, 就可将聚类问题转化为在 图G 上的图划分问题。基于图论的最优划分准则就是使划 分成的两个子图内部相似度最大, 子图之间的相似度最小。
如何处理特征向量: 在应用谱方法进行聚类问题的研究中, 用多 少个特征向量进行聚类, 如何选取、计算及使用这些特征向量
等问题均没有得到很好的理论解释, 这些都是未来急需解决的
问题。 如何自动确定聚类数目: 聚类数目的多少直接影响聚类的质量。
如何选取Laplacian 矩阵: 谱聚类算法所使用的Laplacian 矩阵有
或任意其它经典算法, 得到k 个聚类; 将数据点
y i划分到聚类j 中, 当且仅当Y 的第i行被划分到聚类j 中。
小结:
针对图谱的不同划分规则,都有相应的算法如PF、SM、 SLH、Mcut、NJW、MS算法,比较如下:
难点分析
如何构造相似矩阵W: 谱聚类算法中相似矩阵W的构由于尺度参
数R是人为选取的, 使得该函数带有一定的局限性。
Kannan 将该算法与SM 算法、KVV 算法进行了比较, 发现
Mcut 算法能够产生更加平衡的划分结果, 尤其当类间重叠较大时, 效果更为明显。
多路谱聚类算法
NJW 算法 Ng, Jordan 等人选取拉氏矩阵
Lsym的前k 个最大特征值对应的特征
向量, 使其在 R k 空间中构成与原数据一一对应的表述, 然后在 R k 空间中
x T (D W ) x y T (D W ) y x TWx y TWy
sklearn中的谱聚类算法

Sklearn(Scikit-learn)是一个基于Python的机器学习库,提供了许多常用的机器学习算法和工具。
谱聚类(Spectral Clustering)算法作为Sklearn库中的一个重要组成部分,是一种基于图论和谱理论的聚类算法,能够有效地处理非凸形状的数据集并对高维数据进行聚类分析。
本文将对Sklearn中的谱聚类算法进行深入探讨,并对其理论、实现细节和应用展开详细介绍。
一、谱聚类算法的理论基础谱聚类算法是一种基于图论和谱理论的聚类算法,其主要思想是将数据集表示为图的形式,利用图的谱分解来实现聚类分析。
在进行谱聚类之前,首先需要构建数据样本的相似度矩阵或者距离矩阵,并基于这个矩阵构建相应的图模型,常用的图模型包括ε-邻近图、全连接图等。
接下来,利用图的拉普拉斯矩阵进行特征分解,得到其特征向量,并通过对特征向量进行聚类操作,最终得到数据的聚类结构。
谱聚类算法的理论基础主要包括图论、谱图理论以及聚类理论等多个方面的知识,需要深入理解这些理论知识才能正确地运用谱聚类算法进行数据分析。
在Sklearn库中,谱聚类算法提供了丰富的参数设置和优化方法,能够灵活地适应不同数据情况和需求,是实现谱聚类算法的一个重要工具。
二、谱聚类算法的实现细节Sklearn中的谱聚类算法主要基于Python语言实现,其具体的实现细节涵盖了图模型构建、谱分解、特征向量聚类等多个方面。
在进行实际的数据分析时,需要关注谱聚类算法的几个关键参数,包括图模型的构建方法、相似度矩阵的计算方式、谱分解的方法、特征向量聚类的算法等。
图模型的构建方法是谱聚类算法中的一个关键步骤,常用的方法包括ε-邻近图、全连接图等,不同的方法会对聚类结果产生不同的影响,需要根据具体的数据情况选取合适的方法。
另外,相似度矩阵的计算方式也会影响到谱聚类的结果,可以选择基于距离的相似度计算方法或者基于核函数的相似度计算方法。
谱分解的方法通常包括最大化拉普拉斯特征值、最小化拉普拉斯特征值等多种方法,需要根据具体应用需求选择合适的方法。
谱聚类算法 算法简介

谱聚类算法算法简介 谱聚类算法建立在谱图理论基础上,与传统的聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解的优点。
该算法首先根据给定的样本数据集定义一个描述成对数据点相似度的亲合矩阵,并且计算矩阵的特征值和特征向量,然后选择合适的特征向量聚类不同的数据点。
谱聚类算法最初用于计算机视觉、VLS I 设计等领域,最近才开始用于机器学习中,并迅速成为国际上机器学习领域的研究热点。
谱聚类算法建立在图论中的谱图理论基础上,其本质是将聚类问题转化为图的最优划分问题,是一种点对聚类算法,对数据聚类具有很好的应用前景。
算法步骤 谱聚类算法将数据集中的每个对象看作是图的顶点V,将顶点间的相似度量化作为相应顶点连接边E的权值,这样就得到一个基于相似度的无向加权图G(V, E),于是聚类问题就可以转化为图的划分问题。
基于图论的最优划分准则就是使划分成的子图内部相似度最大,子图之间的相似度最小。
虽然根据不同的准则函数及谱映射方法,谱聚类算法有着不同的具体实现方法,但是这些实现方法都可以归纳为下面三个主要步骤: 1) 构建表示对象集的相似度矩阵W; 2) 通过计算相似度矩阵或拉普拉斯矩阵的前k个特征值与特征向量,构建特征向量空间; 3) 利用K-means或其它经典聚类算法对特征向量空间中的特征向量进行聚类。
上面的步骤只是谱聚类算法的一个总体框架,由于划分准则、相似度矩阵计算方法等因素的差别,具体的算法实现同样会有所差别,但其本质依然是图划分问题的连续放松形式。
划分准则 谱聚类算法将聚类问题就可以转化为图的划分问题之后,基于图论的划分准则的优劣直接影响到聚类结果的好坏。
常见的划分准则有Mini cut,Average cut,Normalized cut,Min-max cut,Ratio cut,MNcut等。
最小割集准则 在对图像分割中产生了较好的效果,但是该准则容易产生分割出只包含几个顶点的较小子图的歪斜分割现象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、近似谱聚类算法描述本节论文阐述基于相似矩阵稀疏化方法稀疏化后离群点的优化处理,并将该处理步骤应用于谱聚类算法中。
基于上述分析近似谱聚类算法整体流程总结描述如表3.2所示。
表3.2 近似谱聚类算法(ASCA)算法:近似谱聚类算法(ASCA)输入:数据点,待聚类数目输出:聚类1. 使用公式,(其中,是的个最近邻按距离排序后第个邻居,同理,),构建相似矩阵;2. 使用稀疏化矩阵获得半正定矩阵,找出矩阵对称位置不一致的相似度,并将对称元素设置为0,调整为对称半正定矩阵;3. 使用优化公式对矩阵进行离群点调优;4. 计算对称半正定拉普拉斯矩阵;5. 计算的特征向量分解,找出第k个最小非零特征特征量,并按列排列k个特征向量构建特征向量矩阵;6. 计算标准化矩阵();7. 使用粗糙集模型选择k-means初始化聚类中心位置并对矩阵进行k-means聚类,把其聚类成k组()。
基于近似谱聚类算法整体步骤描述,为进行近似谱聚类算法Matlab辅助实验铺垫,绘制近似谱聚类算法流程示意图如图3.1所示。
Matlab辅助实验主要是将示意图3.1中的所示的算法与正交化Nyström低阶子矩阵抽样近似相似矩阵谱聚类算法(ONSP: Orthogonalization Nyström Spectral Clustering)和最近邻稀疏化近似相似矩阵谱聚类算法(tNNSC: Spectral Clustering)进行对比,并验证其聚类效果。
图3.1 近似谱聚类算法流程示意图三、近似谱聚类算法时间复杂度分析现对基于相似矩阵稀疏化方法离群点优化的近似谱聚类算法时间复杂度简单分析,步骤1:使用高斯函数公式构建相似矩阵的时间复杂度是,其中表示数据点数目、表示数据维数,计算数据点和之间的相似度的时间复杂度是,则计算整个数据集的时间复杂度是;步骤2:使用稀疏化矩阵获得半正定矩阵并调整为对称半正定矩阵借助于最大堆,其时间复杂度是,其中是最近邻数;步骤3:优化离群点步骤是非确定性多项式困难问题NP-hard (Non deterministic Ploynomial Hard)问题,其时间复杂度随近似相似度矩阵维数按指数增长;步骤4与步骤5:计算对称半正定拉普拉斯矩阵并找出k个最小非零特征值的特征向量的时间复杂度在论文第二章第二节中已经详细分析过,即;步骤6:计算标准化矩阵的时间复杂度是;步骤7:执行k-means聚类时间复杂度是:,其中表示k-means聚类过程迭代的次数,指待聚类数目。
第三节近似谱聚类算法实验分析一、近似谱聚类算法辅助实验(1)Matlab辅助实验环境描述为验证表3.2所示近似谱聚类算法与正交化Nyström低阶子矩阵抽样近似相似矩阵谱聚类算法和最近邻稀疏化近似相似矩阵谱聚类算法的性能,鉴于Hadoop MapReduce并行实验对比的工作量过大,故仅设计基于Matlab的对比性实验。
Matlab辅助实验环境:近似谱聚类算法(ASC)的Matlab辅助性验证以及其与正交化Nyström低阶子矩阵抽样近似相似矩阵谱聚类算法和最近邻稀疏化近似相似矩阵谱聚类算法的对比。
实验所使用的Matlab版本是:Matlab R2011a,运行Matlab的服务器是:Windows Server 2008 R2 Datacenter,系统处理器:Intel(R) CPU E5-260 0 @ 2.30GHz (2处理器),其内存(RAM)32.0GB,系统类型:64位操作系统。
(2)Matlab辅助实验数据集描述辅助性实验使用的经典文本分类数据集是路透社语料库卷I :RCV1(Reuters Corpus Volume I)[64],其具体描述见表3.3所示。
表3.3 实验数据集描述数据集类别数样本数特征维数数据集规模是否归一化来自领域RCV1 103 193844 144 1.23MB 是工业界术语(ECAT)(3)ASC Matlab实验和对比实验本实验主要是验证所提出的基于稀疏相似矩阵优化的谱聚类算法(ASC),图3.2显示分别构造RCV1数据集的稀疏化相似矩阵(t=10,20,30,40,50,100,200,300,400,500),计算相似矩阵离群点优化时间、ASC算法计算总时间、SVD计算时间和k-means计算时间,以及聚类质量(包括NMI 得分和聚类精确值,聚类精确值计算介绍参见论文第五章第三节实验评估标准),NMI标准化交互信息量(Normalized Mutual Information),NMI是主要的聚类质量评估标准,NMI值越大,表明近似谱聚类算法质量越高。
其用于实际的聚类标识CA T(Category label)与实验结果获得的聚类标识CLS(Cluster label),定义如下:(3.8)(3.9)其中,与熵分别表示CA T与CLS的交互信息量、标准化在范围内。
、与分别表示实际的聚类的数据点数、实验结果获得的聚类的数据点数和既属于实际的聚类又属于实验结果获得的聚类的数据点数。
图3.2 ASC计算时间和聚类质量图3.2中可以得出论文提出的ASC算法在优化相似矩阵离群点上的计算时间最耗时,但使用RCV1数据集实验所得的聚类精确度非常高,基于这样的原因,本文研究设计并实现基于Hadoop MapReduce并行近似谱聚类算法。
图3.3 ONSC计算时间和聚类质量图3.3展示论文第二章第三节所介绍的Nyström低阶子矩阵抽样法近似谱聚类算法实验结果,目的是作为参照与所提出的ASC谱聚类实验进对比。
该实验构建相似矩阵所使用的最近邻分别是t=20,30,40,50,100,200,300,400,500,1000,1500,2000,图中分别显示计算Euclidean距离矩阵与构建相似矩阵的时间,以及SVD计算时间、k-means计算时间和ONSC计算的总时间,相对于所提出的ASC聚类,ONSC计算的总时间要小很多,但是其聚类精确度不高。
图3.4 tNNSC计算时间和聚类质量图3.4描述论文第二章第三节所介绍的稀疏化矩阵法近似谱聚类算法实验结果,目的也是作为参照与所提出的ASC谱聚类实验进行对比。
该实验构建相似矩阵所使用的最近邻分别是t=5,15,30,40,50,100,150,200,250,300,350,400,450,500,图中分别显示计算Euclidean距离矩阵的时间,以及SVD计算时间、k-means计算时间和tNNSC计算的总时间,相对于所提出的ASC聚类以及ONSC聚类,tNNSC计算的总时间最少,但是其聚类精确度也不高。
二、ASC Matlab实验结果对比分析根据并行算法研究方法学中复杂性标准和性能评估,设计并行算法时,重要的是考虑算法的时空复杂性,此外,还需要考虑算法的加速比、可扩展性等其它性能参数[65]。
论文验证所提出的基于稀疏相似矩阵优化的谱聚类算法(ASC)旨在分析其计算时间和聚类质量,图3.5更加直观的对比显示优化的ASC算法、ONSC和tNNSC算法的总的计算时间,以及它们各自的SVD计算时间、k-means计算时间;优化的ASC算法、ONSC和tNNSC算法聚类质量,包括聚类的精确值和标准化交互信息量NMI。
图3.5 Matlab辅助实验计算时间和聚类质量对比论文鉴于构建优化的ASC算法近似相似矩阵的优化步骤时间、SVD计算时间、k-means计算时间,考虑ASC算法聚类精确度,研究设计并实现基于Hadoop的并行近似谱聚类算法,以期借助MapReduce并行编程框架达到在保证聚类精确度的前提下显著减少处理大规模高维数据的计算时间。
第四章MapReduce并行计算近似谱聚类算法研究与设计第一节并行算法设计Hadoop分布式集群系统MapRedue并行计算编程模型框架下,基于相似矩阵稀疏化方法离群点优化的近似谱聚类算法并行设计目的是在确保聚类质量的前提下聚类大规模高维数据。
论文基于此目的与MapReduce并行计算编程模型设计并验证第三章所提出的近似谱聚类算法。
一、MapReduce并行算法设计理念Hadoop MapReduce并行近似谱聚类算法设计与分析依赖于MapReduce并行计算模型。
MapReduce并行算法应用程序是同时执行并发作业Task的集合,Task作业集相互通信并同步协调,达到对近似谱聚类的并行求解。
MapReduce并行近似谱聚类并行算法执行分三个函数阶段设计:(1)map()函数:map()函数隶属于Mapper类,Mapper类继承JobConfigurable接口中的MapReduceBase类,接口中的configure方法按照MapReduce应用程序中定义的JobConf参数初始化Mapper类。
MapReduce应用程序使用InputFormat接口的RecordReader类调用InputSplit接口中的getRecordReader方法读取对,Mapper类中重写map()函数并行处理对,main()函数使用Mapper类中的run方法调用MapReduce应用程序中map()函数。
(2)combine()函数:combine()函数实际的功能是“本地的reduce()函数”,属于MapReduce并行计算算法设计中性能优化函数,它隶属于Combiner类,Combiner类继承JobConfigurable接口中的MapReduceBase类并实现Reducer类,重写reduce()函数:reduce(IntWritable key, Iterator<Text> values, OutputCollector <IntWritable, Text> output, Reporter reporter),实现本地map()函数中间结果值合并,减少网络通信对算法性能的影响。
由于combine()函数阶段中间值对合并操作可以减少MapReduce应用程序中Reduce Task远程拷贝多个Map Task本地数据量(中间值),因此,如果并行近似谱聚类算法中间步骤忽略网络通信对并行算法计算时间的影响,则不考虑combine()函数对并行算法设计的性能优化。
(3)reduce()函数:reduce()函数类继承JobConfigurable接口中的MapReduceBase类并实现Reducer类,reduce()函数与combine()函数的不同之处在于,Reduce Task合并并传输Hadoop集群中不同节点的Map Task输出结果,在MapReduce应用程序中需重写reduce()函数。