【问题标题】:Clustering Method Selection in High-Dimension?高维聚类方法选择?
【发布时间】:2013-09-20 07:53:15
【问题描述】:

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

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

然而,正如the scikit-learn website 所说:

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

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

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

所以我的问题

如何为这种“不可见”的高维案例选择合适的聚类方法?

【问题讨论】:

  • character1?你的意思是你有长度为4的字符串?那么你可能不应该直接聚集在那个空间中,而是先进行一次热编码。
  • @larsmans 哎呀!抱歉错字。请参阅编辑。
  • 4 维根本不是“高维”,你的 3 维直觉仍然有效。
  • 确实,高维从 10k 个特征开始 :)

标签: machine-learning cluster-analysis data-mining


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    聚类中的“高维”可能开始在密集数据中大约 10-20 维,在稀疏数据(例如文本)中超过 1000 维。

    4维问题不大,仍然可以可视化;例如通过使用多个 2d 投影(甚至 3d,使用旋转);或使用平行坐标。 Here's a visualization of the 4-dimensional "iris" data set 使用散点图矩阵。

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

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

    • Kriegel、Hans-Peter、Peer Kröger 和 Arthur Zimek。 聚类高维数据:关于子空间聚类、基于模式的聚类和相关聚类的调查。 ACM Transactions on Knowledge Discovery from Data (TKDD) 3.1 (2009):1.

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

    【讨论】:

      【解决方案3】:

      确实,高维数据在欧几里得高维数据中不容易被可视化,但它们没有visualization techniques 是不正确的。

      除此声明外,我还要补充一点,只需 4 个功能(您的尺寸),您就可以轻松尝试 parallel coordinates visualization method。或者简单地尝试 multivariate data analysis 一次获取两个特征(总共 6 次)来尝试找出两者之间的哪些关系(通常是相关性和依赖性)。或者您甚至可以一次使用三个 3d 空间。

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

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

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

      最后我会为你指出这个资源的不同cluster goodness and fitness measures,这样你就可以比较不同算法的结果。

      【讨论】:

      • Weka 没有很多集群。更好地使用 ELKI。
      • 拥有 100 种聚类算法不是问题,有时使用 100 种不同的指标或 100 种转换/减少和 weka 以及 Elki 都支持它:)
      【解决方案4】:

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

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

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

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

      【讨论】:

      • 1.即使将维度减小到可视化扩展(例如 3D),在我看来,有时可视化数据仍然没有意义。一个例子是说在减少之后我有元组。将它们聚集在 3D 空间中是否有意义?他们拥有不同的单位。
      • 2. 你的意思是试错法吗?但是我的时间真的很有限。我可能无法将它们全部实现并一一尝试。
      • 用“不同单位”进行聚类不是降维的问题,而是对非单峰数据进行聚类。降维实际上试图通过找到最适合数据的投影来克服这个问题,无论它们代表什么。一般来说,聚类是一种探索技术,而不是解决方案。为了合理地拆分数据,您需要知道您想如何做到这一点,具体目标是什么 - 但在许多情况下,您可以构建一个基于规则的系统,而不是集群一个
      • 一般来说,没有简单的解决方案,这不是一个简单的问题。概述的两种方法可以帮助您,但没有一种方法可以“完成您的工作”。如果您的时间有限,这只是一些“开箱即用的解决方案” - 这是您唯一可以获得的东西。不幸的是,要做到这一点“正确”,您将需要大量时间和精力来执行真实的数据分析,涉及许多可视化、统计方法和艰苦的工作
      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2012-01-22
      • 2012-01-02
      • 2019-10-14
      • 2014-04-21
      • 2012-12-05
      • 2017-12-24
      • 1970-01-01
      相关资源
      最近更新 更多