聚类 订阅
将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。在数据挖掘中,聚类也是很重要的一个概念。 展开全文
将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。在数据挖掘中,聚类也是很重要的一个概念。
信息
定    义
将物理或抽象对象的集合分成
对象相异
物以类聚,人以群分
中文名
聚类
群分析
聚类分析
聚类典型应用
“聚类的典型应用是什么?”在商务上,聚类能帮助市场分析人员从客户基本库中发现不同的客户群,并且用购买模式来刻画不同的客户群的特征。在生物学上,聚类能用于推导植物和动物的分类,对基因进行分类,获得对种群中固有结构的认识。聚类在地球观测数据库中相似地区的确定,汽车保险单持有者的分组,及根据房子的类型、价值和地理位置对一个城市中房屋的分组上也可以发挥作用。聚类也能用于对Web上的文档进行分类,以发现信息。
收起全文
精华内容
下载资源
问答
  • 聚类

    千次阅读 2017-12-19 00:44:14
    聚类是一种无监督算法,针对大量未知标注的数据集,按数据的相似性将数据分为多个类别...聚类算法分类:基于位置的聚类(kmeans\kmedians),基于密度的聚类(DBSCAN\最大密度聚类),基于图论的聚类(AP聚类\谱聚类

    聚类是一种无监督算法,针对大量未知标注的数据集,按数据的相似性将数据分为多个类别,使类别内的数据相似性较大而类别间的数据相似度较小。若数据集已知标注,则可以利用聚类对数据降维操作。

    聚类算法分类:基于位置的聚类(kmeans\kmedians),基于密度的聚类(DBSCAN\最大密度聚类),基于图论的聚类(AP聚类\谱聚类)

    基于位置的聚类

    基于位置的聚类基本思想:对于给定的类别数目K,初始选择k个类别中心,对于每个样本,将其标记为距离类别中心最近的样本,将每个类别中心更新为隶属该类别的所有样本均值(kmedians是标记为样本中位数,优点在于抗离群点),重复操作,知道类别中心的变化小于某个阈值。终止条件可设置为迭代次数,簇中心变化率或最小平方误差。

    基于位置的聚类基本思想会遇到这几个问题:
    1、类别数目K如何给定
    2、初值的选择

    1、聚类的k值一般根据业务确定,也可以通过绘制损失函数与k值的关系,选择损失函数曲线处于拐点位置的k值(即Elbow法),即在该点随着k的增加,聚类效果并未出现显著的提升,聚类的损失函数,一般取各个簇的样本点到簇中心的距离的2范式。

    2、k-mans是初值敏感的,初始簇中点的选取还有两种方法:

    1-是依次选择彼此距离尽可能远的K个点 ,或多初始化几遍,选取损失函数小的一组初始样本点。以此为思想,有升级的算法Kmeans++,根据权重选取初始值(权重为样本点间的距离)。

    2-是先对数据用层次聚类算法或者Canopy算法进行聚类,得到K个簇之后,从每个类簇中选择一个点,该点可以是该类簇的中心点。

    层次聚类是对给定的数据集做层次的分解,直到满足某种条件,层次聚类有AGNES算法与DIANA算法,AGNES算法是一种自底向上的策略,首先将每一个样本看做一个簇,然后根据某个准则合并簇,一般是合并距离相近的簇,这里的距离一般取两个簇中距离最近的样本点的相似度,反复进行直到达到需要的簇数目,DIANA是AGNES的逆操作。

    Canopy算法常做空间索引,一般用在K均值之前的粗聚类,给定两个距离阈值 T1 , T2 ,且 T1 > T2 ,随机选择一个样本点做簇中心,距离小于 T2 的划入该中心的簇,且不能作为其他簇的待选中心,大于 T2 小于 T1 的也放入该簇,但可以作为其他簇的待选中心,直到不存在距离任一簇中心距离大于 T1 的样本点。

    k-means有明显的缺点:1.对初始聚类中心敏感。2.必须提前指定K值。3.属于硬聚类,每个样本点只能属于一类 。4.在均值可被定义情况下才能使用,同时对异常值免疫能力差,对噪声和孤立点数据比较敏感。5.对非球状数据处理效果并不好。

    k-means最大的优点:速度快,想要收敛速度进一步加快,可以使用Mini-BatchKmeans,也就是求梯度的时候用的是随机梯度下降的方法,而不是批量梯度下降。k-means适合用于球形聚类。

    对于缺失值的问题:
    离散的特征:将缺失的作为单独一类,如果缺失特征较多可考虑删除该样本点。
    连续的特征:其他变量对这个变量回归,做填补;样本平均值填补;中位数填补。

    对于k-means的距离,以下是常用的公式:
    这里写图片描述

    基于密度的聚类

    密度聚类的思想,只要样本点的密度大于某阈值,则将该样本加到最近的簇中。这类算法可以克服基于距离的聚类不适用于非团状数据的缺点,同时对噪声数据也不敏感,但相对来说算法的计算复杂度也大。基于密度聚类有DBSCAN与基于密度最大值算法,基于密度的聚类不需要事先给定簇的个数。

    1、DBSCAN:

    DBSCAN将簇定义为密度相连的点的最大集合,这里需要了解几个概念,给定半径r与数目m,一个样本的r-领域有m个及其以上样本,称该样本为核心对象,对于落在该样本r-领域内的其他样本,可以称这些样本与核心对象关于 r,m 密度相连。由算法思想可知,非核心对象可以是簇的一部分,构成了簇的边缘。给定r不变,m越小簇的个数越多,给定m不变,r越小簇的个数越多。

    2、密度最大值聚类:
    密度最大值聚类里也有几个概念,给定一个超参数距离 d ,局部密度ρi表示到样本 i 距离小于d的样本数,高局部密度点距离 δi 表示局部密度大于样本 i 的样本到样本i的最短距离。那些有着比较大的局部密度ρ和很大的高局部密度点距离 δ 被认为是簇中心,局部密度 ρ 较小而高密距离 δ 较大的一般是离群点,二者皆小的一般是簇的边缘。

    基于图论的聚类

    1、AP(affinity propagation:吸引力传输)聚类:
    AP算法的思想是最小化样本与所属簇质心的相似性,这里质心可理解成是簇的代表样本,算法里将样本与所属簇质心的相似性分为两部分,吸引度(responsibility) r(i,k) 值与归属度(availability) a(i,k) 值。sklearn的cluster函数库中,默认负欧式距离为相似度(affinity=’euclidean’),参数preference表示样本与本身的相似度(以本身为簇质心),默认值是中位数,damping为阻尼系数,用以构造 r 值与a值进行有关迭代参数的凸组合额,使得算法收敛,默认值是0.5。吸引度 r(i,k) 值用以度量样本k作为样本i所在的簇质心的可靠性,归属度 a(i,k) 值用以度量样本i隶属于以样本k为簇质心的可靠性。二者的迭代公式如下。
    AP算法吸引度与归属度迭代公式

    AP算法无需认为给定聚类的簇个数,但其算法空间与时间复杂度比较大,不太适合数据量过大的样本聚类。

    2、谱聚类
    谱聚类是一种基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,达到样本数据聚类的目的。

    谱聚类需要事先给定聚类的簇,首先计算n阶相似度矩阵W(对角线为0)和度矩阵D,得到拉普拉斯矩阵 L=DW ,游走随机拉普拉斯矩阵是

    Lrw=D1(DW)

    对称拉普拉斯矩阵为
    Lsym=D12(DW)D12

    计算拉普拉斯矩阵的前k个最小特征值对应的特征向量,将k个列向量组成新矩阵对每行向量做单位化处理,每一行向量即为一个样本,利用k均值对这些行向量做聚类处理。

    谱聚类中的k值一般选择从小到大排列时递增幅度最大的特征值对应的k值,公式表示:

    k=argmaxk|λk+1λk|

    谱聚类算法在处理稀疏数据的聚类效果与高维数据聚类时的复杂度比传统聚类算法好。但由于最终聚类的维度非常高,如果降维的幅度不够,谱聚类的运行速度和最后的聚类效果均不好,同时不同的相似矩阵得到的最终聚类效果可能很不同。

    聚类的衡量指标

    1、均一性与完整性:
    均一性(Homogeneity):一个簇只包含一个类别样本则满足均一性
    完整性(Completeness):同类别样本被归到同一个簇中则满足完整性
    V-measure(均一性和完整性的加权平均),输出范围在[0,1],等于1聚类效果最好。
    2、ARI(原标记与聚类的列联表组合数公式) & AMI(原标记与聚类的列联表信息熵),输出范围在[0,1],等于1聚类效果最好,表示完全和标记类别相同。
    3、轮廓系数 (Silhouette Coefficient )
    利用簇间不相似度(与其他簇的所有样本平均值的距离最小值)与簇内不相似度(与样本所在簇的其他样本平均值距离)定义轮廓系数,

    这里写图片描述

    衡量指标可通过from sklearn import metrics调用

    展开全文
  • // 欧式聚类对象 ec.setClusterTolerance(0.02); // 设置近邻搜索的搜索半径为2cm ec.setMinClusterSize(100); // 设置一个聚类需要的最少的点数目为100 ec.setMaxClusterSize(25000); // 设置一个聚类需要的最大...
  • 各种聚类算法(原理+代码+对比分析)最全总结

    万次阅读 多人点赞 2017-12-14 10:41:20
    一、聚类的目标 使同一类对象的相似度尽可能地大;不同类对象之间的相似度尽可能地小。 二、聚类算法分类 1.基于划分 给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N...

    序言

    还是要持续总结,持续积累。


    一、聚类的目标

    使同一类对象的相似度尽可能地大;不同类对象之间的相似度尽可能地小。


    二、聚类算法分类

    1.基于划分

    给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。
    特点:计算量大。很适合发现中小规模的数据库中小规模的数据库中的球状簇。
    算法:K-MEANS算法、K-MEDOIDS算法、CLARANS算法

    2.基于层次

    对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。
    特点:较小的计算开销。然而这种技术不能更正错误的决定。
    算法:BIRCH算法、CURE算法、CHAMELEON算法

    3.基于密度

    只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。
    特点:能克服基于距离的算法只能发现“类圆形”的聚类的缺点。
    算法:DBSCAN算法、OPTICS算法、DENCLUE算法

    4.基于网格

    将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。
    特点

    展开全文
  • 什么是聚类分析?聚类分析方法的类别

    万次阅读 多人点赞 2019-07-03 21:09:55
    聚类分析是指将数据对象的集合分组为由类似的对象组成的多个类的分析过程。 基本概念 聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于...

    聚类分析是指将数据对象的集合分组为由类似的对象组成的多个类的分析过程。

    基本概念

    聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于相同簇中的数据实例彼此相同,处于不同簇中的实例彼此不同。

    聚类技术通常又被称为无监督学习,与监督学习不同的是,在簇中那些表示数据类别的分类或者分组信息是没有的。

    数据之间的相似性是通过定义一个距离或者相似性系数来判别的。图 1 显示了一个按照数据对象之间的距离进行聚类的示例,距离相近的数据对象被划分为一个簇。

    聚类分析示意
    图 1  聚类分析示意

    聚类分析可以应用在数据预处理过程中,对于复杂结构的多维数据可以通过聚类分析的方法对数据进行聚集,使复杂结构数据标准化。

    聚类分析还可以用来发现数据项之间的依赖关系,从而去除或合并有密切依赖关系的数据项。聚类分析也可以为某些数据挖掘方法(如关联规则、粗糙集方法),提供预处理功能。

    在商业上,聚类分析是细分市场的有效工具,被用来发现不同的客户群,并且它通过对不同的客户群的特征的刻画,被用于研究消费者行为,寻找新的潜在市场。

    在生物上,聚类分析被用来对动植物和基因进行分类,以获取对种群固有结构的认识。

    在保险行业上,聚类分析可以通过平均消费来鉴定汽车保险单持有者的分组,同时可以根据住宅类型、价值、地理位置来鉴定城市的房产分组。

    在互联网应用上,聚类分析被用来在网上进行文档归类。

    在电子商务上,聚类分析通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,从而帮助电子商务企业了解自己的客户,向客户提供更合适的服务。

    聚类分析方法的类别

    目前存在大量的聚类算法,算法的选择取决于数据的类型、聚类的目的和具体应用。聚类算法主要分为 5 大类:基于划分的聚类方法、基于层次的聚类方法、基于密度的聚类方法、基于网格的聚类方法和基于模型的聚类方法。

    1. 基于划分的聚类方法

    基于划分的聚类方法是一种自顶向下的方法,对于给定的 n 个数据对象的数据集 D,将数据对象组织成 k(k≤n) 个分区,其中,每个分区代表一个簇。图 2 就是基于划分的聚类方法的示意图。

    层次聚类算法示意
    图 2  层次聚类算法示意

    基于划分的聚类方法中,最经典的就是k-平均(k-means)算法和 k-中心(k-medoids)算法,很多算法都是由这两个算法改进而来的。

    基于划分的聚类方法的优点是,收敛速度快,缺点是,它要求类别数目 k 可以合理地估计,并且初始中心的选择和噪声会对聚类结果产生很大影响。

    2. 基于层次的聚类方法

    基于层次的聚类方法是指对给定的数据进行层次分解,直到满足某种条件为止。该算法根据层次分解的顺序分为自底向上法和自顶向下法,即凝聚式层次聚类算法和分裂式层次聚类算法。

    1)自底向上法。

    首先,每个数据对象都是一个簇,计算数据对象之间的距离,每次将距离最近的点合并到同一个簇。然后,计算簇与簇之间的距离,将距离最近的簇合并为一个大簇。不停地合并,直到合成了一个簇,或者达到某个终止条件为止。

    簇与簇的距离的计算方法有最短距离法、中间距离法、类平均法等,其中,最短距离法是将簇与簇的距离定义为簇与簇之间数据对象的最短距离。自底向上法的代表算法是AGNES(AGglomerativeNESing)算法。

    2)自顶向下法。

    该方法在一开始所有个体都属于一个簇,然后逐渐细分为更小的簇,直到最终每个数据对象都在不同的簇中,或者达到某个终止条件为止。自顶向下法的代表算法是 DIANA(DivisiveANAlysis)算法。

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

    3. 基于密度的聚类方法

    基于密度的聚类方法的主要目标是寻找被低密度区域分离的高密度区域。与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的簇。

    基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。

    这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇,如图 3 所示。

    基于密度的聚类方法中最具代表性的是 DBSAN 算法、OPTICS 算法和 DENCLUE 算法。 图 2 是基于层次的聚类算法的示意图,上方是显示的是 AGNES 算法的步骤,下方是 DIANA 算法的步骤。这两种方法没有优劣之分,只是在实际应用的时候要根据数据特点及想要的簇的个数,来考虑是自底而上更快还是自顶而下更快。

    密度聚类算法示意
    图 3  密度聚类算法示意

    4. 基于网格的聚类方法

    基于网格的聚类方法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值,如图 4 所示。

    基于网格的聚类算法示意
    图 4  基于网格的聚类算法示意

    基于网格的聚类方法的主要优点是处理速度快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。这类算法的缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界。另外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。

    5. 基于模型的聚类方法

    基于模型的聚类方法是试图优化给定的数据和某些数学模型之间的适应性的。该方法给每一个簇假定了一个模型,然后寻找数据对给定模型的最佳拟合。假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数。这种方法的基本原理就是假定目标数据集是由一系列潜在的概率分布所决定的。

    图 5 对基于划分的聚类方法和基于模型的聚类方法进行了对比。左侧给出的结果是基于距离的聚类方法,核心原则就是将距离近的点聚在一起。右侧给出的基于概率分布模型的聚类方法,这里采用的概率分布模型是有一定弧度的椭圆。

    图 5 中标出了两个实心的点,这两点的距离很近,在基于距离的聚类方法中,它们聚在一个簇中,但基于概率分布模型的聚类方法则将它们分在不同的簇中,这是为了满足特定的概率分布模型。

    聚类方法对比示意
    图 5  聚类方法对比示意

    在基于模型的聚类方法中,簇的数目是基于标准的统计数字自动决定的,噪声或孤立点也是通过统计数字来分析的。基于模型的聚类方法试图优化给定的数据和某些数据模型之间的适应性。

    推荐学习目录:54.聚类分析简介
    55.k-means聚类算法

    展开全文
  • K-Means(聚类

    万次阅读 多人点赞 2019-02-28 11:26:02
    说到聚类,应先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别。 分类:分类其实是从特定的数据中挖掘模式,作出判断的过程。比如Gmail邮箱里有垃圾邮件分类器,...

    说到聚类,应先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别。

     

    分类:分类其实是从特定的数据中挖掘模式,作出判断的过程。比如Gmail邮箱里有垃圾邮件分类器,一开始的时候可能什么都不过滤,在日常使用过程中,我人工对于每一封邮件点选“垃圾”或“不是垃圾”,过一段时间,Gmail就体现出一定的智能,能够自动过滤掉一些垃圾邮件了。这是因为在点选的过程中,其实是给每一条邮件打了一个“标签”,这个标签只有两个值,要么是“垃圾”,要么“不是垃圾”,Gmail就会不断研究哪些特点的邮件是垃圾,哪些特点的不是垃圾,形成一些判别的模式,这样当一封信的邮件到来,就可以自动把邮件分到“垃圾”和“不是垃圾”这两个我们人工设定的分类的其中一个。

    聚类:聚类的目的也是把数据分类,但是事先我是不知道如何去分的,完全是算法自己来判断各条数据之间的相似性,相似的就放在一起。在聚类的结论出来之前,我完全不知道每一类有什么特点,一定要根据聚类的结果通过人的经验来分析,看看聚成的这一类大概有什么特点。

    聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来。

     

    K-Means

    聚类算法有很多种(几十种),K-Means是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。

    下面,我们描述一下K-means算法的过程,为了尽量不用数学符号,所以描述的不是很严谨,大概就是这个意思,“物以类聚、人以群分”:

    1. 首先输入k的值,即我们希望将数据集经过聚类得到k个分组。
    2. 从数据集中随机选择k个数据点作为初始大哥(质心,Centroid)
    3. 对集合中每一个小弟,计算与每一个大哥的距离(距离的含义后面会讲),离哪个大哥距离近,就跟定哪个大哥。
    4. 这时每一个大哥手下都聚集了一票小弟,这时候召开人民代表大会,每一群选出新的大哥(其实是通过算法选出新的质心)。
    5. 如果新大哥和老大哥之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),可以认为我们进行的聚类已经达到期望的结果,算法终止。
    6. 如果新大哥和老大哥距离变化很大,需要迭代3~5步骤。

     

    例:

    我搞了6个点,从图上看应该分成两推儿,前三个点一堆儿,后三个点是另一堆儿。现在手工执行K-Means,体会一下过程,同时看看结果是不是和预期一致。

    case

    1.选择初始大哥: 我们就选P1和P2

    2.计算小弟和大哥的距离: P3到P1的距离从图上也能看出来(勾股定理),是√10 = 3.16;P3到P2的距离√((3-1)^2+(1-2)^2 = √5 = 2.24,所以P3离P2更近,P3就跟P2混。同理,P4、P5、P6也这么算,如下:

    round1

    P3到P6都跟P2更近,所以第一次站队的结果是:

    • 组A:P1
    • 组B:P2、P3、P4、P5、P6

    3.人民代表大会: 组A没啥可选的,大哥还是P1自己 组B有五个人,需要选新大哥,这里要注意选大哥的方法是每个人X坐标的平均值和Y坐标的平均值组成的新的点,为新大哥,也就是说这个大哥是“虚拟的”。 因此,B组选出新大哥的坐标为:P哥((1+3+8+9+10)/5,(2+1+8+10+7)/5)=(6.2,5.6)。 综合两组,新大哥为P1(0,0),P哥(6.2,5.6),而P2-P6重新成为小弟

    4.再次计算小弟到大哥的距离:

    round2

    这时可以看到P2、P3离P1更近,P4、P5、P6离P哥更近,所以第二次站队的结果是:

    • 组A:P1、P2、P3
    • 组B:P4、P5、P6(虚拟大哥这时候消失)

    5.第二届人民代表大会: 按照上一届大会的方法选出两个新的虚拟大哥:P哥1(1.33,1) P哥2(9,8.33),P1-P6都成为小弟

    6.第三次计算小弟到大哥的距离:

    round3

    这时可以看到P1、P2、P3离P哥1更近,P4、P5、P6离P哥2更近,所以第二次站队的结果是:

    • 组A:P1、P2、P3
    • 组B:P4、P5、P6

    我们发现,这次站队的结果和上次没有任何变化了,说明已经收敛,聚类结束,聚类结果和我们最开始设想的结果完全一致。

     

    K-Means的细节问题:

    1. K值怎么定?我怎么知道应该几类? 答:这个真的没有确定的做法,分几类主要取决于个人的经验与感觉,通常的做法是多尝试几个K值,看分成几类的结果更好解释,更符合分析目的等。或者可以把各种K值算出的SSE做比较,取最小的SSE的K值。

    2. 初始的K个质心怎么选? 答:最常用的方法是随机选,初始质心的选取对最终聚类结果有影响,因此算法一定要多执行几次,哪个结果更reasonable,就用哪个结果。 当然也有一些优化的方法,第一种是选择彼此距离最远的点,具体来说就是先选第一个点,然后选离第一个点最远的当第二个点,然后选第三个点,第三个点到第一、第二两点的距离之和最小,以此类推。第二种是先根据其他聚类算法(如层次聚类)得到聚类结果,从结果中每个分类选一个点。

    3. K-Means会不会陷入一直选质心的过程,永远停不下来? 答:不会,有数学证明K-Means一定会收敛,大致思路是利用SSE的概念(也就是误差平方和),即每个点到自身所归属质心的距离的平方和,这个平方和是一个函数,然后能够证明这个函数是可以最终收敛的函数。

    4. 判断每个点归属哪个质心的距离怎么算? 答:这个问题必须不得不提一下数学了…… 第一种,欧几里德距离(欧几里德这位爷还是很厉害的,《几何原本》被称为古希腊数学的高峰,就是用5个公理推导出了整个平面几何的结论),这个距离就是平时我们理解的距离,如果是两个平面上的点,也就是(X1,Y1),和(X2,Y2),那这俩点距离是多少初中生都会,就是√( (x1-x2)^2+(y1-y2)^2) ,如果是三维空间中呢?√( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 ;推广到高维空间公式就以此类推。可以看出,欧几里德距离真的是数学加减乘除算出来的距离,因此这就是只能用于连续型变量的原因。 第二种,余弦相似度,余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。下图表示余弦相似度的余弦是哪个角的余弦,A,B是三维空间中的两个向量,这两个点与三维空间原点连线形成的角,如果角度越小,说明这两个向量在方向上越接近,在聚类时就归成一类:

      cos

      看一个例子(也许不太恰当):歌手大赛,三个评委给三个歌手打分,第一个评委的打分(10,8,9) 第二个评委的打分(4,3,2),第三个评委的打分(8,9,10) 如果采用余弦相似度来看每个评委的差异,虽然每个评委对同一个选手的评分不一样,但第一、第二两个评委对这四位歌手实力的排序是一样的,只是第二个评委对满分有更高的评判标准,说明第一、第二个评委对音乐的品味上是一致的。 因此,用余弦相似度来看,第一、第二个评委为一类人,第三个评委为另外一类。 如果采用欧氏距离, 第一和第三个评委的欧氏距离更近,就分成一类人了,但其实不太合理,因为他们对于四位选手的排名都是完全颠倒的。 总之,如果注重数值本身的差异,就应该用欧氏距离,如果注重的是上例中的这种的差异(我概括不出来到底是一种什么差异……),就要用余弦相似度来计算。 还有其他的一些计算距离的方法,但是都是欧氏距离和余弦相似度的衍生,简单罗列如下:明可夫斯基距离、切比雪夫距离、曼哈顿距离、马哈拉诺比斯距离、调整后的余弦相似度、Jaccard相似系数……

    5. 还有一个重要的问题是,大家的单位要一致! 比如X的单位是米,Y也是米,那么距离算出来的单位还是米,是有意义的 但是如果X是米,Y是吨,用距离公式计算就会出现“米的平方”加上“吨的平方”再开平方,最后算出的东西没有数学意义,这就有问题了。 还有,即使X和Y单位一致,但是如果数据中X整体都比较小,比如都是1到10之间的数,Y很大,比如都是1000以上的数,那么,在计算距离的时候Y起到的作用就比X大很多,X对于距离的影响几乎可以忽略,这也有问题。 因此,如果K-Means聚类中选择欧几里德距离计算距离,数据集又出现了上面所述的情况,就一定要进行数据的标准化(normalization),即将数据按比例缩放,使之落入一个小的特定区间。去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行计算和比较。 标准化方法最常用的有两种:

      • min-max标准化(离差标准化):对原始数据进行线性变换,是结果落到【0,1】区间,转换方法为 X'=(X-min)/(max-min),其中max为样本数据最大值,min为样本数据最小值。
      • z-score标准化(标准差标准化):处理后的数据符合标准正态分布(均值为0,方差为1),转换公式:X减去均值,再除以标准差
    6. 每一轮迭代如何选出新的质心? 答:各个维度的算术平均,比如(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),那就新质心就是【(X1+X2+X3)/3,(Y1+Y2+Y3)/3,(Z1,Z2,Z3)/3】,这里要注意,新质心不一定是实际的一个数据点。

    7. 关于离群值? 答:离群值就是远离整体的,非常异常、非常特殊的数据点,在聚类之前应该将这些“极大”“极小”之类的离群数据都去掉,否则会对于聚类的结果有影响。但是,离群值往往自身就很有分析的价值,可以把离群值单独作为一类来分析。

    8. 用SPSS作出的K-Means聚类结果,包含ANOVA(单因素方差分析),是什么意思? 答:答简单说就是判断用于聚类的变量是否对于聚类结果有贡献,方差分析检验结果越显著的变量,说明对聚类结果越有影响。对于不显著的变量,可以考虑从模型中剔除。

     

    聚类分析中业务专家的作用:

    业务专家的作用非常大,主要体现在聚类变量的选择和对于聚类结果的解读:

    1. 比如要对于现有的客户分群,那么就要根据最终分群的目的选择不同的变量来分群,这就需要业务专家经验支持。如果要优化客户服务的渠道,那么就应选择与渠道相关的数据;如果要推广一个新产品,那就应该选用用户目前的使用行为的数据来归类用户的兴趣。算法是无法做到这一点的
    2. 欠缺经验的分析人员和经验丰富的分析人员对于结果的解读会有很大差异。其实不光是聚类分析,所有的分析都不能仅仅依赖统计学家或者数据工程师。

    转载:https://www.jianshu.com/p/fc91fed8c77b

    展开全文
  • Kmeans聚类算法详解

    万次阅读 多人点赞 2018-05-16 18:41:40
    摘要:本文通过图文详细介绍Kmeans聚类算法的原理和程序实现,以及如何选取类簇中心点。本文首先介绍利用该算法的原理及理解,详细介绍基于MATLAB设计一个自定义的Kmeans函数过程,然后利用该函数对UCI的数据集进行...
  • 聚类的方法(层次聚类,K-means聚类

    万次阅读 多人点赞 2019-05-22 10:48:15
    所谓聚类,就是将相似的事物聚集在一 起,而将不相似的事物划分到不同的类别的过程,是数据分析之中十分重要的一种手段。比如古典生物学之中,人们通过物种的形貌特征将其分门别类,可以说就是 一种朴素的人工聚类。...
  • 5 分钟带你弄懂 k-means 聚类

    万次阅读 多人点赞 2017-11-08 16:16:23
    聚类与分类的区别分类:类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类。属于监督学习。聚类:事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。...
  • 各种聚类算法的介绍和比较

    万次阅读 多人点赞 2017-11-15 15:25:00
    一、简要介绍1、聚类概念聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的...
  • 聚类 聚类算法

    2021-03-25 18:56:40
    聚类 聚类算法 spectralClustering
  • 利用DBSCAN算法对点进行聚类聚类结果效果好,可以参考学习
  • 基于网格聚类方法中使用离散小波变换对数据聚类进行聚类分析 聚类
  • 采样模糊聚类,根据数据间的相似度对数据进行分类
  • matlab k-mean聚类 二维聚类 三维聚类
  • 基于减法聚类聚类有效性评判的FCM聚类.pdf
  • 聚类】五种主要聚类算法

    万次阅读 多人点赞 2018-08-22 22:05:45
    聚类是一种机器学习技术,它涉及到数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组。理论上,同一组中的数据点应该具有相似的属性和/或特征,而不同组中的数据点应该具有高度...
  • 模糊聚类的学位论文,比较详细,从原理到案例介绍这种算法的思想
  • 此函数是用于模糊聚类分析中的传递方法来聚类
  • 聚类 神经网络例程,提供数据样本,且说明清晰
  • 聚类算法
  • 实现了无监督AP聚类 其优势在于不用知道聚类个数
  • 聚类分析指将对象的集合分组为多个类的过程。聚类分析的目标就是在相似的基础上收集数据来分类。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源...
  • 聚类分析是一种模型分析,将具有相似功能的类别进行分类
  • 聚类算法的简介及其常用的几种方法,并在文末提出改进方案。
  • 基于matlab软件的聚类分析程序,包含多个样例

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 180,685
精华内容 72,274
关键字:

聚类