Spss聚类分析(常用聚类分析方法的详细说明)
聚类分析的基本原理是,根据样本的属性,采用某种算法计算相似或差异指数,从而确定每个案例之间的亲缘关系。最后,所有病例被分成多个相似的组(即聚类)。同一簇中的病例相同,但不同簇中的病例互不相同。常见的聚类方法有K-means聚类、系统聚类(也叫层次聚类)等。
简而言之,聚类分析是根据样本的多重属性,将相似的对象归为一类,使同一类尽可能同质,不同类尽可能异质。
特点:
聚类分析简单直观。
聚类分析主要用于探索性研究,其分析结果可以提供许多可能的解决方案。选择最终的解决方案需要研究者的主观判断和后续的分析。
不管实际数据中是否真的存在不同的类别,聚类分析都可以用来得到分成几类的解决方案。
聚类的解完全取决于研究者选择的聚类变量,增加或删除一些变量可能会对最终的解产生实质性的影响。
离群值和特殊变量对聚类有很大影响。当分类变量的测量尺度不一致时,应事先进行标准化。
k-均值算法
K-means算法简单,在SPSS中也叫快速聚类。K-means算法中的每一类都用对象的平均值来表示。
步骤:
所有对象被随机分配给k个不是空的类
计算每个类中所有对象的平均值,表示该类的中心点。
根据每个对象与每个类中心的距离,将其分配到最近的类中。
如果满足[终止条件],聚类结束;否则,请转到步骤2。
终止条件可以是:
没有(或少于某个值)对象被重新分配给不同的类。
没有(或小于某个值)类中心变化。
平方和(SSE)达到局部最小值。
达到指定的迭代次数。
K-means算法只能在均值有意义的情况下使用,因此不适合对变量进行分类。它需要给定数量的聚类,并且对异常数据和数据噪声很敏感。
系统聚类算法
有两种类型的系统集群:聚集的(自下而上)或分解的(自上而下)。
聚合的系统聚类法将每个对象视为一个独立的类,每次都将最相似的簇合并成上一级的簇,当所有数据点合并成一个簇时整个簇停止或结束——这是大多数系统簇采取的方式。
分解的系统聚类法首先将所有对象作为一个类,然后将根节点拆分成一些子簇,每个子簇继续向下递归拆分,直到出现只有一个数据点的单节点簇,即每个簇只包含一个数据点。
系统聚类算法的优点是分析人员可以比较不同聚类的结果,选择更有趣的(解释性)结果,可以通过生成的聚类树进行比较。
实践-K-均值聚类使用模拟数据
1.用r生成仿真数据。
为什么不用现成的数据,而是用R生成悠游资源网的数据?
主要是因为在自己生成的数据中,可以预先定义存在什么类型的用户群,每个用户群的属性是什么。
这样,我们才能知道“客观现实”是什么。以后在使用SPSS进行聚类分析时,可以将分析的结果与我们预设的“现实”进行对比,看其效果如何——聚类分析得到的类对我们预设的类的约简程度有多高。
假设我们要做的是一个企业管理软件A的用户画像,得到的数据中有1200个有效样本,其中有三类用户:
之一类用户是“典型的管理者”,年龄在30-40岁之间,对使用一款软件持相对积极的态度,认为公司的管理很自由。样本中有200人。
第二类用户是“个体从业人员”,年龄在20-25岁左右。他们对使用一个软件的态度波动很大,认为公司的管理不自由。样本中有400人。
第三类用户是“稳定员工”,年龄在25-30岁左右。他们对使用一个软件持否定态度,觉得公司的管理相对自由。样本中有600人。
接下来,使用R生成上述三类用户的数据。代码如下(对代码不感兴趣的同学可以直接跳过):
#定义每类的数据量n1=200n2=400n3=600#画像1的数据set.seed(1000)age1=rnorm(n1,mean=35,sd=3)set.seed(1100)attitude1=rnorm(n1,mean=8,sd=1.5)set.seed(1200)dof1=rnorm(n1,mean=8,sd=1)#画像2的数据set.seed(2000)age2=rnorm(n2,mean=23,sd=2)set.seed(2100)attitude2=友优资源网rnorm(n2,mean=5,sd=2)set.seed(2200)dof2=rnorm(n2,mean=4,sd=1.5)#画像3的数据set.seed(3000)age3=rnorm(n3,mean=28,sd=2)set.seed(3100)attitude3=rnorm(n3,mean=3,sd=1.5)set.seed(3200)dof3=rnorm(n3,mean=7,sd=1.5)#合并所有数据age=c(age1,age2,age3)attitude=c(attitude1,attitude2,attitude3)dof=c(dof1,dof2,dof3)orig_type=c(rep(1,n1),rep(2,n2),rep(3,n3))data=data.frame(age,attitude,dof,orig_type)#输出到表格write.csv(data,"F:/R/R-cluster.csv")简而言之,三类用户的特征如下:
基于SPSS的k-均值聚类
接下来我们用R产生的数据进行K-means聚类,看看分析结果和我们预设的类别之间的关系。
1.首先看三个变量的相关矩阵:
我们发现几个变量之间的相关性不高,所以都可以作为聚类变量进入后续的分析过程。
2.接下来,标准化三个变量:
Spyo资源网SS操作:分析-描述统计-描述-勾选“将标准化分数另存为变量”
3.k均值聚类
操作:SPSS:分析-分类-K-均值聚类
填写聚类数:3
保存:检查聚类成员和到聚类中心的距离。
选项:检查方差分析表。
4.检查方差分析的结果:
聚类分析得到的类别在三个变量上表现出显著差异,说明三个变量都在聚类分析中发挥作用,可以保留当前的聚类分析结果。
预设类别与聚类结果的比较
先看看聚类的结果:
对比我们最初对用户特征的定义(详见上表),发现聚类分析对用户类别的缩减程度非常高!聚类和初始定义的类别在三个变量的均值和类别样本数上差别不大(注意类别的顺序不同)。
让我们使用另一个交叉表来查看样本的分布:
操作:SPSS:分析-描述统计-交叉表,将原始数据定义的类别和K-means聚类得到的类别分别放入行和列变量中。
选中“显示复合条形图”。
横轴代表我们预设的类别,纵轴代表聚类分析得到的类别。可以看到非常明显的对应关系。
之一类用户主要集中在第三类。
第二类用户主要集中在之一类。
第三类别中的大多数用户被聚集到类别2中。
聚类分析定义的用户群不仅与预设的属性一致,而且与用户构成一致。
本文地址:百科生活频道 https://www.neebe.cn/live/937485.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!