干货合集-聚类分析(干货合集-聚类分析)
干货合集-聚类分析(干货合集-聚类分析)① K-means算法首先需要选择K个初始化聚类中心② 计算每个数据对象到K个初始化聚类中心的距离,将数据对象分到距离聚类中心最近的那个数据集中,当所有数据对象都划分以后,就形成了K个数据集(即K个簇)③ 接下来重新计算每个簇的数据对象的均值,将均值作为新的聚类中心④ 最后计算每个数据对象到新的K个初始化聚类中心的距离,重新划分⑤ 每次划分以后,都需要重新计算初始化聚类中心,一直重复这个过程,直到所有的数据对象无法更新到其他的数据集中。(2)K-means算法步骤1、K-means聚类(1)算法原理K-means算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。因为需要计算距离,所以决定了K-means算法只能处理数值型数据,而不能处理分类属性型数据。
一、聚类分析方法分类
聚类分析方法可分为Q型和R型,如下图:
SPSSAU-进阶方法-聚类
SPSSAU-进阶方法-分层聚类
1、K-means聚类
(1)算法原理
K-means算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。因为需要计算距离,所以决定了K-means算法只能处理数值型数据,而不能处理分类属性型数据。
(2)K-means算法步骤
① K-means算法首先需要选择K个初始化聚类中心② 计算每个数据对象到K个初始化聚类中心的距离,将数据对象分到距离聚类中心最近的那个数据集中,当所有数据对象都划分以后,就形成了K个数据集(即K个簇)③ 接下来重新计算每个簇的数据对象的均值,将均值作为新的聚类中心④ 最后计算每个数据对象到新的K个初始化聚类中心的距离,重新划分⑤ 每次划分以后,都需要重新计算初始化聚类中心,一直重复这个过程,直到所有的数据对象无法更新到其他的数据集中。
提示:
①聚类中心的选择带有随机性②计算距离通常使用标准化欧式距离
- 使用标准化欧式距离的原因是:计算距离时不能因为计量单位问题导致不准确。
例如有三个模特,他们各自的属性数据如下: A:65000000毫克(即130斤),1.74米 B:60000000毫克(即120斤),1.70米 C:65000000毫克(即130斤),1.40米 按照我们日常生活常识,我们本来应该把A和B放到一类里,而把C放到另外一类里。但是当我们计算三者的欧式距离时: 模特A和B的差异为5000000,模特A和C的差异为0.34,与我们的认知相反,原因是——属性计量单位不同导致数值差异过大 能不能自动消除这种计量单位的影响呢?可以——标准化欧氏距离方法。
(3)K初始值确定——肘部法则——SSE
肘部法所使用的聚类评价指标为:数据集中所有样本点到其簇中心的距离之和的平方。但是肘部法选择的并不是误差平方和最小的K,而是误差平方和突然变小时所对应的K值(类似于因子分析中碎石图确定因子个数,如下图所示位置)。
2、K-modes聚类
(1)算法原理
k-modes算法是对k-means算法的扩展。k-modes算法是在数据挖掘中对分类属性型数据采用的聚类算法。
k-modes算法采用差异度(Simple Matching Distance)来代替k-means算法中的欧式距离。k-modes算法中差异度越小,则表示距离越小。一个样本和一个聚类中心的差异度就是它们各个属性不相同的个数,不相同则记为一,最后计算一的总和。这个和就是某个样本到某个聚类中心的差异度。该样本属于差异度最小的聚类中心。
(2)K-modes算法步骤
K-modes算法步骤与K-means类似,只是将原本K-means使用的欧式距离替换成差异度。
3、K-prototype聚类
(1)算法原理
K-prototype是处理混合属性聚类的典型算法。继承Kmean算法和Kmode算法的思想。
度量具有混合属性的方法是,数值型属性采用K-means方法得到P1,分类型属性采用K-modes方法P2,那么D=P1 a*P2,a是权重。如果觉得分类属性重要,则增加a,否则减少a,a=0时即只有数值属性。
(2)算法步骤
① 随机选取k个初始原型(中心点);② 针对数据集中的每个样本点,计算样本点与k个原型的距离(数值型变量计算欧氏距离,类别型变量计算差异度),将样本点划分到离它最近的中心点所对应的类别中;③ 类别划分完成后,重新确定类别的原型,数值型变量样本取值的均值作为新的原型的特征取值,类别型变量样本取值的众数作为新的原型的特征取值;④ 重复步骤2 3,直到没有样本改变类别,返回最后的聚类结果。
4、分层聚类
(1)算法原理
分层聚类,又称层次聚类、系统聚类,就是对给定数据对象的集合进行层次分解,根据分层分解采用的分解策略。仅针对定量数据进行分层聚类。
具体分层聚类时使用Pearson相关系数度量距离大小,同时使用组平均距离法进行分析。
(2)算法步骤
① 初始化:把每个样本各自归为一类(每个样本自成一类),计算每两个类之间的距离,也就是样本之间的相似度。 ② 寻找各个类之间最近的两个类,把他们归为一类(这样,总类的数量减少一个)。③ 重新计算新生成的这个类与各个旧类之间的距离(相似度)。 ④ 重复 ② ③ 步,直到所有的样本都归为一类结束。
(3)其他说明
① 由于均为定量数据,因而从原理角度上,分层聚类时使用Pearson相关系数去度量距离,相关系数值越大说明越紧密,则说明距离越近。
② SPSSAU进行分层聚类时使用组平均距离法进行聚类;通俗地讲即首先将相关性最强的两项聚成一类(第一个合并簇),接着找出与该“合并簇”相关性最强的第三项,聚类成第二个合并簇,接着为第三个合并簇,依次循环迭代此过程,直至结束。
③ 分层聚类适用于列数不多的情况,其计算效率相对低于K-means聚类。
④ 分层聚类按列进行聚类,如果需要对行进行聚类,仅需将数据转置一下。
⑤ 分层聚类与K-means聚类在数据均为定量数据和数据量不大的情况下可以相互替代。
二、聚类效果
(1)聚类类别具有随机性:K-means聚类第一步是预将数据分为K组,则随机选取K个对象作为初始的聚类中心,此第一步骤带有一定的随机性。
(2)聚类效果最终目的:“ 某类别里差异尽量小,类别之间差异尽量大” 。
(3)误差平方和SSE:该值可用于测量各点与中心点的距离情况,理论上是希望越小越好;该指标可用于辅助判断聚类类别个数,如果发现比如从3个聚类到4个类别时SSE值减少幅度明显很大,那么此时选择4个聚类类别较好。
(4)p值越小越好:若某项的p<0.05,意味着在聚类分析过程中,该项对聚类分析呈现出显著作用,在其聚类类别上有明显的特征差异;p值越小,说明该项越重要。
关于聚类效果的其他说明,详见下图:
三、SPSSAU聚类分析说明
(1)SPSSAU->进阶方法->聚类
① SPSSAU在进行聚类分析时,将相应的数据类型放入右边的分析栏中,可进行定量or定类or混合数据的分析。
② SPSSAU默认聚类个数为3,建议用户设置聚类数量介于3~6个之间。
(2)SPSSAU->进阶方法->分层聚类
如果是按列进行聚类,此时应该使用分层聚类,并且结合聚类树状图进行综合判定分析,得出科学分析结果。
(3)SPSSAU->案例库
有关聚类分析相关案例、案例数据下载,可以登陆SPSSAU官网案例库进行下载学习。