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

    千次阅读 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组不同的数据可以简单的看出不同数据下各类聚类算法的聚类好坏程度。以便于根据不同的数据类型选择不同的聚类方式。

    陈鑫您好!

    展开全文
  • 聚类算法总结 - 优缺点对比

    万次阅读 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 为例)
    聚类算法(二)、聚类算法的系统性比较

    展开全文
  • 各种聚类算法的系统介绍和比较

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

    最近项目用到聚类算法,将其系统的总结一下。

    一、简要介绍

    1、聚类概念

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

    2、聚类和分类的区别

    聚类技术通常又被称为无监督学习,因为与监督学习不同,在聚类中那些表示数据类别的分类或者分组信息是没有的。 
    Clustering (聚类),简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此 clustering 通常并不需要使用训练数据进行学习,这在Machine Learning中被称作unsupervised learning (无监督学习)。 
    Classification (分类),对于一个classifier,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做supervised learning (监督学习)。

    3、衡量聚类算法优劣的标准

    不同聚类算法有不同的优劣和不同的适用条件。大致上从跟数据的属性(是否序列输入、维度),算法模型的预设,模型的处理能力上看。具体如下: 
    1、算法的处理能力:处理大的数据集的能力(即算法复杂度);处理数据噪声的能力;处理任意形状,包括有间隙的嵌套的数据的能力; 
    2、算法是否需要预设条件:是否需要预先知道聚类个数,是否需要用户给出领域知识; 
    3、算法的数据输入属性:算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;算法处理有很多属性数据的能力,也就是对数据维数是否敏感,对数据的类型有无要求。

    4、聚类算法有哪些类

    脑图

    常用算法特点比较

    二、算法介绍

    1、基于层次的方法(Hierarchical methods)

    1.1基本思想

    层次聚类主要有两种类型:合并的层次聚类和分裂的层次聚类。前者是一种自底向上的层次聚类算法,从最底层开始,每一次通过合并最相似的聚类来形成上一层次中的聚类,整个当全部数据点都合并到一个聚类的时候停止或者达到某个终止条件而结束,大部分层次聚类都是采用这种方法处理。后者是采用自顶向下的方法,从一个包含全部数据点的聚类开始,然后把根节点分裂为一些子聚类,每个子聚类再递归地继续往下分裂,直到出现只包含一个数据点的单节点聚类出现,即每个聚类中仅包含一个数据点。

    1.2算法流程

    以下流程以自下向上为例。 
    1. 将每个对象看作一类,计算两两之间的最小距离; 
    2. 将距离最小的两个类合并成一个新类; 
    3. 重新计算新类与所有类之间的距离; 
    4. 重复2、3,直到所有类最后合并成一类

    1.3算法优缺点

    优点:可解释性好(如当需要创建一种分类法时);还有些研究表明这些算法能产生高质量的聚类,也会应用在上面说的先取K比较大的K-means后的合并阶段;还有对于K-means不能解决的非球形族就可以解决了。 
    缺点:时间复杂度高啊,o(m^3),改进后的算法也有o(m^2lgm),m为点的个数;贪心算法的缺点,一步错步步错;同K-means,difficulty handling different sized clusters and convex shapes。

    1.4常见的算法及改进

    该聚类算法因为计算复杂度比较大适用于小数量级,如对中国省会城市聚类。改进的算法有BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies)主要是在数据体量很大的时候使用,而且数据类型是numerical。 
    Chameleon(A Hierarchical Clustering Algorithm Using Dynamic Modeling)里用到的linkage是kNN(k-nearest-neighbor)算法,并以此构建一个graph,Chameleon的聚类效果被认为非常强大,比BIRCH好用,但运算复杂还是很高,O(n^2)。看个Chameleon的聚类效果图,其中一个颜色代表一类,可以看出来是可以处理非常复杂的形状的。 
    这里写图片描述

    2、基于划分的方法(Partition-based methods)

    2.1基本思想

    基于划分的方法:其原理简单来说就是,想象你有一堆散点需要聚类,想要的聚类效果就是“类内的点都足够近,类间的点都足够远”。首先你要确定这堆散点最后聚成几类,然后挑选几个点作为初始中心点,再然后依据预先定好的启发式算法(heuristic algorithms)给数据点做迭代重置(iterative relocation),直到最后到达“类内的点都足够近,类间的点都足够远”的目标效果。也正是根据所谓的“启发式算法”,形成了k-means算法及其变体包括k-medoids、k-modes、k-medians、kernel k-means等算法。

    2.2算法流程

    经典K-means算法流程: 
    1. 随机地选择k个对象,每个对象初始地代表了一个簇的中心; 
    2. 对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇; 
    3. 重新计算每个簇的平均值,更新为新的簇中心; 
    4. 不断重复2、3,直到准则函数收敛。

    2.3算法优缺点

    优点:对于大型数据集也是简单高效、时间复杂度、空间复杂度低。 
    缺点:最重要是数据集大时结果容易局部最优;需要预先设定K值,对最先的K个点选取很敏感;对噪声和离群值非常敏感;只用于numerical类型数据;不能解决非凸(non-convex)数据。

    2.4常见的算法及改进

    k-means对初始值的设置很敏感,所以有了k-means++、intelligent k-means、genetic k-means。 
    k-means对噪声和离群值非常敏感,所以有了k-medoids和k-medians。 
    k-means只用于numerical类型数据,不适用于categorical类型数据,所以k-modes。 
    k-means不能解决非凸(non-convex)数据,所以有了kernel k-means。 
    另外,很多教程都告诉我们Partition-based methods聚类多适用于中等体量的数据集,但我们也不知道“中等”到底有多“中”,所以不妨理解成,数据集越大,越有可能陷入局部最小。下图显示的就是面对非凸,k-means和kernel k-means的不同效果。 
    这里写图片描述

    3、基于密度的方法(Density-based methods)

    3.1基本思想

    基于密度的方法:k-means解决不了不规则形状的聚类。于是就有了Density-based methods来系统解决这个问题。该方法同时也对噪声数据的处理比较好。其原理简单说画圈儿,其中要定义两个参数,一个是圈儿的最大半径,一个是一个圈儿里最少应容纳几个点。只要邻近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类,最后在一个圈里的,就是一个类。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)就是其中的典型.

    3.2算法流程

    DBSCAN流程: 
    1. 从任一对象点p开始; 
    2. 寻找并合并核心p对象直接密度可达(eps)的对象; 
    3. 如果p是一个核心点,则找到了一个聚类,如果p是一个边界点(即从p没有密度可达的点)则寻找下一个对象点; 
    4. 重复2、3,直到所有点都被处理

    DBSCAN聚类算法原理的基本要点:确定半径eps的值 
    ①DBSCAN算法需要选择一种距离度量,对于待聚类的数据集中,任意两个点之间的距离,反映了点之间的密度,说明了点与点是否能够聚到同一类中。由于DBSCAN算法对高维数据定义密度很困难,所以对于二维空间中的点,可以使用欧几里德距离来进行度量。 
    ②DBSCAN算法需要用户输入2个参数:一个是半径(Eps),表示以给定点P为中心的圆形邻域的范围;另一个是以点P为中心的邻域内最少点的数量(MinPts)。如果满足:以点P为中心、半径为Eps的邻域内的点的个数不少于MinPts,则称点P为核心点。 
    ③DBSCAN聚类使用到一个k-距离的概念,k-距离是指:给定数据集P={p(i);i=0,1,…n},对于任意点P(i),计算点P(i)到集合D的子集S={p(1), p(2), …, p(i-1), p(i+1), …, p(n)}中所有点之间的距离,距离按照从小到大的顺序排序,假设排序后的距离集合为D={d(1), d(2), …, d(k-1), d(k), d(k+1),…,d(n)},则d(k)就被称为k-距离。也就是说,k-距离是点p(i)到所有点(除了p(i)点)之间距离第k近的距离。对待聚类集合中每个点p(i)都计算k-距离,最后得到所有点的k-距离集合E={e(1), e(2), …, e(n)}。 
    ④根据经验计算半径Eps:根据得到的所有点的k-距离集合E,对集合E进行升序排序后得到k-距离集合E’,需要拟合一条排序后的E’集合中k-距离的变化曲线图,然后绘出曲线,通过观察,将急剧发生变化的位置所对应的k-距离的值,确定为半径Eps的值。 
    ⑤根据经验计算最少点的数量MinPts:确定MinPts的大小,实际上也是确定k-距离中k的值,DBSCAN算法取k=4,则MinPts=4。 
    ⑥如果对经验值聚类的结果不满意,可以适当调整Eps和MinPts的值,经过多次迭代计算对比,选择最合适的参数值。可以看出,如果MinPts不变,Eps取得值过大,会导致大多数点都聚到同一个簇中,Eps过小,会导致一个簇的分裂;如果Eps不变,MinPts的值取得过大,会导致同一个簇中点被标记为噪声点,MinPts过小,会导致发现大量的核心点。 
    我们需要知道的是,DBSCAN算法,需要输入2个参数,这两个参数的计算都来自经验知识。半径Eps的计算依赖于计算k-距离,DBSCAN取k=4,也就是设置MinPts=4,然后需要根据k-距离曲线,根据经验观察找到合适的半径Eps的值。

    3.3算法优缺点

    优点:对噪声不敏感;能发现任意形状的聚类。 
    缺点:聚类的结果与参数有很大的关系;DBSCAN用固定参数识别聚类,但当聚类的稀疏程度不同时,相同的判定标准可能会破坏聚类的自然结构,即较稀的聚类会被划分为多个类或密度较大且离得较近的类会被合并成一个聚类。

    3.4常见的算法及改进

    DBSCAN对这两个参数的设置非常敏感。DBSCAN的扩展叫OPTICS(Ordering Points To Identify Clustering Structure)通过优先对高密度(high density)进行搜索,然后根据高密度的特点设置参数,改善了DBSCAN的不足。下图就是表现了DBSCAN对参数设置的敏感,你们可以感受下。 
    这里写图片描述

    4、基于网络的方法(Grid-based methods)

    4.1基本思想

    基于网络的方法:这类方法的原理就是将数据空间划分为网格单元,将数据对象集映射到网格单元中,并计算每个单元的密度。根据预设的阈值判断每个网格单元是否为高密度单元,由邻近的稠密单元组形成”类“。

    4.2算法流程

    这些算法用不同的网格划分方法,将数据空间划分成为有限个单元(cell)的网格结构,并对网格数据结构进行了不同的处理,但核心步骤是相同的: 
    1、 划分网格 
    2、 使用网格单元内数据的统计信息对数据进行压缩表达 
    3、 基于这些统计信息判断高密度网格单元 
    4、 最后将相连的高密度网格单元识别为簇

    4.3算法优缺点

    优点:速度很快,因为其速度与数据对象的个数无关,而只依赖于数据空间中每个维上单元的个数。 
    缺点:参数敏感、无法处理不规则分布的数据、维数灾难等;这种算法效率的提高是以聚类结果的精确性为代价的。经常与基于密度的算法结合使用。

    4.4常见的算法及改进

    STING(STatistical INformation Grid)算法、WAVE-CLUSTER算法和CLIQUE(CLustering In QUEst)是该类方法中的代表性算法。下图是CLIQUE的一个例子: 
    这里写图片描述

    5、基于模型的方法(Model-based methods)

    5.1基本思想

    基于模型的方法:为每簇假定了一个模型,寻找数据对给定模型的最佳拟合,这一类方法主要是指基于概率模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。这里的概率模型主要指概率生成模型(generative Model),同一”类“的数据属于同一种概率分布,即假设数据是根据潜在的概率分布生成的。其中最典型、也最常用的方法就是高斯混合模型(GMM,Gaussian Mixture Models)。基于神经网络模型的方法主要就是指SOM(Self Organized Maps)了,也是我所知的唯一一个非监督学习的神经网络了。下图表现的就是GMM的一个demo,里面用到EM算法来做最大似然估计。 
    这里写图片描述

    5.2算法流程

    【以SOM为例】SOM神经网络是由芬兰神经网络专家Kohonen教授提出的,该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。 
    SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。 
    算法流程: 
    1、 网络初始化,对输出层每个节点权重赋初值; 
    2、 将输入样本中随机选取输入向量,找到与输入向量距离最小的权重向量; 
    3、定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢; 
    4、 提供新样本、进行训练; 
    5、收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。

    5.3算法优缺点

    优点:对”类“的划分不那么”坚硬“,而是以概率形式表现,每一类的特征也可以用参数来表达。 
    缺点:执行效率不高,特别是分布数量很多并且数据量很少的时候。

    5.4常见的算法及改进

    基于概率模型的最典型、也最常用的方法就是高斯混合模型(GMM,Gaussian Mixture Models)。基于神经网络模型的方法主要就是指SOM(Self Organized Maps)了,也是我所知的唯一一个非监督学习的神经网络了。

    6、基于模糊的聚类(FCM模糊聚类)

    6.1基本思想

    1965年美国加州大学柏克莱分校的扎德教授第一次提出了‘集合’的概念。经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面。为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析。用模糊数学的方法进行聚类分析,就是模糊聚类分析。 
    基于模糊集理论的聚类方法,样本以一定的概率属于某个类。比较典型的有基于目标函数的模糊聚类方法、基于相似性关系和模糊关系的方法、基于模糊等价关系的传递闭包方法、基于模 糊图论的最小支撑树方法,以及基于数据集的凸分解、动态规划和难以辨别关系等方法。FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。

    6.2算法流程

    FCM模糊聚类算法流程: 
    1、 标准化数据矩阵; 
    2、 建立模糊相似矩阵,初始化隶属矩阵; 
    3、 算法开始迭代,直到目标函数收敛到极小值; 
    4、 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。 
    FCM算法需要两个参数一个是聚类数目C,另一个是参数m。一般来讲C要远远小于聚类样本的总个数,同时要保证C>1。对于m,它是一个控制算法的柔性的参数,如果m过大,则聚类效果会很次,而如果m过小则算法会接近HCM聚类算法。 
    算法的输出是C个聚类中心点向量和C*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。

    6.3算法优缺点

    优点:从算法的推导过程中我们不难看出,算法对于满足正态分布的数据聚类效果会很好,另外,算法对孤立点是敏感的。 
    缺点:由于不能确保FCM收敛于一个最优解。算法的性能依赖于初始聚类中心。因此,我们要么用另外的快速算法确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行FCM。

    6.4常见的算法及改进

    模糊C均值(简称FCM)聚类算法是HCM聚类算法的改进。

    7、其他聚类

    除此以外还有一些其他新的发展方法,在此只简要介绍。

    7.1基于约束的方法

    真实世界中的聚类问题往往是具备多种约束条件的 , 然而由于在处理过程中不能准确表达相应的约束条件、不能很好地利用约束知识进行推理以及不能有效利用动态的约束条件 , 使得这一方法无法得到广泛的推广和应用。这里的约束可以是对个体对象的约束 , 也可以是对聚类参数的约束 , 它们均来自相关领域的经验知识。该方法的一个重要应用在于对存在障碍数据的二维空间数据进行聚类。 COD (Clustering with Ob2structed Distance) 就是处理这类问题的典型算法 , 其主要思想是用两点之间的障碍距离取代了一般的欧氏距离来计算其间的最小距离。

    7.2量子聚类:

    受物理学中量子机理和特性启发,可以用量子理论解决聚类记过依赖于初值和需要指定类别数的问题。一个很好的例子就是基于相关点的 Pott 自旋和统计机理提出的量子聚类模型。它把聚类问题看做一个物理系统。并且许多算例表明,对于传统聚类算法无能为力的几种聚类问题,该算法都得到了比较满意的结果。

    7.3核聚类

    核聚类方法增加了对样本特征的优化过程,利用 Mercer 核 把输入空间的样本映射到高维特征空间,并在特征空间中进行聚类。核聚类方法是普适的,并在性能上优于经典的聚类算法,它通过非线性映射能够较好地分辨、提 取并放大有用的特征,从而实现更为准确的聚类;同时,算法的收敛速度也较快。在经典聚类算法失效的情况下,核聚类算法仍能够得到正确的聚类。代表算法有SVDD算法,SVC算法。

    7.4谱聚类

    首先根据给定的样本数据集定义一个描述成对数据点相似度的亲合矩阵,并计算矩阵的特征值和特征向量,然后选择合适的特征向量聚类不同的数据点。谱聚类算法最初用于计算机视觉、VLSI设计等领域,最近才开始用于机器学习中,并迅速成为国际上机器学习领域的研究热点。 
    谱聚类算法建立在图论中的谱图理论基础上,其本质是将聚类问题转化为图的最优划分问题,是一种点对聚类算法。 
    这里写图片描述

    三、方法扩展

    1、数据简化方法

    其实上面提到的很多算法就是对数据做了简化,才得以具备处理大规模数据的能力,比如BIRCH。但其实你可以任意组合,所以理论上把数据简化的方法和上面提到的十几种聚类算法结合使用,可以有上百个算法了。 
    (1)变换(Data Transformation):离散傅里叶变换(Discrete Fourier Transformation)可以提取数据的频域(frequency domain)信息,离散小波变换(Discrete Wavelet Transformation)除了频域之外,还可以提取到时域(temporal domain)信息。 
    (2)降维(Dimensionality Reduction):在降维的方法中,PCA(Principle Component Analysis)和SVD(Singular Value Decomposition)作为线性方法,受到最广泛的应用。还有像MDS(Multi-Dimensional Scaling)什么的,不过只是作为PCA的一个扩展,给我的感觉是中看不中用。这几个方法局限肯定是无法处理非线性特征明显的数据。处理非线性降维的算法主要是流形学习(Manifold Learning),这又是一大块内容,里面集中常见的算法包括ISOMAP、LLE(Locally Linear Embedding)、MVU(Maximum variance unfolding)、Laplacian eigenmaps、Hessian eigenmaps、Kernel PCA、Probabilistic PCA等等。流形学习还是挺有趣的,而且一直在发展。关于降维在聚类中的应用,最著名的应该就是谱聚类(Spectral Clustering),就是先用Laplacian eigenmaps对数据降维(简单地说,就是先将数据转换成邻接矩阵或相似性矩阵,再转换成Laplacian矩阵,再对Laplacian矩阵进行特征分解,把最小的K个特征向量排列在一起),然后再使用k-means完成聚类。谱聚类是个很好的方法,效果通常比k-means好,计算复杂度还低,这都要归功于降维的作用。 
    (3)抽样(Sampling):最常用的就是随机抽样(Random Sampling)咯,如果你的数据集特别大,随机抽样就越能显示出它的低复杂性所带来的好处。比如CLARA(Clustering LARge Applications)就是因为k-medoids应对不了大规模的数据集,所以采用sampling的方法。一般抽样法采用的不多。

    2、相似性衡量

    前面提到聚类其实就是比较相似性的。(其实,本部分可能放到前面第一部分会好些。) 
    相似性衡量又可以细分为直接法和间接法(答主自己取的名字,求轻拍):直接法是直接求取input data的相似性,间接法是求取data中提取出的features的相似性。但无论是求data还是feature的相似性,方法都是这么几种: 
    (1)距离。距离主要就是指Minkovski距离。这个名字虽然听起来陌生,但其算法就是Lp norm的算法,如果是L1 norm,那就是绝对值/曼哈顿距离(Manhattan distance);如果是L2 norm,那就是著名的欧式距离(Euclidean distance)了,也是应用最广泛的;如果L无穷范式,supremum距离,好像也有叫切比雪夫距离的,但就很少有人用了。另外,还有Mahalanobis距离,目前来看主要应用于Gaussian Mixture Model(GMM),还有Lance&Williams距离等等,但几乎没见过求距离的时候会专门用这个的。 
    (2)相似系数。主要有夹角余弦和相关系数。相关系数的应用也非常广泛,其主要优势是它不受原线性变换的影响,而且可以轻松地转换为距离,但其运算速度要比距离法慢得多,当维数很高的时候。 
    (3)核函数K(x,y)。定义在RdXRdRdXRd上的二元函数,本质上也是反映x和y的距离。核函数的功能就是把数据从低维空间投影(project)到高维空间去。 
    (4)DTW(dynamic time warping)。这是一种非常特殊的距离算法,它可以计算两个不同长度的向量的距离,也可以对两对向量中不同时间段内的数据做匹配。DTW主要用在时间序列的部分场合里。

    四、参考资料

    知乎 
    https://www.zhihu.com/question/34554321 
    四种聚类方法比较 
    http://blog.csdn.net/zhoubl668/article/details/7881313 
    基于网格的聚类算法https://www.qcloud.com/community/article/539270 
    FCM聚类算法 
    http://blog.csdn.net/sin_geek/article/details/22896197 
    https://www.cnblogs.com/sddai/p/6259553.html

    展开全文
  • KNN算法,K聚类优缺点

    千次阅读 2019-01-18 16:15:35
    优点 ① 简单,易于理解,易于实现,无需参数估计...缺点 ① 对测试样本分类时的计算量大,内存开销大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是...
  • 聚类指的是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,...
  • 系统聚类方法的具体步骤及Matlab软件对系统聚类法的实现
  • 几中聚类算法的优缺点比较总结

    万次阅读 2012-07-25 20:27:06
    缺点:1,需要对均值给出定义,2,需要指定要聚类的数目;3,一些过大的异常值会带来很大影响;4,算法对初始选值敏感;5,适合球形聚类 层次聚类: 优点:1,距离和规则的相似度容易定义,限制少;2,不需要预先...
  • 1. 聚类模型的概念 “物以类聚,人以群分”,所谓的聚类,就是将样本划分为由类似的对象组成的多个类的过程。 聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测; 也可以探究不同类之间...
  • 聚类方法介绍 聚类方法主要分为自上而下聚类和自下而上聚类。 自上而下聚类指的是,首先将所有的样本点一起看作一类,对这一大类不停地进行拆分; 而自下而上聚类指的是,首先把每个点自己都看成一类,这样起始会...
  • 九、推荐系统实现用户聚类推荐 聚类分析(Cluster analysis),亦称为群集分析,是一种数据点分组的机器学习技术。给定一组数据点,可以用聚类算法将每个数据点分到特定的组中 推荐思路:将用户进行聚类,给每个聚类...
  • 聚类,就是将样本划分为由类似的对象组成的多个类的过程,聚类后,就可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测;也可以探究不同类之间的相关性和差异性 要点:分类是用已知类别类别对象,预测...
  • R型聚类分析

    千次阅读 2018-09-09 17:43:11
    则是变量过多,变量间的相关度较高,给统计分析与建模带来极大不便,因此人们希望能够研究变量间的相似关系,按照变量的相似关系把他们聚合成若干类,进而找出影响系统的主要因素,引入了R型聚类方法。 举例: ...
  • 聚类概念 聚类分析cluster Analysis)是研究物以类聚的现代统计方法。在过去是依靠经验和专业知识做定性分析处理,很少利用数学方法多元统计分析逐渐被引进数值分类,形成聚类分析的分支。 以下是我为大家准备的几...
  • 浅谈AP聚类算法-matlab

    万次阅读 多人点赞 2017-09-29 19:21:40
    AP(Affinity Propagation)算法,称为仿射传播聚类算法、近邻传播聚类算法、亲和传播聚类算法,是根据数据点之间的相似度来进行聚类,可以是对称的,也可以是不对称的。 该算法不需要先确定聚类的数目,而是把所有的...
  • 目录 K-means聚类 监督学习和无监督学习: means 聚类原理简述 实例演示: ...聚类推荐的优缺点 优点 缺点: K-means聚类 聚类:事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。聚类
  • 推荐系统:推荐系统的实现主要分为两个方面:基于内容的实现和协同滤波的实现。 基于内容的实现: 不同人对不同电影的评分这个例子,可以看做是一个普通的回归问题,因此每部电影都需要提前提取出一个特征向量(即...
  • 文章目录聚类分析聚类分析的基本思想相似性度量类和类的特征系统聚类法K-均值聚类有序样本的聚类 聚类分析 聚类分析将个体或对象分类,使得同一类中的对象之间的相似性比与其他类的对象的相似性更强。其目的在于使...
  • 6.4 系统聚类的性质及类的确定(3)根据统计量确定上一讲介绍了 R-square,这里再补充 3 个用于确定分类个数的统计量。半偏 R-square:即 k+1 类的 R-square 减去 k 类的 R-square,其用于衡量 k 类与 k+1 类的 R-...
  • 推荐系统学习(三)——聚类算法

    千次阅读 2019-01-01 23:05:24
    聚类分析 什么是聚类分析? 聚类 (Clustering) 就是将数据对象分组成为多个类或者簇 (Cluster),它的目标是:在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。所以,在很多应用中,一个簇中的...
  • Matlab聚类分析_层次聚类+kmeans聚类

    千次阅读 2015-05-24 22:42:47
    一种是利用 clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法; 另一种是分步聚类:(1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的...
  • 基于密度的聚类算法

    千次阅读 2019-01-29 17:37:38
    基于密度的聚类方法 摘要:我们生活在数据大爆炸时代,每时每刻都在产生海量的数据如视频,文本,图像和等。由于数据的类型和大小已经超出了人们传统手工处理的能力范围,聚类,作为一种最常见的无监督学习技术,...
  • 基本决策逻辑:决策支持系统,实用性有限 1990 年代到 2000 年 主导流派:贝叶斯 架构:小型服务器集群 主导理论:概率论 分类:可扩展的比较或对比,对许多任务都足够好了 ...
  • 聚类算法(二)--层次聚类

    千次阅读 2017-11-29 12:19:32
    本文主要介绍层次聚类法的基本原理、距离计算方法、算法的优缺点,以及R语言实战。
  • 聚类分析(一):K均值聚类与层次聚类

    万次阅读 多人点赞 2018-04-25 18:28:48
    介绍三类聚类分析算法,本篇介绍K均值聚类、层次聚类,下篇介绍图团体(graph community)聚类聚类分析又称群分析,它是研究样本分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。聚类分析以相似性...
  • 聚类分析并不靠谱

    千次阅读 2019-06-24 13:57:26
    距离定义不同,聚类结果不同 聚类分析中,距离有两种定义方式,即: 依据远近:即距离的远近程度,远即距离远,近即距离近; 依据相似程度:即相似程度低为距离远,相似程度高为距离近 相同的聚类分析中,...
  • 密度峰值聚类算法(DPC)

    千次阅读 2021-11-22 15:35:19
    通过学习密度峰值聚类算法(DPC),掌握算法的原理及其优缺点,对改进方法的论文进行总结,最后给出了MATLAB代码实现该算法。
  • 目的描述​ 出于模型的需要,我们的团队选择做一次聚类分析,通常这部分在队伍中是会有同学专门负责这块的,至于为什么笔者就不在这里多说了。解决思路​ 在MATLAB中封装了有关因子分析的方法--cluster,读者可以...
  • 5、聚类之层次聚类、基于划分的聚类(k-means)、基于密度的聚类、基于模型的聚类 目录(?...层次聚类优缺点 2.  二划分聚类法k-means 1.  Kmeans算法的原理 2.  k均值的优缺点及分类 3. 

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,779
精华内容 3,111
关键字:

系统聚类的优缺点