具有混合类型数据的层次聚类 - 使用什么距离/相似度?

机器算法验证 聚类 相似之处 距离函数 混合类型数据 高尔相似度
2022-01-27 10:28:03

在我的数据集中,我们既有连续变量,也有自然离散变量。我想知道我们是否可以使用这两种类型的变量进行层次聚类。如果是,什么距离测量是合适的?

2个回答

一种方法是使用Gower 相似系数,它是一种复合度量它需要定量(如评分量表)、二元(如在场/缺席)和名义(如工人/教师/职员)变量。后来 Podani添加了一个选项来接受序数变量。12

即使没有公式,系数也很容易理解;您可以通过每个变量计算个体之间的相似性值,同时考虑变量的类型,然后对所有变量进行平均。通常,计算 Gower 的程序将允许您加权变量,即它们对复合公式的贡献。然而,不同类型变量的适当加权是一个问题,没有明确的指导方针,这使得 Gower 或其他接近拉动指数的“复合”指数面临挑战。

高尔相似度 ( ) 的各个方面:GS

  • 当所有变量都是定量的(区间)时,系数是转换为相似度的范围归一化曼哈顿距离。因为不同单位的标准化变量可以安全地使用。但是,您不应该忘记异常值。(您可能还决定通过范围以外的另一种传播度量进行归一化。)由于通过统计数据(例如范围)进行归一化,这对数据集中个体的组成很敏感,某些两个个体之间的高尔相似性可能会改变其值如果您在数据中删除或添加其他一些人。
  • 当所有变量都是序数时,首先对它们进行排序,然后计算曼哈顿,如上所述,使用定量变量,但对关系进行了特殊调整。
  • 当所有变量都是二元的(类别的重要性不对称:“存在”与“不存在”属性)时,该系数是Jaccard匹配系数(该系数将两个个体都缺少该属性视为既不匹配也不不匹配)。
  • 当所有变量都是名义变量时(也包括此处具有对称重要性的二分法:“this”与“that”),则系数是您从名义变量中获得的Dice匹配系数,如果将它们重新编码为虚拟变量(更多信息请参见此答案) .

(扩展类型列表很容易。例如,可以使用转换为相似度的归一化卡方距离为计数变量添加和。)

系数介于 0 和 1 之间。

高尔距离”。没有序数变量存在(即不使用 Podani 的选项)表现为欧几里得距离,它完全支持欧几里得空间。但是只是度量(支持三角不等式),而不是欧几里得。存在序数变量(使用 Podani 的选项)只是度量,而不是欧几里得;并且根本不是公制的。另请参阅1GS1GS1GS1GS

对于欧几里得距离(支持欧几里得空间的距离),几乎任何经典的聚类技术都可以。包括K-means(如果您的 K-means 程序当然可以处理距离矩阵)并包括 Ward's, centroid, medium methods of Hierarchical clustering使用 K-means 或其他那些基于欧几里得距离和非欧几里得静止度量距离的方法在启发式上可能是可以接受的。对于非度量距离,不能使用此类方法。

上一段讨论了 K-means 或 Ward's 或此类聚类在数学上(几何上)与 Gower 距离是否合法。测量尺度(“心理测量”)的角度来看,不应在任何分类(标称、二元和序数)数据中计算平均值或欧几里得距离偏差;因此,从这个立场来看,您可能无法通过 K-means、Ward 等处理高尔系数。该观点警告说,即使存在欧几里得空间,它也可能是颗粒状的,而不是平滑的(参见相关)。

如果您想要有关 Gower 相似度/距离的所有公式和其他信息,请阅读我的 SPSS 宏的描述!gower它在我网页上的“各种邻近”集合中找到的 Word 文档中。


1 Gower JC 一般相似系数及其一些属性 // Biometrics, 1971, 27, 857-872

2 Podani, J. 将 Gower 的一般相似系数扩展到序数字符 // Taxon, 1999, 48, 331-340

如果您偶然发现了这个问题并且想知道要下载哪个包以在 R 中使用 Gower 度量,那么该cluster包有一个名为daisy()的函数,默认情况下,只要使用混合类型的变量,它就会使用 Gower 度量。或者您可以手动将其设置为使用 Gower 的指标。

daisy(x, metric = c("euclidean", "manhattan", "gower"),
      stand = FALSE, type = list(), weights = rep.int(1, p))