精华内容
下载资源
问答
  • 聚类算法优缺点总结

    千次阅读 2020-07-01 23:57:12
    聚类算法优缺点总结 目录 K均值算法 二分K-均值算法 Min单链凝聚层次聚类 Max全链凝聚层次聚类 组平均凝聚层次聚类 Ward方法 质心方法 Lance-Williams公式 DBSCAN密度聚类 聚类算法分析的角度 数据具有大小很不同...

    聚类算法优缺点总结

    目录

    1. K均值算法
    2. 二分K-均值算法
    3. Min单链凝聚层次聚类
    4. Max全链凝聚层次聚类
    5. 组平均凝聚层次聚类
    6. Ward方法
    7. 质心方法
    8. Lance-Williams公式
    9. DBSCAN密度聚类

    聚类算法分析的角度

    数据具有大小很不同的簇
    高维数据
    具有离群点的数据
    具有高度不规则区域的数据
    具有球形簇的数据
    具有很不相同的密度的数据
    具有少量噪声点的数据
    非欧几里得数据
    欧几里得数据
    具有许多属性和混合属性的数据

    1.K均值算法

    目标函数:最小化每个点到最近质心的距离的平方,即最小化SSE。
    优点:
    (1)原理比较简单,实现也是很容易,收敛速度快。
    (2)局部最优。
       (3)算法的可解释度比较强。
        (4)主要需要调参的参数仅仅是簇数k。
    (5)对处理大数据集,该算法保持可伸缩性和高效性
    (6)当簇接近高斯分布时,它的效果较好
    缺点:
    (1)处理空簇,如果所有点在指派步骤都未分配到某个簇,就会得到空簇
    (2)对噪声和异常点比较敏感
    (3)K值不好把握
    (4)对于不是凸的数据集比较难收敛
    (5)如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳
    (6)采用迭代方法,得到的结果只是局部最优
    (7)初始聚类中心的选择
    适用的数据类型:
    适用于各种数据类型,比较符合随机分布的欧几里得数据,但是不能处理非球形簇,不同尺寸和不同密度的簇

    2. 二分K-均值算法

    目标函数:从二分试验中选择具有最小总SSE的两个簇
    优点:与K均值相同,而且更有效(初始点的选择)
    缺点:与K均值相同
    适用的数据类型:与K均值相同

    3. K-means ++算法

    目标函数:通过选择较大的数据点作为质心使总SSE最小
    优点:与K均值相同,而且更有效(初试质心的选择)
    缺点:与K均值相同
    适用的数据类型:与K均值相同

    4. Min单链凝聚层次聚类

    目标函数:不同两个聚类中离得最近的两个点之间的距离
    优点:
    (1) 不需要指定K值
    (2) 产生高质量的聚类
    缺点:
    (1) 对于计算量和存储需求而言,此算法是昂贵的
    (2) 所有的合并都是最终的,对于噪声,高维数据,可能造成问题
    (3) 缺乏全局目标函数
    (4) 不能很好的处理不同大小簇的能力
    适用的数据类型:单链技术擅长于处理非椭圆形状的簇,但对噪声和离群点很敏感,适用于基本应用需要层次结构,创建一种分类方法,不适用于高维数据,适用于具有少量噪声并且具有欧几里得数据

    5. Max全链凝聚层次聚类

    目标函数:不同两个聚类中离得最远的两个点之间的距离
    优点:与凝聚层次聚类相同
    缺点:与凝聚层次聚类相同
    适用的数据类型:与凝聚层次聚类相同

    6. 组平均凝聚层次聚类

    目标函数:不同两个聚类中所有点对距离的平均值
    优点:与凝聚层次聚类相同
    缺点:与凝聚层次聚类相同
    适用的数据类型:与凝聚层次聚类相同

    7. Ward方法

    目标函数:最小化两个簇合并时导致的平方误差的增量
    优点:与凝聚层次聚类相同
    缺点:与凝聚层次聚类相同
    适用的数据类型:与凝聚层次聚类相同

    8. 质心方法

    目标函数:计算簇质心之间的距离来计算两个簇之间的邻近度
    优点:
    (1) 与凝聚层次聚类相同
    (2) 倒置的可能性
    缺点:与凝聚层次聚类相同
    适用的数据类型:与凝聚层次聚类相同

    9. DBSCAN密度聚类

    目标函数: 给定eps和minpts来聚类
    优点:
    (1) 相对抗噪声的
    (2) 能够处理任意形状和大小的簇,这也是比K均值好的地方
    (3) 聚类结果没有偏倚,而K-means聚类算法对初始值要求很高
    缺点:
    (1) 不能处理密度变化太大以及聚类间距相差很大的簇,不然效果比较差
    (2) 不能处理高维数据
    (3) 如果样本集较大时,聚类收敛时间较长
    (4) 需要进行调参,eps和minpts的参数确定
    (5) 算法聚类效果依赖距离公式的选取
    适用的数据类型:不能高维,簇密度不能变化太大,聚类间距也不能太大,样本集合适。

    展开全文
  • 聚类算法汇总 一、方法名字 ...K均值算法的缺点: 1)在簇的平均值可被定义的情况下才能使用,可能不适用于某些应用; 2) 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事...

    一、方法名字

    1.基于质心的算法

    K均值算法
    K均值算法的优点:
    1)是解决聚类问题的一种经典算法,简单、快速
    2)对处理大数据集,该算法保持可伸缩性和高效性
    3)当簇接近高斯分布时,它的效果较好。
    K均值算法的缺点:
    1)在簇的平均值可被定义的情况下才能使用,可能不适用于某些应用;
    2) 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;
    3) 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果;
    4) 该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的;
    5) 若簇中含有异常点,将导致均值偏离严重(即:对噪声和孤立点数据敏感);
    6) 不适用于发现非凸形状的簇或者大小差别很大的簇。
    模糊c均值聚类
    https://blog.csdn.net/lyxleft/article/details/88964494
    用三角不等式加速的K均值算法
    https://blog.csdn.net/haimengao/article/details/29553767

    2.层次聚类

    BIRCH层次聚类
    BIRCH层次聚类的优点
    1)节约内存,所有的样本都在磁盘上,CF Tree仅仅存了CF节点和对应的指针。
    2) 聚类速度快,只需要一遍扫描训练集就可以建立CF Tree,CF Tree的增删改都很快。
    3) 可以识别噪音点,还可以对数据集进行初步分类的预处理
    BIRCH层次聚类的缺点
    1) 由于CF Tree对每个节点的CF个数有限制,导致聚类的结果可能和真实的类别分布不同.
    2) 对高维特征的数据聚类效果不好。此时可以选择Mini Batch K-Means
    3) 如果数据集的分布簇不是类似于超球体,或者说不是凸的,则聚类效果不好。
    https://blog.csdn.net/Mbx8X9u/article/details/78910496

    3.基于概率分布的算法

    EM算法 期望最大化算法
    https://blog.csdn.net/qq_17073497/article/details/81272704
    https://blog.csdn.net/qq_43468729/article/details/84952202

    4.基于密度的算法

    DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)
    DBSCAN的优点:
    1) 可以对任意形状的稠密数据集进行聚类,相对的,K-Means之类的聚类算法一般只适用于凸数据
    2) 可以在聚类的同时发现异常点,对数据集中的异常点不敏感。
    3) 聚类结果没有偏倚,相对的,K-Means之类的聚类算法初始值对聚类结果有很大影响。
    DBSCAN的缺点:
    1)如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合。
    2) 如果样本集较大时,聚类收敛时间较长,此时可以对搜索最近邻时建立的KD树或者球树进行规模限制来改进。
    3)调参相对于传统的K-Means之类的聚类算法稍复杂,主要需要对距离阈值,邻域样本数阈值MinPts联合调参,不同的参数组合对最后的聚类效果有较大影响。
    OPTICS算法(Ordering points to identify the clustering structure,排序点来识别聚类结构)
    这个算法有效的解决了密度不同导致的聚类效果不好的问题。
    Mean Shift算法 (均值漂移)基于核密度估计技术,是一种寻找概率密度函数极值点的算法
    https://blog.csdn.net/stesha_chen/article/details/88827010

    5.基于图的算法

    谱聚类算法
    谱聚类算法的优点
    1)当聚类的类别个数较小的时候,谱聚类的效果会很好,但是当聚类的类别个数较大的时候,则不建议使用谱聚类;
    2)谱聚类算法使用了降维的技术,所以更加适用于高维数据的聚类;
    3)谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效。这点传统聚类算法(比如K-Means)很难做到
    4)谱聚类算法建立在谱图理论基础上,与传统的聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解
    谱聚类算法的缺点
    1)谱聚类对相似度图的改变和聚类参数的选择非常的敏感;
    2)谱聚类适用于均衡分类问题,即各簇之间点的个数相差不大,对于簇之间点个数相差悬殊的聚类问题,谱聚类则不适用;
    https://blog.csdn.net/qq_24519677/article/details/82291867

    二、各种方法在sklearn库中的调用

    算法名称函数
    K均值聚类算法from sklearn.cluster import KMeans
    小批量K均值算法from sklearn.cluster import MiniBatchKMeans
    BIRCH层次聚类ffrom sklearn.cluster import Birch
    .EM算法from sklearn.mixture import GaussianMixture
    DBSCAN算法from sklearn.cluster import DBSCAN
    OPTICS算法from sklearn.cluster import OPTICS
    Mean Shift算法from sklearn.cluster import MeanShift
    谱聚类算法from sklearn.cluster import SpectralClustering

    三、不同数据下聚类效果对比

    数据1的距离对比
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    通过上述4组不同的数据可以简单的看出不同数据下各类聚类算法的聚类好坏程度。以便于根据不同的数据类型选择不同的聚类方式。

    陈鑫您好!

    展开全文
  • 实用文档 信息与计算科学专业实验报告 课程名称 数据挖掘原理与算法 总实验学时 第 次 共 次 实验项目名称 聚类分析 本次实验学时数 实验类型 日期 20 16 年 5 月 25 日星期 三 年级 本 13 信计 01 班 学生姓名 黄...
  • 聚类算法总结 - 优缺点对比

    万次阅读 2019-08-27 09:55:19
    聚类算法是一种无监督的算法,由于不需要训练集,算法简单快速,引用在一些工程里比较简单突出,今天来了解一下聚类算法。 k-means算法(k均值算法) 算法步骤: (1)随机选取 K 个点,作为 K 类的聚类中心,用 ...

    前言

    聚类算法是一种无监督的算法,由于不需要训练集,算法简单快速,引用在一些工程里比较简单突出,今天来了解一下聚类算法。

    k-means算法(k均值算法)

    算法步骤:

    • (1)随机选取 K 个点,作为 K 类的聚类中心,用 K i K_i Ki表示

    • (2)遍历所有的数据点 P j P_j Pj,通过计算距离,找到距离 P j P_j Pj 最近的聚类中心点 K i K_i Ki,此时可以说第 j 个数据属于第 i 类

    • (3)分别计算第 i 类的所有数据的中心点,作为该类的新的聚类中心点。

    • (4)重复进行(2)(3)步骤。直到每一类的聚类中心不再发生变化

    从算法中我们需要确定以下几个标准:

    • k值的确定,我们必须确定我们算法中需要分几类
    • 计算距离公式,这个公式我们可以利用欧式距离来计算,
    • 聚类中心的计算:因为要不断更新聚类中心点,需要一个更新策略来更新
    优点
    • k-平均算法是解决聚类问题的一种经典算法,算法简单、快速。
    • 对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是 O ( n k t ) O(nkt) O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常k<<n。这个算法经常以局部最优结束。
    • 算法尝试找出使平方误差函数值最小的k个划分。当簇是密集的、球状或团状的,而簇与簇之间区别明显时,它的聚类效果很好。
    缺点
    • 对 K 值敏感。也就是说,K 的选择会较大程度上影响分类效果。在聚类之前,我们需要预先设定 K 的大小,但是我们很难确定分成几类是最佳的,比如上面的数据集中,显然分为 2 类,即K = 2 最好,但是当数据量很大时,我们预先无法判断。

    • 对离群点和噪声点敏感。如果在上述数据集中添加一个噪音点,这个噪音点独立成一个类。很显然,如果 K = 2,其余点是一类,噪音点自成一类,原本可以区分出来的点被噪音点影响,成为了一类了。如果 K = 3,噪音点也是自成一类,剩下的数据分成两类。这说明噪音点会极大的影响其他点的分类。

    • 初始聚类中心的选择。K-means 是随机选择 K 个点作为初始的聚类中心。但是,我们可以对这个随机性进行一点约束,使迭代速度更快。举个例子,如果上面的数据集我随机选择了(0,0)和(1,0)两个点,或者选择了(1.5,1.5)和(9,9)两个点,即可以加快迭代速度,也可以避免陷入局部最优。

    • 只能聚凸的数据集。所谓的凸数据集,是指集合内的每一对点,连接两个点的直线段上的每个点也在该集合内。通俗讲就是K-means 聚类的形状一般只能是球状的,不能推广到任意的形状,但是有研究表明,若采用 Bregman 距离,则可显著增强此类算法对更多类型簇结构的适用性

    改进
    • 针对K值的选择问题,主要是 K 的值必须认为预先设定,并且在整个算法执行过程中无法更改。此时,可以利用 ISODATA 算法:当属于某个类别的样本数过少,就将这个类别剔除;当属于这个类别的样本过多、分散程度很大的时候,就将这个类别分为两个子类,此时 K 也就会 + 1了,一些说明:虽然有很多启发式用于自动确定 k 的值,但是实际应用中,最常用的仍然是基于不同的 K 值,多次运行取平均值(周志华 《机器学习》书 P218)

    • 针对离群点和噪声点,我们可以使用一些算法,比如 RANSAC 、LOF 等剔除离群点。此外,基于 K-means 的改进算法有 k-medoids 和 k-medians

    • 对于初始聚类中心点的问题,K-means ++ 不再随机选择 K 个聚类中心:假设已经选取了 m 个聚类中心( 0 < m < K),m = 1时,随机选择一个聚类中心点;在选取第 m+1 个点的时候,距离当前 m 个聚类中心点的中心越远的点,越会以更高的概率被选为第 m+1 个聚类中心。这种方法在一定程度上可以让“随机”选择的聚类中心点的分布更均匀。此外还有 canopy 算法等。

    • K-means 是使用欧式距离来测量,显然,这种度量方式并不适合于所有的数据集。换句话说,K-means 比较适合聚那些球状的簇。参照 SVM 中核函数的思想,将样本映射到另外一个特征空间,就可以改善聚类效果。代表算法是;kernel K-means

    DBSCAN算法:基于密度的聚类算法

    算法流程:

    • 以每一个数据点 x i x_i xi为圆心,以 eps值 为半径画一个圆圈。这个圆圈被称为 x i x_i xi eps 邻域

    • 对这个圆圈内包含的点进行计数。
      (1) 如果一个圆圈里面的点的数目超过了密度阈值 MinPts,那么将该圆圈的圆心记为核心点,又称核心对象。
      (2) 如果某个点的 eps 邻域内点的个数小于密度阈值但是落在核心点的邻域内,则称该点为边界点
      (3) 既不是核心点也不是边界点的点,就是噪声点

    • 核心点 x i x_i xi的 eps 邻域内的所有的核心点连在一起,这样不断的将区域内的核心点连在一起,核心点的区域内又有核心点相当于从 x 1 x_1 x1 - > x 2 x_2 x2 - > . . . - > x n x_n xn,类似于密度传导一样,那么, x n x_n xn x 1 x_1 x1 密度可达。这个性质说明了由密度直达的传递性,可以推导出密度可达。

    • 如果对于 x k x_k xk,使 x i x_i xi x j x_j xj都可以由 x k x_k xk密度可达,那么,就称 x x i x_i xi x j x_j xj 密度相连。将密度相连的点连接在一起,就形成了我们的聚类簇。

    通过上述算法我们可以看到算法需要两个参数:

    • eps值,半径值,用来做区域
    • MinPts值,用来判断哪些点是核心点

    西瓜书上的算法图:

    [外链图片转存失败(img-XUnqJLD8-1566869759407)(https://raw.githubusercontent.com/Klauszhao/picture/master/picture/cluster/DBSCAN%E8%81%9A%E7%B1%BB%E7%AE%97%E6%B3%95.png)]

    英文算法:
    [外链图片转存失败(img-rOHqxEAp-1566869523673)(https://raw.githubusercontent.com/Klauszhao/picture/master/picture/cluster/DBSCAN%E8%8B%B1%E6%96%87%E7%89%88.jpg)]

    优点
    • 自适应的聚类,不需要提前设定K值大小,可以自适应的做聚类结果。

    • 对噪声不敏感。这是因为该算法能够较好地判断离群点,并且即使错判离群点,对最终的聚类结果也没什么影响

    • 能发现任意形状的簇。这是因为DBSCAN 是靠不断连接邻域呢高密度点来发现簇的,只需要定义邻域大小和密度阈值,因此可以发现不同形状,不同大小的簇

    • 聚类结果没有偏倚,相对的,K-Means之类的聚类算法初始值对聚类结果有很大影响

    缺点
    • 对两个参数的设置敏感,即圈的半径 eps 、阈值 MinPts

    • DBSCAN 使用固定的参数识别聚类。显然,当聚类的稀疏程度不同,聚类效果也有很大不同。即数据密度不均匀时,很难使用该算法

    • 如果数据样本集越大,收敛时间越长。此时可以使用 KD 树优化

     
    from sklearn.datasets.samples_generator import make_circles
    import matplotlib.pyplot as plt
     
    import time
    from sklearn.cluster import KMeans
     
    from sklearn.cluster import DBSCAN
     
    X,y_true = make_circles(n_samples=1000,noise=0.15) #这是一个圆环形状的
     
    plt.scatter(X[:,0],X[:,1],c=y_true)
    plt.show()
     
     
    #DBSCAN 算法
    t0 = time.time()
    dbscan = DBSCAN(eps=.1,min_samples=6).fit(X)  # 该算法对应的两个参数
    t = time.time()-t0
    plt.scatter(X[:, 0], X[:, 1], c=dbscan.labels_)
    plt.title('time : %f'%t)
    plt.show()
    

    凝聚式层次聚类

    层次聚类可以分为凝聚(agglomerative)层次聚类和分裂(divsive)层次聚类。分裂层次聚类采用的就是"自顶而下"的思想,先将所有的样本都看作是同一个簇,然后通过迭代将簇划分为更小的簇,直到每个簇中只有一个样本为止。凝聚层次聚类采用的是"自底向上"的思想,先将每一个样本都看成是一个不同的簇,通过重复将最近的一对簇进行合并,直到最后所有的样本都属于同一个簇为止。

    算法步骤:

    • 我们首先将每个数据点视为一个单一的簇,即如果我们的数据集中有 X 个数据点,那么我们就有 X 个簇。然后,我们选择一个测量两个簇之间距离的距离度量标准。作为例子,我们将用 average linkage,它将两个簇之间的距离定义为第一个簇中的数据点与第二个簇中的数据点之间的平均距离。
    • 在每次迭代中,我们将两个簇合并成一个。这两个要合并的簇应具有最小的 average linkage。即根据我们选择的距离度量标准,这两个簇之间的距离最小,因此是最相似的,应该合并在一起。
    • 重复步骤 2 直到我们到达树根,即我们只有一个包含所有数据点的簇。这样我们只需要选择何时停止合并簇,即何时停止构建树,来选择最终需要多少个簇!

    从算法中我们可以知道,我们需要提供一下:

    • 距离计算公式,计算两个类之间的距离

    在凝聚层次聚类中,判定簇间距离的两个标准方法就是单连接(single linkage)和全连接(complete linkage)。单连接,是计算每一对簇中最相似两个样本的距离,并合并距离最近的两个样本所属簇。全连接,通过比较找到分布于两个簇中最不相似的样本(距离最远),从而来完成簇的合并。

    凝聚层次聚类除了通过单连接和全连接来判断两个簇之间的距离之外,还可以通过平均连接(average linkage)和ward连接。使用平均连接时,合并两个簇所有成员间平均距离最小的两个簇。使用ward连接,合并的是使得SSE增量最小的两个簇。

    优点
    • 1、距离和规则的相似度容易定义,限制少
    • 2、不需要预先制定聚类数
    • 3、可以发现类的层次关系
    缺点
    • 1,计算复杂度太高;
    • 2,奇异值也能产生很大影响;
    • 3,算法很可能聚类成链状

    参考博客

    聚类算法(一)—— k-means算法以及其改进算法
    聚类算法(三)——基于密度的聚类算法(以 DBSCAN 为例)
    聚类算法(二)、聚类算法的系统性比较

    展开全文
  • 聚类指的是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,...

    一.聚类的概念

    1.定义
    聚类指的是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同数据尽量分离。
    (注:聚类方法是属于无监督的分类方式。)

    2.聚类的分类

    聚类方法主要划分为五大类:
    (1)基于层次的聚类
    原理:试图在不同层次上对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略和“自顶向下”的拆分策略。

    (2)基于分割(划分)的聚类
    原理:首先要确定一堆散点最后聚成几类,然后挑选几个点作为初始中心点,再然后依据预先定好的启发式算法(heuristic algorithms)给数据点做迭代重置(iterative relocation),直到最后到达“类内的点都足够近,类间的点都足够远”的目标效果。

    (3)基于密度的聚类
    原理:定一个距离半径,最少有多少个点,然后把可以到达的点都连起来,判断为同类。

    (4)基于网格的聚类
    原理:将数据空间划分为网格单元,将数据对象集映射到网格单元中,并计算每个单元的密度。根据预设的阈值判断每个网格单元是否为高密度单元,密度足够大的网格单元形成簇。

    (5)基于模型的聚类
    原理:为每簇假定了一个模型,寻找数据对给定模型的最佳拟合,这一类方法主要是指基于概率模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。

    二.五类聚类方法详解

    1.基于层次的聚类

    (1)算法流程
    以下流程以自下向上为例。
    a.将每个对象看作一类,计算两两之间的最小距离;
    b. 将距离最小的两个类合并成一个新类;
    c. 重新计算新类与所有类之间的距离;
    d. 重复b, c, 直到所有类最后合并成一类。(在此我们了已选择我们需要多少个簇)

    (2)代表算法:BIRCH、Chameleon、CURE等

    算法具体描述
    BIRCHBIRCH算法利用树结构对数据集进行处理,叶结点存储一个聚类,用中心和半径表示,顺序处理每一个对象,并把它划分到距离最近的结点,该算法也可以作为其他聚类算法的预处理过程
    Chameleon首先由数据集构造成一个K-最近邻图Gk ,再通过一个图的划分算法将图Gk划分成大量的子图,每个子图代表一个初始子簇,最后用一个凝聚的层次聚类算法反复合并子簇,找到真正的结果簇
    CURE先将每个数据点看成一个簇,然后再以一个特定的“收缩因子”向簇中心“收缩”它们,即合并距离最近的两个簇直到簇的个数为所要求得个数为止

    三种算法优缺点比较:

    算法优缺点
    BIRCH优点: 可以在数据量很大时使用、节省内存、速度快、可识别噪声点。缺点: 对高维数据特征的聚类效果不好、若数据集分布簇不是类似于超球体或凸的则聚类效果不好。
    Chameleon优点: 可以处理非常复杂不规则形状的簇。缺点: 高维数据的运算复杂度比较高。
    CURE优点: 可以处理复杂空间的簇、受噪点影响小,对孤立点的处理更加健壮。缺点: 参数较多、对空间数据密度差异敏感

    2.基于划分的聚类
    基于划分的聚类代表方法有:K-means及其变体包括k-medoids、k-modes、k-medians等、CLARA、PAM等算法。
    k-means算法流程:
    a. 随机地选择k个对象,每个对象初始地代表了一个簇的中心;
    b.对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;
    c.重新计算每个簇的平均值,更新为新的簇中心;
    d.不断重复b, c, 直到准则函数收敛。

    算法具体描述
    k-means以集群点的平均值作为参考对象进行聚类
    k-medoids以集群点中最中心(中位数)的对象为参考进行聚类
    k-modes以集群点特征的众数作为参考进行聚类
    PAMk-medoids的一个变体,使用迭代和贪心算法进行聚类
    CLARA在PAM的基础上对数据进行了抽样

    各类基于划分的算法优缺点比较:

    算法优缺点
    k-means优点: 算法简单,时间复杂度低。缺点: 无法处理非球形等不规则的数据、对初始值k的设置很敏感、对离群点敏感。
    k-medoids优点: 对噪点和离群点不敏感。缺点: 处理时间比k-means长、须事先指定所需聚类簇个数k。
    k-modes优点: 可适用于离散性数据集、时间复杂度更低。缺点: 需要事先对k值进行确定。
    PAM优点: 对离群点数据不敏感。缺点: 时间复杂度高。
    CLARA优点: 可用于大规模数据集的聚类。缺点: 在对数据进行随机抽样过程中采样不准确。

    3.基于密度的聚类
    (1)算法流程
    a.指定合适的r(点的半径)和M(在一个点半径内至少包含的点的个数);
    b.计算所有的样本点,如果点p的r邻域里有超过M个点,则创建一个以p为核心点的新簇;
    c.反复寻找这些核心点直接密度可达的点,将其加入到相应的簇,对于核心点发生"密度相连"状况的簇,给予合并;
    d.当没有新的点可以被添加到任何簇,算法结束。

    (2)代表算法:DBSCAN、OPTICS、DENCLUE等。

    算法具体描述
    DBSCAN这类方法采用空间索引技术来搜索对象的邻域,将簇看做是数据空间中被低密度区域分割开的稠密对象区域
    OPTICS是DBSCAN算法的一种改进,对数据对象集合中的对象进行排序,得到一个有序的对象列表,其中包含了足够的信息用来提取聚类
    DENCLUE将每个数据点的影响用一个数学函数形式化地模拟出来,聚类簇通过密度吸引点(全局密度函数的局部最大值)来确定

    各种算法的优缺点比较:

    算法优缺点
    DBSCAN优点: 可以处理任何形状的聚类簇、能够检测异常点。缺点: 需要给定数据点的半径r和最少数量m、对输入参数较敏感。
    OPTICS优点: 对输入参数不敏感。缺点: 计算量大、速度较慢。
    DENCLUE优点: 对有巨大噪声的数据点有良好的聚类效果、比DBSCAN算法快得多、有严格的数学基础。缺点:需要大量的参数并且参数对结果的影响巨大。

    4.基于网格的聚类
    (1)算法流程:
    a.划分网格;
    b.使用网格单元内数据的统计信息对数据进行压缩表达;
    c.基于这些统计信息判断高密度网格单元 ;
    d.最后将相连的高密度网格单元识别为簇。

    (2)代表算法:STING、WaveCluster、CLIQUE等。

    算法具体描述
    STING将输入对象的空间区域划分成矩形单元,每个网格单元的统计信息(均值、最大值、最小值)被作为参数预先计算和存储
    WaveCluster把多维数据看做一个多微信号处理,即划分为网格结构后,通过小波变换将数据空间变换成频域空间进行处理
    CLIQUE对高维数据集采用了子空间的概念,划分为网格结构后识别出密集单元,然后运用深度优先算法发现空间中的聚类,再对每个聚类簇确定最小覆盖区域

    各个算法的优缺点比较:

    算法优缺点
    STING优点: 效率高、时间复杂度低。缺点: 聚类质量受网格结构最底层的粒度影响、欠缺对网格单元之间的联系的考量。
    WaveCluster优点: 速度快、是一个多分辨率算法,高分辨率可获得细节信息,低分辨率可获得轮廓信息。缺点: 对已处理簇与簇之间没有明显边缘的情况聚类效果较差。
    CLIQUE优点: 善于处理高维数据和大数据集。缺点: 聚类的准确度较低。

    5.基于模型的聚类
    这一类方法主要是指基于概率模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。
    这里的概率模型主要指概率生成模型(generative Model),同一”类“的数据属于同一种概率分布,即假设数据是根据潜在的概率分布生成的。
    代表算法:高斯混合模型(GMM)、SOM(Self Organized Maps)

    算法具体描述
    GMM基于概率模型,将数据分解为若干个基于高斯概率密度函数形成的模型
    SOM基于神经网络模型,一种无监督学习网络,输入层接受输入信号,输出层由神经元按一定方式排列成一个二维节点矩阵

    各算法的优缺点比较:

    算法优缺点
    GMM优点: 结果用概率表示,更具可视化并且可以根据俄这些概率在某个感兴趣的区域重新拟合预测。缺点: 需要使用完整的样本信息进行预测、在高维空间失去有效性。
    SOM优点: 映射至二维平面,实现可视化、可获得较高质量的聚类结果。缺点: 计算复杂度较高、结果一定程度上依赖于经验的选择。

    6.各种算法的使用场景总结

    在这里插入图片描述
    在这里插入图片描述

    三.五大聚类方法优缺点总结

    分类特点及优缺点
    基于层次1.算法简单 2.层次用于概念聚类(生成概念、文档层次树) 3.处理大小不同的簇 4.得到不同粒度上的多层次聚类结构 6.适用于任意形状的聚类 7.对样本的输入顺序不敏感 8.算法时间复杂度较大 9.过程具有不可逆性 10.聚类终止条件具有不精确性。
    基于划分1.算法简单 2.基于距离 3.易于发现球形互斥的簇 4. 时间复杂度相对较低 5.基于质心的聚类,对边缘点离群点处理效果一般
    基于密度1.可以发现任意形状的簇 2.广泛应用于空间信息处理 3.对噪音不敏感 4.比较直观
    基于网格1.处理速度快 2.精确性不高 3.所有的聚类都在网格结构中进行
    基于模型1.更具可视化 2.计算复杂度较高 3.执行效率低 4.数据量小的时候效果不好

    参考:
    1.聚类
    2.常见的六大聚类算法
    3.聚类评估
    4.各种聚类算法的系统介绍和比较

    展开全文
  • 几中聚类算法的优缺点比较总结

    万次阅读 2012-07-25 20:27:06
    缺点:1,需要对均值给出定义,2,需要指定要聚类的数目;3,一些过大的异常值会带来很大影响;4,算法对初始选值敏感;5,适合球形聚类 层次聚类: 优点:1,距离和规则的相似度容易定义,限制少;2,不需要预先...
  • 整理了四种常用的聚类方法,自用,现供大家参考 K均值聚类方法中 聚类个数是用了factoextra包中的fviz_nbclust函数 并用此包中的画图函数绘制了拐点图,结果较为直观...系统聚类包括最大距离法、类平均法和离差平方和法
  • Matlab之聚类分析

    千次阅读 2018-08-08 17:28:39
    一、什么是聚类分析 聚类分析是研究分类问题的一种多元统计方法。所谓类,就是指相似元素的集合 聚类分析的研究目的 把相似的东西归成类,根据相似的程度将研究目标进行分类。 聚类分析的研究对象 R型分析----...
  • 各种聚类算法的系统介绍和比较

    万次阅读 2018-04-16 22:15:42
    最近项目用到聚类算法,将其系统的总结一下。一、简要介绍1、聚类概念聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据...
  • matlab做聚类分析

    千次阅读 2019-08-28 20:23:43
    说明:如果是要用matlab做kmeans聚类分析,直接使用函数kmeans即可。使用方法:kmeans(输入矩阵,分类个数k)。 转载一: MATLAB提供了两种方法进行聚类分析: 1、利用clusterdata函数对数据样本进行一次聚类,这...
  • 文章目录聚类分析聚类分析的基本思想相似性度量类和类的特征系统聚类法K-均值聚类有序样本的聚类 聚类分析 聚类分析将个体或对象分类,使得同一类中的对象之间的相似性比与其他类的对象的相似性更强。其目的在于使...
  • R型聚类分析

    千次阅读 2018-09-09 17:43:11
    R型聚类分析聚类分析的一种,一般对指标进行分类。 在实际工作中,为了避免漏掉某些重要因素,往往在一开始选取指标的时候尽可能考虑所有的相关因素,而这样做的结果,则是变量过多,变量间的相关度较高,给统计...
  • 聚类分析

    千次阅读 2017-12-21 00:04:26
    聚类分析Cluster Analysis 聚类分析的作用 聚类分析的目的 聚类算法 划分方法 partitioning method K - Means 算法 K - 中心点算法 层次的方法hierarchical method AGNES算法 DIANA算法 基于密度的方法density-based...
  • R语言聚类分析

    万次阅读 多人点赞 2017-02-27 17:10:27
    部分参考薛毅的《统计建模与R软件》和《R语言实战》聚类分析是一类将数据所研究对象进行分类的统计方法,这一类方法的共同特点是:事先不知道类别的个数和结构,据以进行分析的数据是对象之间的相似性或相异性的数据...
  • 聚类分析方法的研究与应用综述

    千次阅读 2020-12-04 18:23:43
    聚类分析方法的研究与应用综述 417109070529 李蓉珊 河北地质大学信息工程学院软件工程2017级503班 石家庄 050031 摘要:聚类分析是一种研究如何将相似的事物归为一类,使得组内对象相似,组间对象不同.是研究(样品...
  •  系统聚类法则是系统自己根据数据之间的距离来自动列出类别,所以通过系统聚类法 得出一个树状图,至于聚类的类别 需要自己根据树状图以及经验来确定  (同上)在聚类分析中,我们常用的聚类方法有快速聚类(迭代聚类)...
  • 聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测; 也可以探究不同类之间的相关性和主要差异。 聚类和上一讲分类的区别:分类是已知类别的,聚类未知 2. K-means聚类算法(K...
  • 聚类分析(超全超详细版)

    万次阅读 多人点赞 2020-04-20 20:50:31
    聚类分析是一种典型的无监督学习, 用于对未知类别的样本进行划分,将它们按照一定的规则划分成若干个类族,把相似(距高相近)的样本聚在同一个类簇中, 把不相似的样本分为不同类簇,从而揭示样本之间内在的性质以及...
  • 主成分分析、因子分析和聚类分析的区别

    万次阅读 多人点赞 2017-09-24 13:08:53
    主成分分析就是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。 综合指标即为主成分。...聚类分析是依据实验数据本身所具有的定性或定量的特征来
  • k 均值聚类法 快速高效,特别是大量数据时,准确性高一些,但是需要你自己指定聚类的类别数量系统聚类法则是系统自己根据数据之间的距离来自动列出类别,所以通过系统聚类法 得出一个树状图,至于聚类的类别 需要自己根据...
  • 利用python实现聚类分析 - K-means

    千次阅读 2020-06-05 17:46:11
    K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。 算法...
  • 聚类分析 这里主要要注意的地方就是聚类与分类之间的区别:分类面向的是已知的类别,大部分情况是通过对已有的数据进行学习,之后再对新来的一个数据进行类别的预测,而聚类面向的是未知的类别,是按照“距离”对...
  • Kmeans聚类分析

    2019-05-05 12:26:38
    聚类分析基本概念及常用算法 概念 聚类分析是一组将研究对象分为相对同质的群组的统计分析技术。聚类分析也叫分类分析或数值分类。聚类和分类的不同之处在于聚类所要求划分的类是未知的。 聚类度量方法 聚类之间...
  • 聚类分析知识点总结

    千次阅读 2017-03-08 15:16:04
    聚类分析(Cluster Analysis) 一、聚类分析与判别分析 • 判别分析:已知分类情况,将未知个体归入正确类别 • 聚类分析:分类情况未知,对数据结构进行分类   二、Q型和R型 聚类   Q型是对样本进行...
  • 有代码或者包来实现求R方、半偏R方、伪F等统计量的吗? sas里的过程直接会得到这些值,R里有代码或者包来求这些统计量吗?![图片说明](https://img-ask.csdn.net/upload/201611/24/1479967646_242995.jpg)
  • 聚类分析学习(三)R型聚类学习

    万次阅读 2018-08-21 20:02:27
     1.R型聚类分析聚类分析的一种,一般对指标进行分类。  2.R型聚类的引入简介:  在实际工作中,为了避免漏掉某些重要因素,往往在一开始选取指标的时候尽可能考虑所有的相关因素,而这样做的结果,则是变量...
  • 聚类分析(cluster analysis)是常见的数据挖掘手段,其主要假设是数据间存在相似性。而相似性是有价值的,因此可以被用于探索数据中的特性以产生价值。常见应用包括:用户分割:将用...
  • R语言--聚类分析

    千次阅读 2019-07-12 12:17:00
    聚类分析是在样本个体的类别归属未知的情况下的分类方法,根据目的聚类分析可以分为:指标聚类,指标降维从而选择有代表性的指标;样品聚类,找出样品间的共性。 聚类算法: K-均值聚类(K-Means) K-中心点聚类(K...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,609
精华内容 2,643
关键字:

系统聚类分析的优缺点