5

如果要聚类的数据实际上是点(2D(x, y)或 3D (x, y,z)),那么选择聚类方法将非常直观。因为我们可以绘制它们并可视化它们,所以我们更清楚哪种聚类方法更合适。

eg1如果我的 2D 数据集是右上角显示的格式,我会知道这K-means可能不是一个明智的选择,但DBSCAN似乎是一个更好的主意。

在此处输入图像描述

然而,正如scikit-learn 网站所说:

虽然这些例子给出了一些关于算法的直觉,但这种直觉可能不适用于非常高维的数据。

AFAIK,在大多数盗版问题中,我们没有这么简单的数据。最有可能的是,我们有高维元组,它们不能像数据那样可视化。

eg2我希望对一个数据集进行聚类,其中每个数据都表示为一个 4-D tuple <characteristic1, characteristic2, characteristic3, characteristic4>。我无法在坐标系中可视化它并像以前一样观察它的分布。所以我不能说在这种情况下DBSCAN优于。K-means

所以我的问题

对于这样一个“无法可视化”的高维案例,如何选择合适的聚类方法?

4

4 回答 4

6

聚类中的“高维”可能密集数据中的 10-20 维和稀疏数据(例如文本)中的 1000+ 维开始。

4维问题不大,还是可以可视化的;例如通过使用多个 2d 投影(甚至 3d,使用旋转);或使用平行坐标。这是使用散点图矩阵的 4 维“虹膜”数据集的可视化。

但是,您仍然应该做的第一件事是花费大量时间进行预处理,并找到合适的距离函数。

如果您真的需要高维数据的方法,请查看子空间聚类和相关聚类,例如

  • Kriegel、Hans-Peter、Peer Kröger 和 Arthur Zimek。聚类高维数据:关于子空间聚类、基于模式的聚类和相关聚类的调查。ACM 从数据中发现知识的交易 (TKDD) 3.1 (2009):1。

该调查的作者还发布了一个软件框架,其中包含许多高级聚类方法(不仅仅是 k-means,还有 CASH、FourC、ERiC):ELKI

于 2013-09-16T11:35:02.657 回答
5

至少有两种常见的通用方法:

  1. 可以使用一些降维技术来实际可视化高维数据,有几十种流行的解决方案,包括(但不限于):

    • PCA - 主成分分析
    • SOM - 自组织地图
    • 萨蒙的映射
    • 自动编码器神经网络
    • KPCA - 核主成分分析
    • 等值图

    在此之后返回原始空间并使用一些基于缩减空间中的观察似乎合理的技术,或者在缩减空间本身中执行聚类。第一种方法使用所有可用信息,但由于由差异引起的差异可能是无效的减量过程。虽然第二个确保您的观察和选择是有效的(当您将问题减少到好的 2d/3d 问题时),但由于使用了转换,它会丢失大量信息。

  2. 尝试许多不同的算法并选择具有最佳指标的算法(已经提出了许多聚类评估指标)。这是一种计算成本高的方法,但具有较低的偏差(因为降低维数会引入来自使用的变换的信息变化)

于 2013-09-16T08:35:19.470 回答
2

的确,高维数据不能在欧几里得高维数据中轻松可视化,但没有针对它们的可视化技术是不正确的。

除了这个声明之外,我还要补充一点,只需 4 个特征(您的尺寸),您就可以轻松尝试平行坐标 可视化方法。或者简单地尝试一次采用两个特征(总共 6 次)的多元数据分析,以试图找出两者之间的哪些关系(通常是相关性和依赖性)。或者您甚至可以一次使用三个 3d 空间。

那么,如何从这些可视化中获取一些信息呢?好吧,这不像在欧几里得空间中那么容易,但关键是要直观地发现某些组中的数据是否聚集(例如,在平行坐标图的轴上的某些值附近)并考虑数据是否以某种方式可分离(例如如果它在散点图中形成可分离的圆或线等区域)。

有点题外话:您发布的图表并不表示给定某些特定数据分布的每种算法的能力或能力,它只是突出了某些算法的性质:例如,k-means 只能分离凸面和椭圆体区域(以及请记住,即使在 N 维中也存在凸面和椭球)。我的意思是没有一条规则说:给定图中描绘的分布,因此您必须选择正确的聚类算法。

我建议使用数据挖掘工具箱,它可以让您探索和可视化数据(并轻松转换它们,因为您可以通过转换、投影和缩减来更改它们的拓扑,请检查 lejlot 的另一个答案),比如Weka(另外你不必须自己实现所有算法。

最后,我将向您指出此资源,以获得不同的集群优度和适应度度量,以便您可以比较不同算法的结果。

于 2013-09-16T09:41:47.417 回答
1

我还建议使用软子空间聚类,这是当今非常常见的一种方法,其中添加了特征权重以找到最相关的特征。例如,您可以使用这些权重来提高性能并改进使用欧几里德距离的 BMU 计算。

于 2016-04-05T16:33:42.223 回答