如何选择聚类方法?如何验证集群解决方案(保证方法选择)?

机器算法验证 聚类 验证 模型评估 层次聚类
2022-01-23 07:05:31

聚类分析的最大问题之一是,当基于所使用的不同聚类方法(包括层次聚类中的不同链接方法)时,我们可能不得不得出不同的结论。

我想知道您对此的看法——您将选择哪种方法以及如何选择。有人可能会说“最好的聚类方法是给你正确的答案”;但我可能会质疑聚类分析应该是一种无监督的技术——那么我怎么知道哪种方法或联系是正确的答案呢?

一般来说:单独的集群是否足够强大,可以依赖?或者我们需要第二种方法并获得基于两者的共享结果?

我的问题不仅是关于验证/评估聚类性能的可能方法,而且更广泛 -我们在什么基础上选择/偏好一种聚类方法/算法而不是另一种聚类方法/算法。此外,当我们选择一种方法来对我们的数据进行聚类时,是否有常见的警告我们应该环顾四周?

我知道这是一个非常笼统的问题,很难回答。我只想知道您是否有任何意见或建议或任何建议让我了解更多相关信息。

3个回答

他们经常说,没有其他分析技术能像聚类分析那样强烈地“播种即割”。

我可以想象这种或那种聚类方法的“正确性”的多个维度或方面:

  1. 集群比喻“我更喜欢这种方法,因为它构成了符合我在特定项目中的集群概念的集群(或这样的方式)”每个聚类算法或子算法/方法都暗示了其相应的聚类结构/构建/形状。关于分层方法,我在此处此处的点之一中观察到了这一点. 即一些方法给出典型的“类型”集群,其他给出“[按兴趣]圈子”,还有其他“[政治]平台”、“类”、“链”等。选择集群隐喻适合你的方法。例如,如果我将我的客户群视为类型 - 或多或少的球形,中间有压实,我会选择 Ward 的链接方法或 K-means,但绝不选择单一链接方法。如果我需要一个焦点代表点,我可以使用 medoid 方法。如果我需要筛选作为核心和外围代表的点,我可以使用 DBSCAN 方法。

  2. 数据/方法假设“我更喜欢这种方法,因为我的数据性质或格式倾向于它”我在上面的链接中也提到了这一重要而广泛的观点。不同的算法/方法可能需要不同类型的数据,或者对数据应用不同的邻近度度量,反之亦然,不同的数据可能需要不同的方法。有定量数据的方法和定性数据的方法。混合定量+定性特征极大地缩小了方法的选择范围。Ward 或K-means仅基于 - 显式或隐式 - 仅基于(平方)欧几里德距离接近度度量,而不是基于任意度量。二进制数据可能需要特殊的相似性度量,这反过来会强烈质疑使用某些方法,例如 Ward 或 K-means。大数据可能需要特殊的算法或特殊的实现。

  3. 内部有效性“我更喜欢这种方法,因为它给了我最清晰、紧密和孤立的集群”从这个角度来看,选择对您的数据显示最佳结果的算法/方法。内部的簇越紧密、密集,外部的密度越小(或者簇之间的距离越宽)——内部有效性就越大。选择并使用适当的内部聚类标准很多——Calinski-Harabasz、Silhouette 等;有时也称为“停止规则”)来评估它。[小心过度拟合:所有聚类方法都试图最大化某些版本的内部有效性 (这就是聚类1about),所以高有效性可能部分是由于给定数据集的随机特性;拥有一个测试数据集总是有益的。]

  4. 外部效度“我更喜欢这种方法,因为它给了我背景不同的集群或与我知道的真实集群匹配的集群”如果聚类分区呈现在某些重要背景(即未参与聚类分析)特征上明显不同的聚类,那么它是产生该分区的方法的资产。使用任何适用于检查差异的分析;还存在许多有用的外部聚类标准(兰德、F-measure 等)。外部验证案例的另一种变体是当您以某种方式知道数据中的真实集群(知道“基本事实”)时,例如您自己生成集群时。那么你的聚类方法能够多准确地发现真正的聚类就是外部有效性的衡量标准。

  5. 交叉效度“我更喜欢这种方法,因为它在数据的等效样本上为我提供了非常相似的集群,或者很好地推断出这些样本”有多种方法及其混合方法,其中一些更适用于某些聚类方法,而另一些则适用于其他方法。两种主要方法是稳定性检查和泛化性查看。检查聚类方法的稳定性,将数据随机拆分或重新采样到部分相交或完全不相交的集合中,并对每个集合进行聚类;然后匹配并比较解决方案与一些紧急集群特征(例如,集群的集中趋势位置)是否在集合中稳定。检查泛化性意味着在训练集上进行聚类,然后使用其涌现的聚类特征或规则来分配测试集的对象,另外还要对测试集进行聚类。然后比较测试集对象的分配结果和聚类结果的聚类成员关系。

  6. 解释“我更喜欢这种方法,因为它给了我集群,解释说,这些集群最有说服力地表明世界上存在意义”这不是统计数据——这是你的心理验证。结果对您、域以及可能的受众/客户有多大意义。选择给出最可解释、最辣的结果的方法。

  7. 合群一些研究定期和所有研究偶尔会说“我更喜欢这种方法,因为它在我的数据中给出了与我调查的所有其他方法相似的结果”这是一种启发式但有问题的策略,它假设存在非常普遍的数据或非常普遍的方法。

第 1 点和第 2 点是理论上的,在获得结果之前;独靠这些点是傲慢、自信的探索策略。第 3、4 和 5 点是经验性的,并遵循结果;唯一依靠这些点的是烦躁的、试探性的探索策略。第 6 点是创造性的,这意味着它否认任何结果以试图重新证明它的合理性。第 7 点是忠诚的淡紫色。

第 3 点到第 7 点也可以作为您选择“最佳”聚类数的判断依据


1一个具体的内部聚类标准本身与聚类方法(也不与数据类型)“正交”。这就提出了一个哲学问题,这种有偏见或有偏见的标准在多大程度上是有用的(请参阅答案,只是注意到它)。

主要有红旗标准。告诉您某种方法肯定会失败的数据属性。

  1. 如果您不知道您的数据意味着什么,请停止分析它。你只是在猜测云中的动物。

  2. 如果属性在尺度上变化并且是非线性的或倾斜的。除非您对适当的标准化有很好的了解,否则这可能会破坏您的分析。停下来学习理解你的特征,现在集群还为时过早。

  3. 如果每个属性都是等效的(相同的比例)和线性的,并且您想量化您的数据集(并且最小二乘误差对您的数据有意义),那么 k-means 值得一试。如果您的属性具有不同的种类和规模,则结果定义不明确。反例:年龄和收入。收入是非常倾斜的,而且x years = y dollar是无稽之谈。

  4. 如果您非常清楚如何量化相似度或距离(以有意义的方式;计算某个数字的能力还不够),那么层次聚类和 DBSCAN 是一个不错的选择。如果您不知道如何量化相似性,请先解决该问题。

您会看到最常见的问题是人们试图将他们的原始数据转储到集群中,当他们首先需要理解和规范化它并找出相似性时。

例子:

  1. RGB 空间中图像的像素。最小二乘法有一定的意义,并且所有属性都具有可比性——k-means 是一个不错的选择。

  2. 地理数据:最小二乘法不是很合适。会有异常值。但距离很有意义。如果您有很多噪音,请使用 DBSCAN,如果您有非常干净的数据,请使用 HAC(分层凝聚聚类)。

  3. 在不同栖息地观察到的物种。最小二乘是可疑的,但例如 Jaccard 相似性是有意义的。您可能只有很少的观察结果并且没有“错误”栖息地 - 使用 HAC。

我认为没有一种很好的正式方式可以做到这一点。我认为好的解决方案是有意义的,实质性的。

当然,您可以尝试多次拆分数据和聚类等一次,但仍然存在哪个有用的问题。