我一直在研究支持向量机(SVM),最近开始阅读有关群集的文章。使用SVM时,我们不需要担心数据的维度大小,但是,我了解到,在聚类中,由于“维度的诅咒”,维度大小是个大问题。此外,稀疏性和数据大小也会极大地影响您选择的聚类算法。所以我有点理解,没有用于聚类的“最佳算法”,这一切都取决于数据的性质。
话虽如此,我想问一些关于聚类的基本问题。
当人们说“高维度”时,具体是什么意思? 100d高维吗?或者这取决于您拥有的数据类型?
我在网站上看到的答案就是说“在100维的数据上使用k-means是很常见的”,如果这是真的,那么对于其他使用的聚类算法是否适用与k-means相同的距离度量
在论文的第649页,Rui Xu等人的“聚类算法概述”(http://goo.gl/WQyuxo)中,表格显示CURE具有“处理高维数据的能力” ,并且想知道是否有人对他们谈论的维度有多高的想法。
如果我想对具有足够大小的高维数据执行聚类,这是从初始大数据中随机采样的,那么哪种算法适合使用?据我所知,基于密度的算法(如DBSCAN)在随机抽样下表现不佳。
有人能告诉我CURE在高维数据上的表现有多好?直观地说,考虑到“治疗维度”,我认为CURE表现不佳,但是如果有一些详细的结果会很好。
有没有关于解释聚类算法的优缺点的网站/论文/教科书?我已经看过一些关于基本算法优缺点的论文,即k-means,层次聚类,DBSCAN等,但想了解更多其他算法,如CURE,CLIQUE,CHAMELEON等。
很抱歉一下子就问了这么多问题!! 如果有人能回答我的任何一个问题,那将是很棒的。此外,如果我提出了一个问题或提出完全毫无意义的问题,请不要犹豫告诉我。 如果有人知道关于聚类的一本很好的教科书/调查论文详细阐述了这些主题,请告诉我! 提前谢谢。
答案 0 :(得分:3)
您可能对此调查感兴趣:
Kriegel,H.P.,Kröger,P。,& Zimek,A。(2009)。
聚类高维数据:子空间聚类,基于模式的聚类和相关聚类的调查。
来自ACM的知识发现交易数据(TKDD),3(1),1。
其中一位作者写了DBSCAN,所以它可能会帮助你解决DBSCAN问题。
100维数据可以是高维数据。如果它不是稀疏。对于NLP人来说,100d是可笑的,但他们的数据很特别。它主要来自二进制特性(单词存在或不存在),因此它实际上每个维度中的信息少于1位...如果你有密集 100维数据,你通常有麻烦了。
同一作者的相关/跟进调查中有一些不错的数据:
Zimek,A.,Schubert,E。,& Kriegel,HP(2012)。
高维数值数据中无监督异常检测的调查。
统计分析与数据挖掘,5(5),363-387。
他们已经很好地分析了这些数据的距离函数的行为。其实质是: 高维数据可能很难 - 或很容易;这一切都取决于信噪比。如果您只有尺寸承载信号,额外的尺寸可以使您的问题更容易。如果额外的尺寸分散注意力,事情就会崩溃。
这也可以解释为什么SVM的“内核技巧”有效 - 它并没有真正添加信息内容;增加的维度只是虚拟的,而不是内在的。您拥有更大的搜索和解决方案空间;但是你的数据仍然在这个空间内的低维流形上。
k-意味着高维数据的结果往往变得毫无意义。在许多情况下,他们仍然“足够好”;因为质量通常并不重要,任何凸分区都会这样做(例如,用于图像相似性的词袋方法似乎没有通过“更好”的k均值聚类得到显着改善)
CURE,似乎也使用正方形(如k-means)应该遇到同样的问题。对于大数据,所有平方和值变得越来越相似(即任何分区都与其他任何分区一样好。)
是的,有很多教科书,调查和研究试图比较聚类算法。但最终,涉及的因素太多了:你的数据是什么样的,你是如何预处理它的,你有一个精心挑选的适当的距离测量,你的实现有多好,你有速度的索引加速吗?一些算法等等 - 没有经验法则;你将不得不试一试。