我怎么知道我的k均值聚类算法正遭受维数的诅咒?


12

我相信这个问题的标题说明了一切。


3
我认为您将必须为我们澄清症状的含义。
mdewey

如果“症状”是“测试”的手动版本,那么也许您可以获取数据集的子样本-可能是样本大小的66%,执行分析(在您的情况下为kmeans),然后查看其跳动程度结果是。例如,您可以查看将特定观测值分配给同一群集的频率。再说一次,可能不值得付出努力。如果您担心维数问题的可能性,那么您就有机会解决这个问题。您可能会考虑其他一些可以降低维数的聚类方法。
–generic_user

@generic_user如果该评论是答案,我将其视为可接受的答案:)
mathieu

1
国际海事组织,这个问题很明显,可以继续公开。
gung-恢复莫妮卡

1
通常,您会比“维数诅咒”更早地遇到k均值的严重问题。如果属性性质良好,则k均值可以处理128维数据(例如SIFT颜色向量)。在某种程度上,它有时甚至可以处理10000维的文本数据。诅咒的理论模型永远不会适用于真实数据。较大的问题是功能无比,稀疏性以及无法可视化和仔细检查结果。
已退出--Anony-Mousse'Aug

Answers:


18

这有助于思考什么是“维数的诅咒”。CV有几个非常好的线程值得阅读。这是一个开始的地方: 向孩子解释“维数的诅咒”

我注意到您对这如何应用于均值聚类感兴趣。值得注意的是, -means是一种搜索策略,用于(仅)最小化平方的欧几里得距离。有鉴于此,值得思考欧几里得距离与维数诅咒的关系(请参阅:为什么欧几里得距离不是高维的好度量?)。 ķķ

这些线程的简短答案是,空间的体积(大小)相对于尺寸数以惊人的速度增加。甚至维度(对我来说,这似乎都不是一个“高维度”)也可以带来诅咒。如果您的数据在整个空间中均匀分布,则所有对象之间的距离大约相等。但是,正如@ Anony-Mousse在回答该问题时指出的那样,这种现象取决于空间中数据的排列方式。如果它们不统一,则不一定有这个问题。这就产生了一个问题,即统一分布的高维数据是否非常普遍(请参阅:“维数的诅咒”是否确实存在于实际数据中?)。 10

我认为重要的不一定是变量的数量(数据的字面量纲),而是数据的有效量纲。在均值的维度“太高” 的假设下,最简单的策略是计算您具有的特征数。但是,如果要考虑有效维数,可以执行主成分分析(PCA)并查看特征值如何下降。通常,大多数变化都存在于几个维度中(通常跨越数据集的原始维度)。从有效维数实际上要小得多的意义上讲,这意味着您不太可能遇到均值问题。 10ķķ

一种更复杂的方法是检查数据集中成对距离的分布,沿着@ hxd1011在他的答案中建议的线。查看简单的边际分布将给您一些可能的均匀性的提示。如果将所有变量归一化为在区间内,则成对距离必须在区间内。高度集中的距离会引起问题;另一方面,多模式分布可能是有希望的(您可以在我的答案中看到一个示例:如何在聚类中同时使用二进制变量和连续变量?)。[0 1个][0 d]

然而,均值是否将“起作用”仍然是一个复杂的问题。在您的数据中存在有意义的潜在分组的假设下,它们不一定存在于您所有的维度或最大化变化的构造维度中(即,主成分)。聚类可能处于较低的变化维度(请参阅:PCA示例,其中低变化的PC是“有用的”)。也就是说,您可能会在几个维度上或在较低版本的PC上使群集的点紧靠在彼此之间,并在它们之间很好地分隔开,但在较高版本的PC上的群集却并非遥不可及,这会导致均值忽略您要寻找的群集,而是选择人造群集(可以在此处查看一些示例:ķķ如何理解K-means的缺点)。


事实证明,已经有了用于多种学习的标签(应该先看!)。总而言之,对于那些可能不知道的人来说,这种想法是,尽管高维数据在整个空间上趋于稀疏,但该空间某些超曲面上却可能密集。
GeoMatt22 '16

+1为最佳答案。您能否在特征值部分进行详细说明?如果有效维度较小,那么您是否建议进行PCA并仅保留特征值较高的前几个分数?
DataD'oh

@ DataD'oh,那肯定是一种可能性,但我要说的是您不必这样做。实际上,数据不是高维的(当仅前几个特征向量具有高特征值时),因此您不必做任何事情-维度的诅咒将不再适用。
gung-恢复莫妮卡

@gung我发布了一个新问题。我希望它不会太琐碎。
DataD'oh

7

我的答案不限于K均值,而是检查对于任何基于距离的方法,我们是否都有维数的诅咒。K均值基于距离量度(例如,欧几里得距离)

在运行算法之前,我们可以检查距离度量分布,即数据中所有对的所有距离度量。如果你有数据点,你应该有0.5 Ñ ñ - 1 的距离度量。如果数据太大,我们可以检查一个样本。ñ0.5ññ-1个

如果我们有维数问题的诅咒,那么您将看到的是,这些值彼此非常接近。这似乎很违反直觉,因为这意味着每个人都接近或远离每个人,并且距离度量基本上是无用的。


1个6X一世=01个XĴ=01个X一世-XĴ2dX一世dXĴrunifrnorm

这是从1到500的尺寸模拟,特征是从0到1的均匀分布。

plot(0, type="n",xlim=c(0,0.5),ylim=c(0,50))
abline(v=1/6,lty=2,col=2)
grid()

n_data=1e3
for (p in c(1:5,10,15,20,25,50,100,250,500)){
    x=matrix(runif(n_data*p),ncol=p)
    all_dist=as.vector(dist(x))^2/p
    lines(density(all_dist))
}

在此处输入图片说明


1
P
amoeba

1
我之所以投票,是因为在高尺寸下证明了欧几里得收缩现象。但是答案并没有显示出诅咒使k均值聚类的痛苦。苦难意味着在高维中,合理分离的群集(而不是像您一样的均匀随机数据)可能无法像在低维中一样成功地被发现。您没有碰到这个话题。
ttnphns

P

@ttnphns感谢您的评论和支持。我将看到是否可以添加一段来讨论对k均值的影响。
海涛杜
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.