聚类SUPER大数据集

时间:2013-11-13 00:41:47

标签: database r matlab machine-learning cluster-analysis

我正在研究一个项目,作为课程的一部分。它是一个高级数据库管理系统项目,它就是这样的。

1)下载大量图像(1000,000) - >完成

2)根据他们的视觉相似性对他们进行聚类

a)找到每个图像的直方图 - >完成

b)现在根据视觉相似度对(聚类)图像进行分组。

现在,我遇到了2b部分的问题。这是我做的:

A)我使用matlab找到了每个图像的直方图,现在用一维矢量(16×16×16)表示了它。单个向量中有4096个值。

B)我生成了一个ARFF文件。它具有以下格式。有1000,000个直方图(每个图像1个,文件中1000,000个行)和每行4097个值(image_name + 4096个双值表示直方图)

C)文件大小为34 GB。大问题:如何解决这个问题?

我尝试使用WEKA和其他在线工具。但他们都挂了。 Weka陷入困境并说“读取文件”。

我的桌面上有8 GB的RAM。我无法访问任何群集。我尝试使用谷歌搜索,但找不到有关聚类大型数据集的任何帮助。如何对这些条目进行聚类?

这就是我的想法:

方法一:

我应该分批进行50,000次还是什么?比如,聚集前50,000个条目。找到尽可能多的簇称为k1,k2,k3 ...... kn。

然后选择下一个50,000并将它们分配给其中一个群集,依此类推?这是否是所有图像的准确表示。因为,只在前50,000张图像的基础上进行聚类!!

方法二:

使用随机50,000个条目执行上述过程?

任何一个输入?

谢谢!

编辑1:

可以使用任何聚类算法。

2 个答案:

答案 0 :(得分:1)

对于独立的图片集运行几次会导致难以合并的不同群集群集。因此,两个相似的图像被放置在不同的簇中。我会为一组随机图像(尽可能大)运行聚类算法,并使用这些聚类定义对所有其他图像进行排序。

替代方案:降低数据的复杂性,例如:到1024个双值的直方图。

答案 1 :(得分:1)

Weka也不是你最好的。在集群方面,我发现ELKI更强大(更快)。我跑过的最大的是128个维度的约300万个物体。

但请注意,在此尺寸和维度上,您的主要关注点应该是结果质量

如果您运行,例如k-means,结果将基本上是随机的,因为你使用4096个直方图箱(方式太多,特别是平方欧氏距离)。

要获得良好的结果,您需要再退一步想想

  1. 是什么让两张图片相似。你怎么测量相似度? 首先验证您的相似性度量。

  2. 哪种算法可以使用这种相似概念? 首先在小数据集上验证算法。

  3. 如何使用索引或并行来扩展算法?

  4. 根据我的经验,颜色直方图在8个色带的范围内效果最佳,色调为x 3个色带,饱和度为3个色温箱。除此之外,分档太精细了。加上它会破坏你的相似性度量

    如果你运行k-means,你可以通过添加更多数据来获得任何东西。它搜索统计意味着并且添加更多数据将找不到不同的平均值,而只是更多的精度数字。所以你也可以使用只有10k或100k图片的样本,你会得到几乎相同的结果。