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


35

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

我想知道您对此的看法- 您将选择哪种方法以及如何选择。有人可能会说“最好的集群方法是为您提供正确的答案”;但我可能会回答,聚类分析应该是一种无监督的技术-那么我怎么知道哪种方法或链接是正确的答案?

总的来说:单独的集群是否足够强大才能依靠?还是我们需要第二种方法并获得基于这两种方法的共享结果?

我的问题不仅涉及验证/评估聚类性能的可能方法,而且涉及范围更广- 我们在什么基础上选择/优先于一种聚类方法/算法。另外,在选择一种对数据进行聚类的方法时,是否应该注意一些常见的警告

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


还要检查这个类似的问题。
ttnphns

还有这个
ttnphns

2
一些有关内部和外部验证的链接:this。还有这个。还有那个。还有那个。还有那个。还有这个。而那边。并寻找更多。
ttnphns

Answers:


50

他们经常说,没有其他的分析技术像聚类分析一样具有“如你所愿播种”的强烈分析能力。

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

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

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

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

  4. 外部有效性“我之所以喜欢这种方法,是因为它给我的簇因背景而异,或者与我所知道的真实簇相匹配”。如果聚类分区所呈现的聚类在某些重要背景下(即未参与聚类分析)的特性明显不同,则产生该分区的该方法是一种资产。使用任何适用于检查差异的分析;还存在许多有用的外部聚类标准(Rand,F-measure等)。外部验证案例的另一种形式是,当您以某种方式知道数据中的真实簇时(知道“基本事实”),例如您自己生成簇时。然后,您的聚类方法能够发现实际聚类的准确度是衡量外部有效性的方法。

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

  6. 释义“我之所以喜欢这种方法,是因为它给了我很多集群,据解释,这些集群最有说服力的是,世界上存在意义。” 这不是统计数据,而是您的心理验证。结果对您,领域以及受众/客户的意义如何?选择给出最可解释,最辛辣结果的方法。

  7. 群居。定期进行一些研究,有时所有研究都会说“我更喜欢这种方法,因为与我所研究的所有方法相比,该方法在我的数据中得出的结果与其他方法相似”。这是一种启发式但有问题的策略,它假定存在相当普遍的数据或相当普遍的方法。

第一点和第二点是理论上的,在获得结果之前;唯一依靠这些观点的是傲慢,自信的探索策略。第3、4和5点是经验性的,并遵循结果;唯一依靠这些观点的就是烦躁,尝试全部的探索性策略。第6点具有创造力,这意味着它拒绝任何结果以尝试对其进行调整。点7是忠诚的淡紫色。

选择“最佳” 簇数时,也可以判断第3点到第7点。


1一个具体的内部聚类标准本身并不与聚类方法“正交”(与数据类型无关)。这就提出了一个哲学问题,即这种有偏见或偏见的准则在多大程度上可以发挥效用(请参见仅注意到它的答案)。


1
我真的很喜欢内部有效性度量,例如K均值和Ward层次聚类中集群内方差之和以及Dunn指数。它们与数据无关,有时甚至与聚类算法无关,即使其中一些仅对特定算法有意义。
Douglas De Rizzo Meneghetti

2
@DouglasDeRizzoMeneghetti我不同意。它们既不独立于数据(它们对数据进行非常强的假设,例如属性的线性和等效性),也不独立于聚类算法。实际上,每个内部度量都是其自身的聚类算法(您可以为此功能进行优化-通常这样做太昂贵了)。
Anony-Mousse

1
我了解,如果通过趋向于使集群内方差之和最小的聚类方法获得集群成员,则某些内部有效性度量(例如集群内方差之和)会产生更好的结果,并且像Dunn这样的有效性度量索引假定良好的聚类是紧凑且相距遥远的(即使“紧凑”和“相距较远”的解释尚待解释),但事实是您可以仅使用特征值和聚类的成员来计算这些度量元素使它们相当通用。
Douglas De Rizzo Meneghetti

9

主要有危险信号标准。告诉您某种方法肯定会失败的数据属性。

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

  2. 属性是否按比例变化并且是非线性或偏斜的。除非您有适当归一化的好主意,否则这可能会破坏您的分析。停下来学习了解您的功能,现在群集还为时过早。

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

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

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

例子:

  1. RGB空间中图像的像素。最小二乘有意义,所有属性都是可比较的-k均值是一个不错的选择。

  2. 地理数据:最小二乘不太合适。会有异常值。但是距离很有意义。如果噪声很大,请使用DBSCAN;如果数据非常干净,请使用HAC(分层聚集群集)。

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


+1。我只求您代替寻找另一种表达方式stop criteria。如您所知,“停止规则”或“停止条件”是分层聚类领域中“内部聚类条件” 的同义词。因此,这是一个全神贯注的术语。但是您在回答中用不同的含义指这些词,这可能会使读者感到困惑。
ttnphns

1
“红旗标准”怎么样?停止HAC的门槛,我明白你的意思。
Anony-Mousse

对我来说很棒,不错的选择。
ttnphns

在2,3分中,您说(non)linear attributes。你什么意思?以什么方式“线性”属性?还是您在谈论线性关系,即簇的椭圆(而不是弯曲)形状?
ttnphns

具有例如指数分布的数据。
Anony-Mousse

3

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

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


2
我认为有意义这个词不能足够强调。这也是我回答的重点-您需要首先弄清数据。
Anony-Mousse

@ Anony-Mousse,从您的角度来说这是过分的杀伤力。我敢打赌那些不知道怎么做或忘记“理解”他们数据的人几乎不会访问此站点,他们不会问这里的问题。
ttnphns

@ttnphns我不知道这些人多久访问一次此网站,他们当然也不会问这样的问题。但是很多人希望聚类分析能够像Excel函数一样工作。选择数据,单击“集群”,然后得出神奇的客户群。这似乎从来没有比随机的更好。例如,该用户无法理解他的数据:stats.stackexchange.com/q/195521/7828
Anony-Mousse
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.