在数据分析领域,聚类分析是一种常用的技术,用于将数据点分组,使得同一组内的数据点相似度较高,而不同组之间的数据点相似度较低。然而,在实际操作中,可能会遇到聚类分析效果不佳的情况,本文将探讨可能的原因及相应的解决策略。
一个好的聚类分析通常需要满足以下两个基本要求:
- 同一组内数据点具有相似的特征:可以通过检查每个聚类中每个输入变量的标准差来统计地判断这一标准。在聚类分析中,完美分离的情况很少见,因此,两个聚类均值之间的一个标准差距离被认为是良好的分离。
- 数据点在各聚类中的分布比例合理:虽然没有行业标准,但通常认为每个聚类中数据点占总数据点的5%至35%是一个安全的区间。
聚类分析的难题
在最近的一个聚类分析项目中,遇到了一个棘手的问题:大部分数据点(90%)被分到了第一个聚类中,而剩下的10%分布在其他几个聚类中。这种结果显然不符合一个好的聚类分析的标准。以下是在构建聚类时采取的步骤:
- 识别所有可能用于聚类分析的变量。
- 处理异常值和缺失值。
- 使用VARCLUS技术识别最终聚类分析中应考虑的最重要变量。
- 使用FASTCLUS技术进行k-means聚类,这是最快的聚类方法之一。
以下是聚类的图形表示:
Cluster 1: 90%
Cluster 2: 5%
Cluster 3: 5%
这样的结果显然不能算作一个好的聚类分析。
可能的问题及解决方案
面对任何建模技术的不良结果,最好的解决方法不是尝试不同的解决方案,而是探索可能出错的原因。以下是一些可能导致聚类分析失败的假设:
- 异常值仍然存在:尝试制定更严格的异常值定义。在大多数情况下,这对来说是一个救星。尝试使用封顶和下界替换而不是直接移除异常值。
- 存在主导变量:这类变量通常在FASTCLUS输出的显著性表中可见。如果某个变量的显著性指数异常高,尝试用下一个最佳变量替换它。这个最佳变量可以在VARCLUS步骤中找到。
如果问题仍然存在,这表明什么?这表明数据集过于同质,难以进行分割。这是最难解决的问题。尝试从更多的数据点开始。如果问题仍然存在,需要在更细的层面上进行聚类。现在将详细讨论这种方法。
可能的聚类技术和它们的优势
以下是两种可能的聚类技术及其优势:
- 层次聚类:这种技术的优势在于它非常方便地将不同的数据点组合在一起。换句话说,模型的输出是一棵树,可以选择树中的任何组合来构建不同数量的聚类。这种技术的缺点是它只能处理少量的数据点,并且对于高数量的观测值需要指数级的时间。如果这不是这种技术的限制,那么没有任何聚类分析会失败。
- k-means聚类:这种技术的优势在于它可以处理大量的观测值,并且与其他所有可用技术相比,它需要的时间非常少。这种技术的缺点是,在过程中间改变将数据点组合到次佳聚类是不可能的。因此,与层次聚类相比,该方法更加僵化。
这两种技术具有相反的优缺点,因此可以一起使用以互补。
以下是最终用来获得合理且可操作的聚类的技术:
- 使用异常值移除和主导变量移除技术。
- 使用k-means方法获得更多的细粒度聚类:构建细粒度聚类的数量。对于需要的n个最终聚类,将k设置为n的3到4倍。以下是一个说明性的图表来演示这一步:
得到了10个更小的聚类,大小范围从2%到25%的相同人群。
- 使用层次聚类将这些细粒度聚类组合在一起:将细粒度聚类的平均值作为单独的数据点输入到层次聚类中。这将输出一个线图。选择不会导致聚类超过35%的组合,并确保所有聚类都超过5%。以下是一个说明性的图表,展示了这一步的结果:
这一步的输出是一组符合良好聚类分析标准的聚类。
上述方法使用更细微的观察差异,这些差异在使用简单的k-means聚类时没有被区分出来,因此需要对分离测试进行验证。在这种情况下,当观察之间的强分离不可能时,不应为每个聚类采取截然不同的行动。