K-means聚类操作方法
- K-means聚类的数据录入
- 指定用于计算距离的变量
- K-means聚类的分析选项
- 选择首选的(表格形式)输出结果
- 选择可视化(图形)输出结果
K-means聚类的结果
K-means聚类分析核对清单
K-means聚类操作方法 K-means聚类的数据录入
1.在欢迎界面或新建表格对话框中,创建一个多变量数据表
多变量数据表是唯一可用于执行K-均值聚类的表格类型。您可选择在新表格中录入自有数据,也可从K-均值聚类样本数据集开始操作。
2.录入数据
通常,多变量数据表的每一列代表一个不同的变量,每一行代表一个不同的观测值或实验重复(受试对象、研究客体、个体等)。K-均值聚类算法仅能用于对输入数据的行进行聚类。对行聚类时,会利用每一行内(及所有相关列中)的数值定义该行的“位置”,并以此计算距离。
3.执行分析
在数据表界面,点击工具栏中的分析按钮。在对话框的聚类分析板块或多变量分析板块中选择K-均值聚类,然后点击确定按钮。这将调出‘参数:K-均值聚类’对话框,该对话框包含四个选项卡。
a. 数据:选择要纳入分析的变量(列)
b.选项:指定列的缩放方法,选择距离计算方法,选定首选的运算算法,设定用于拟合数据的聚类数量范围,且(可选)指定分析所用的随机种子
c.输出:自定义分析生成的报告输出内容。此外,选择在表格中报告的有效数字位数
d.图形:选择Prism应作为本次分析一部分生成的图形
指定用于计算距离的变量
Prism中的K-均值聚类通过计算观测值(行)之间的距离,将观测值(行)分配至不同聚类。这些距离是利用分析中纳入的所有变量(列)对应的每行数值计算得出。分析参数对话框的此选项卡可让您指定哪些变量(列)应纳入分析,以及哪些(若有)应排除。
K-means聚类的分析选项
执行K-均值聚类分析时,需考虑多个重要选项,包括:
- 如何对数据进行归一化或缩放
- 使用何种距离度量
- 使用何种计算/迭代算法
- 使用的聚类数量
- 如何指定初始聚类中心
本节介绍分析中这三个方面的可用选项,以及从分析中定义聚类的相关选项。
输入数据的缩放方法
这些选项用于指示Prism在进行聚类分析前如何转换输入数据。由于K-均值聚类是对输入数据的行(观测值)执行的,因此此处选择的缩放方法将应用于输入数据表的变量(列)。输入数据的数值缩放有三个选项:
- 无 – 完全不转换数据,使用原始数据
- 中心化– 将数据转换为均值为零、标准差保持不变的形式。此缩放方法中,需用列中每个数值减去该列的均值
- 标准化– 将数据转换为均值为零、标准差为1的形式。此缩放方法中,先用列中每个数值减去该列均值,再将所得差值除以该列的标准差
当处理量纲差异极大的变量时,通常会使用标准化,以确保某一变量不会在分析中比其他变量占据更多“权重”。若某一变量的数值范围极大,而其他变量的数值都相对集中,那么若不进行缩放或仅做中心化处理,该高方差单变量的大数值会主导距离计算,可能掩盖或抵消输入数据中其他变量的影响。
距离方法
聚类方法的原理是先确定对象(观测值或聚类)之间的距离,再将“最接近”的对象归为一个聚类。但定义两个对象间的距离有多种不同方式,这些选项可让您指定本次分析要使用的距离方法。
算法
K-均值聚类的工作流程为:首先确定数据观测值将被划分的聚类数量(K),随后为这K个聚类分别定义聚类中心,该步骤称为初始化步骤,下文将进一步详述。最后,通过算法迭代地将观测值分配至各个聚类,并相应更新聚类中心的位置。可用于K-均值聚类的算法有多种,每种算法都有其独特的思路、优势与不足,Prism提供了三种算法供选择:
- Hartigan-Wong算法 – 这是多款不同统计软件和应用中最常用的算法,也是Prism中K-均值聚类分析的默认算法。该算法的目标是最小化簇内平方和,仅当新的分配能降低整体簇内平方和(意味着聚类更紧凑)时,才会将观测值迭代分配至新聚类
- Forgy-Lloyd算法(有时也称为Lloyd-Forgy算法) – 这是最古老且公认最简单的算法。该算法试图最小化每个观测值到其聚类中心的距离,通过迭代将每个观测值分配至最近的聚类中心;所有点完成分配后,重新计算聚类中心的位置并重复此过程
- MacQueen算法– 这是对Forgy-Lloyd算法的小幅改进,二者十分相似。该算法同样试图最小化每个观测值到其聚类中心的距离,与Forgy-Lloyd算法的区别在于:它会在每次重新分配任意观测值后就更新聚类中心的位置(而非等待所有观测值分配完成)
对于上述每种算法,您均可指定尝试的最大迭代次数。若分析在达到该次数时仍未收敛,将按此迭代次数后的结果进行报告。
定义聚类数量
执行K-均值聚类的核心环节之一,是确定数据应被划分的聚类数量。由于K-均值聚类是一种无监督机器学习技术,不会通过标签或标识符将观测值分组为聚类。K-均值算法仅尝试将每个观测值分配至最适配的聚类,而要实现这一点,算法必须先明确需将数据划分为多少个聚类。
Prism并非仅允许为聚类数量选择单一数值,还支持您为数据指定聚类数量的最小值和最大值。基于这两个端点,Prism会对中间所有可能的聚类数量重复执行聚类分析,并报告每种拟合结果。显然,聚类数量不能为0,也不能超过观测值的数量。因此,“最小值”可输入的最小数值为1;若输入的数值大于输入数据中的观测值数量,Prism执行分析时将报错。
确定最佳聚类数量
除了手动指定待测试的聚类数量范围外,Prism还提供自动化方法来确定数据的最佳聚类数量(以及其他分析选项)。勾选“确定最佳聚类数量”选项后,Prism会评估多种聚类方案,并基于统计共识推荐最佳聚类数量。
该功能采用共识法,通过17种不同的统计方法评估您指定范围内的每个可能聚类数量。每种方法都会计算专属指标来评估聚类质量,并基于该指标确定其认为的“最佳”聚类数量。另有独立页面详述这些指标的具体内容及相关数学细节。
当所有方法完成对数据的评估后,Prism会找出在所有方法种被更频繁推荐为“最佳”的聚类数量。这种共识法相比单一指标,能给出更可能的推荐结果。
选中此选项后,分析结果种会出现两个额外内容:
1.结果的表格结果选项卡种会新增一个标题为“最佳聚类数量”的板块,该板块包含共识法的总结信息,具体有:
a.由共识法确定的最佳聚类数量
b.所用指标/方法的列表
c.每种方法得出的最佳聚类数量
d.给定最佳聚类数量时,每种方法对应的指标值
2.新增“聚类指标”结果选项卡,该选项卡以详细表格展示17种方法针对每个测试聚类数量计算出的指标值,可帮助您查看不同方法对各聚类方案的评估情况,以及理解共识推荐的依据
当您不确定数据中存在多少个聚类,或希望为聚类数量的选择获取统计验证时,这种自动化方法尤为实用。
选择初始聚类中心
执行K-均值聚类时,首要步骤之一是定义聚类中心的初始位置,以便完成分配观测值和更新聚类中心位置的迭代过程。该过程被称为初始化,Prism通过K-means++算法执行初始化(具体细节见下节),其核心是从输入数据中选取k个观测值(k为指定的聚类数量)并将其作为初始聚类中心。由于初始化过程涉及随机选择,对同一数据使用相同参数重复执行K-均值聚类可能得到略有差异的结果。这是因为K-均值算法收敛时,可能收敛到局部最小值而非全局最小值;当多次运行K-均值聚类在不同位置收敛时,就可能收敛至不同的局部最小值。
为确保结果完全可重现,Prism允许您指定选择初始聚类中心时使用的随机种子。若对同一数据、使用相同参数并指定相同随机种子执行分析,两次分析的结果将完全一致。
选择首选的(表格形式)输出结果
可选择将众多信息表格作为K-均值聚类结果的一部分进行报告。
此选项卡中的选项可让您指定希望报告的表格(若有),这些输出结果包括:
- 聚类详情– 该表格提供与分析中所用缩放变量相关的聚类信息,包括聚类中心的位置(含各缩放变量对应的数值)、各变量对应的平方和,以及属于该聚类的观测值总数。需注意,若在分析参数对话框的“选项”选项卡中定义了聚类数量范围,Prism会报告每种条件下每个聚类的上述数值
[size=14.6667px]
- 每行到其聚类中心的距离– 该表格展示标度化后的输入数据,并新增“距离”列,报告每个观测值(行)与其分配的聚类中心的距离。关于此表格需注意以下几点:
- 表格中的数据值为输入表格的标度化值,其结果取决于所选的标度化方法(无、标准化、中心化)
- 若再分析参数对话框的“选项”选项卡中定义了聚类范围,Prism将为每个条件单独设置距离列,列标题为整数,代表拟合生成该列距离值时所用的总聚类数
- 距离列中报告的距离值取决于分析参数对话框“选项”选项卡中所选的距离方法
- 初始质心– 该表格列出执行迭代K-均值算法前的初始聚类中心位置。注意:无论您为拟合数据指定的聚类数量最小值和最大值是多少,所有迭代的初始聚类中心位置均相同;但如果您指定了新的随机种子,这些聚类中心将相应更新
[size=14.6667px]
- 标准化/中心化数据 – 该数值表格是基于分析“选项”选项卡的标度化方法部分的选择,对输入数据进行转换后得到的结果。注意:若选择“无标度化(none)”,生成该表格的选项将被禁用
选择可视化(图形)输出
在执行K-均值聚类时,Prism会自动生成“聚类后数据”图。该图以原始标度(原始数据)绘制数据,同时添加分类变量以标识每个观测值的聚类分配(通过分析参数对话框的“选项”选项卡为数据拟合的每个不同聚类数,对应一个额外变量)。此图可用于沿原始数据变量可视化聚类归属情况。
执行K-均值聚类的一个难点是确定将数据分组为多少个聚类。理论上,聚类数最少可仅为1个(所有观测值归为一类),最多可为N-1个(N为参与聚类的观测值数量)。在这种极端情况下,仅有一个聚类包含多个观测值,其余每个观测值各自成为一个聚类。若选择N个聚类(N为参与聚类的观测值数量),则等同于完全不执行聚类,因为每个观测值都归属于自身的聚类。
那么,如何选择将观测值分组的“最佳”聚类数?有多种方法可实现这一目标,Prism提供了三种常用的可视化方法。下文将简要介绍肘部图、轮廓图和间隙统计量图,而这些技术涉及的数学细节可在本指南的其他章节中找到。
肘部图
历来,该图常与聚类分析一同呈现,代表为每个定义的聚类数计算的“簇内平方和”。通常,用于分组数据的聚类数越多,总簇内平方和(WCSS)就越少,WCSS值越小表明聚类的紧凑性越高。当聚类数从1开始增加时,WCSS值会快速下降;但随着聚类数不断增加,每新增一个聚类带来的WCSS下降幅度会越来越小,这可视为新增聚类的“收益递减”问题。核心思路是找到一个临界点,即再增加聚类也无法大幅降低误差的点,在视觉上该点对应曲线的“肘部”(曲线从急剧下降转为平缓下降的位置)。然而在实际应用中,通过这种方法评估“最佳”聚类数具有高度主观性,且可靠性较低。Prism提供此图是为了与大多数其他软件包生成的结果保持一致,但该图通常不被认为对精准确定最佳聚类数有很大帮助。
轮廓图
轮廓图的原理无需复杂的数学概念即可轻松解释。对于任意指定的聚类数,每个观测值会被分配至唯一的聚类中。某一观测值的轮廓系数计算方式为:确定该观测值与同聚类内其他观测值的平均距离,以及与次近聚类中所有观测值的平均距离,最终得出该系数。在理想情况下,您会期望每个观测值与同聚类内其他观测值的距离非常近,而与不同聚类内观测值的距离非常远。模糊的情况则可能出现在某观测值到自身聚类内观测值的平均距离,与到次近聚类内观测值的平均距离相同时。
以下是相关概述:
- 轮廓系数的取值范围为-1到1
- 轮廓系数接近1,表明该观测值与同聚类内其他观测值的匹配度高
- 轮廓系数为0,表明该观测值处于两个不同聚类的“边界”上
- 轮廓系数为-1,表明该观测值与自身聚类内其他观测值的匹配度极差,实际上与次近聚类内的观测值更为相似
对于任意指定的聚类数,可计算每个观测值的轮廓系数,进而算出所有轮廓系数的平均值。Prism生成的轮廓图会将不同聚类数(在分析参数对话框的“选项”选项卡中定义的聚类数最小值和和最大值范围内)对应的平均轮廓系数(Y轴)展示在图中,聚类数则显示在X轴上。确定分析中“最佳”聚类数的一种方法,是找到平均轮廓系数最大的聚类数。这一数值代表在该聚类数下,观测值平均而言与各自聚类内的其他观测值匹配度最高。
间隙统计量图
间隙统计量图的核心思路是,检验数据被划分为不同聚类数时的分组效果,并将其与相同聚类数下随机数据的分组效果进行对比。其逻辑是:若数据中存在真实的自然分组,那么必然存在某个聚类数,使得真实数据的分组效果远优于随机数据。为实现这一对比,生成的随机数据需与原始数据具有相同的维度(行数和列数);同时,随机数据中各变量的数值范围需与原始数据一致,且数值从该范围的均匀分布中选取,再对随机数据执行聚类分析。随后将聚类后的随机数据与原始数据的聚类结果进行对比,为避免抽样偏差,这一随机数据生成过程会重复多次。
无需深入探讨具体的数学细节,其核心逻辑为:若数据中存在真实的自然分组(聚类),那么相较于相同数值范围下的随机数据,原始数据在各聚类内的离散度应更低。换言之,原始数据在对应聚类数下的聚类内离散度,会小于随机数据在相同聚类数下的离散度。此处的离散度通过“聚类内各数据点到聚类中心的平方距离和”衡量,该值被记作W。将原始数据的W值(观测值Wobserved)与模拟随机数据的平均W值(期望值Wexpected)对比,即可计算出特定聚类数对应的间隙统计量。针对不同的聚类数可计算出不同的间隙统计量,这些数值会被绘制在间隙统计量图中(Y轴为间隙统计量,X轴为聚类数)。通过该方法确定“最佳”聚类数的依据,是找到满足以下条件的最小聚类数k:
Gap(k) ≥ Gap(k+1) - SDk+1
换言之,最佳聚类数是满足“间隙统计量大于(聚类数+1时的间隙统计量减去该情况下的标准差)”的最小聚类数。这一过程通常(但并非总是)可简化为在间隙统计量图中找到第一个峰值。