聚类分析(K-Means)
# 1、作用
聚类分析是一种基于中心的聚类算法(K 均值聚类),通过迭代,将样本分到 K 个类中,使得每个样本与其所属类的中心或均值的距离之和最小。与分层聚类等按照字段进行聚类的算法不同的是,快速聚类分析是按照样本进行聚类。
# 2、输入输出描述
输入:1 个或一个以上的定类变量(独热编码非必选)或者定量变量,预先设定类别个数。
输出:根据预先设定的类别个数,划分为其设定的类别。
# 3、案例示例
根据调研用户的收入、年龄、学历等变量进行聚类,分为高质量人类,精英人士与普通人 3 个类别。
# 4、案例数据
聚类分析案例数据
# 5、案例操作
Step1:新建分析;
Step2:上传数据;
Step3:选择对应数据打开后进行预览,确认无误后点击开始分析;
step4:选择【聚类分析】;
step5:查看对应的数据数据格式,按要求输入【聚类分析】数据;
step6:点击【开始分析】,完成全部操作。
# 6、输出结果分析
输出结果 1:字段差异性分析
图表说明: 上表展示了定量字段差异性分析的结果,包括均值 ± 标准差的结果、F 检验结果、显著性 P 值。
分析:当设置聚类个数 K 值设置为 2 时,通过聚类分析,划分为了 2 个类别,方差分析的结果显示:
对于收入,两个类别的平均值 ± 标准差的显著性 P 值为 0.000,水平上呈现显著性,拒绝原假设,说明变量收入在聚类分析划分的类别之间存在显著性差异,分类有效;
对于变量年龄,显著性 P 值为 0.645,水平上不呈现显著性,不能拒绝原假设,说明变量年龄在聚类分析划分的类别之间不存在显著性差异,分类无效;
对于变量学历,显著性 P 值为 0.133,水平上不呈现显著性,不能拒绝原假设,说明变量学历在聚类分析划分的类别之间不存在显著性差异,分类无效;
综上所述,实际上设置为 2 个类别时,分类效果并非那么好,我们可以通过调整聚类个数进行重复验证。
输出结果 2:聚类汇总
图表说明: 上表展示了模型聚类的结果,包括频数,所占百分比。
分析:聚类分析的结果显示,聚类结果共分为 2 类, 聚类类别_1 的频数为 5046,所占百分比为 50.46%; 聚类类别_2 的频数为 4954,所占百分比为 49.54%。
输出结果 3:聚类汇总图
图表说明:上图以可视化的形式展示了模型聚类的结果,包括频数,所占百分比。
可见两个类别大致五五开,数量差异很小。
输出结果 4:数据集聚类标注
图表说明: 上表格展示了模型聚类结果的部分数据聚类标注,其为预览结果,只显示综合排序的前 10 条数。 以预览不同分类的结果,由图可见种类 1 的收入、学历往往高于种类 2。
输出结果 5:聚类中心点坐标
图表说明: 上图展示了所有聚类中心的情况。
# 7、注意事项
- K 均值聚类分析的 K 值需要先前指定,SPSSPRO 默认为 K=2。可以根据先验情况,或者使用手肘法、轮廓系数法确定 K 值。
- K 均值聚类分析(K-means)区分于 K 近邻(KNN),后者是一种监督学习的分类算法。
- K 均值聚类分析(K-means)每次选取的随机聚类中心不一样,故带有随机性,每次结果不一定完全相同。
# 8、模型理论
K-Means 算法是一种无监督学习,同时也是基于划分的聚类算法,一般用欧式距离作为衡量数据对象间相似度的指标,相似度与数据对象间的距离成反比,相似度越大,距离越小。算法需要预先指定初始聚类数目 k 以及 k 个初始聚类中心,根据数据对象与聚类中心之间的相似度,不断更新聚类中心的位置,不断降低类簇的误差平方和(Sum of Squared Error,SSE),当 SSE 不再变化或目标函数收敛时,聚类结束,得到最终结果。
其核心思想是:
首先从数据集中随机选取 k 个初始聚类中心 Ci(1 ≤ i ≤ k) ,计算其余数据对象与聚类中心 Ci 的欧氏距离,找出离目标数据对象最近的聚类中心 Ci ,并将数据对象分配到聚类中心 Ci 所对应的簇中。然后计算每个簇中数据对象的平均值作为新的聚类中心,进行下一次迭代,直到聚类中心不再变化或达到最大的迭代次数停止。
空间中数据对象与聚类中心间的欧式距离计算公式为:
其中,x 为数据对象,Ci 为第 i 个聚类中心,m 为数据对象的维度,xj,Cij 为 x 和 Ci 的第 j 个属性值。
整个数据集的误差平方和 SSE 计算公式为:
其中,SSE 的大小表示聚类结果的好坏,k 为簇的个数。
# 9、参考文献
[1] Scientific Platform Serving for Statistics Professional 2021. SPSSPRO. (Version 1.0.11)[Online Application Software]. Retrieved from https://www.spsspro.com.
[2]Saroj,Kavita.Review:study on simple k mean and modified K mean clustering technique[J].International Journal of Computer Science Engineering and Technology,2016, 6(7):279-281.
[3]杨俊闯,赵超.K-Means 聚类算法研究综述[J].计算机工程与应用,2019,55(23):7-14+63.