【发布时间】:2011-07-25 05:23:24
【问题描述】:
我正在尝试对大型(千兆字节)数据集进行聚类。为了进行聚类,您需要每个点到每个其他点的距离,因此您最终会得到一个 N^2 大小的距离矩阵,在我的数据集的情况下,它的数量级为艾字节。当然,Matlab 中的 Pdist 会立即爆炸 ;)
有没有办法先对大数据的子集进行聚类,然后再对相似的聚类进行一些合并?
我不知道这是否有帮助,但数据是固定长度的二进制字符串,所以我使用汉明距离 (Distance=string1 XOR string2) 计算它们的距离。
【问题讨论】:
-
你的位串有多长?
-
128 位、160 位、256 位……它们是加密哈希。我试图将它设置得足够通用,以便我可以为不同的人做。是否有任何依赖于长度的技巧?
-
几个月前我也有类似的问题。 stackoverflow.com/questions/4153981/…不知道这个解决方案对你有用吗?
-
@Jie,我的实验方向完全不同,但我会试一试,谢谢你的想法。
-
并非所有聚类算法都需要计算所有 n^2 距离。例如,谱聚类方法建立在相似关系的传递特性之上,以允许使用非常稀疏的距离/亲和矩阵进行聚类(实际上只计算了所有 n^2 距离的一小部分)。如果这种方法听起来也适用于您的情况,我很乐意提供更多详细信息。
标签: matlab cluster-analysis large-data