Database 对超大数据集进行聚类

Database 对超大数据集进行聚类,database,r,matlab,machine-learning,cluster-analysis,Database,R,Matlab,Machine Learning,Cluster Analysis,我正在做一个项目,作为我班级课程的一部分。这是一个高级数据库管理系统的项目,它是这样进行的 1下载大量图像1000000->完成 2根据它们的视觉相似性对它们进行分类 A查找每个图像的直方图->完成 bNow根据图像的视觉相似性对图像进行分组 现在,我对2b部分有一个问题。以下是我所做的: AI使用matlab找到了每个图像的直方图,现在使用1D矢量16 X 16 X 16表示。单个向量中有4096个值 BI生成了一个ARFF文件。它的格式如下。每个图像有1000000个直方图1。因此,文件中有

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

1下载大量图像1000000->完成

2根据它们的视觉相似性对它们进行分类

A查找每个图像的直方图->完成

bNow根据图像的视觉相似性对图像进行分组

现在,我对2b部分有一个问题。以下是我所做的:

AI使用matlab找到了每个图像的直方图,现在使用1D矢量16 X 16 X 16表示。单个向量中有4096个值

BI生成了一个ARFF文件。它的格式如下。每个图像有1000000个直方图1。因此,文件中有1000000行,每行图像中有4097个值\u name+4096个双值代表直方图

C文件大小为34 GB。最大的问题是:我该如何对这个文件进行集群

我试着使用WEKA和其他在线工具。但他们都被绞死了。Weka被卡住了,说正在读文件

我的桌面上有一个8GB的RAM。我没有访问任何集群的权限。我试着在谷歌上搜索,但找不到任何关于集群大型数据集的有用信息。如何对这些条目进行聚类

我是这样想的:

方法一:

我应该五万件一批的做吗?例如,对前50000个条目进行聚类。找到尽可能多的集群称之为k1,k2,k3。。。千牛

然后选择下一个50000并将其分配给这些集群中的一个,依此类推?这将是所有图像的精确表示。因为,聚类仅在前50000张图像的基础上完成

方法二:

是否使用50000个随机条目进行上述处理

有人有什么意见吗

谢谢

编辑1:


可以使用任何聚类算法。

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


备选方案:降低数据的竞争性,例如,将其降低到1024个双倍值的直方图。

Weka也不是你的最佳选择。我发现,当涉及到集群时,它的功能更强大,速度更快。我运行过的最大的是128维的300万个对象

然而,请注意,在这种规模和维度下,您主要关注的应该是结果质量

如果您运行例如k-means,结果基本上是随机的,因为您使用4096个柱状图仓位太多,特别是使用平方欧几里德距离

为了得到好的结果,你需要退后一步,再想一想

是什么使两个图像相似。你如何衡量相似性?首先验证你的相似性度量

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

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

根据我的经验,颜色直方图在8个色相区x 3个饱和度区x 3个亮度区的范围内效果最好。除此之外,装箱的粒度太细。而且它破坏了你的相似性度量


如果您运行k-means,那么通过添加更多数据,您将一无所获。它搜索统计平均值,添加更多数据不会找到不同的平均值,只会找到更多的精度数字。因此,您也可以只使用10k或100k图片的样本,您将得到几乎相同的结果。

我认为这个问题对于stackoverflow来说太模糊了,因为它现在是这样的,但我不明白为什么您要将它们全部聚集在一起。只需做一个子样本,然后将其应用于其余部分。另外,我相信你可以对图像本身进行一些降维,这不仅会改善你的记忆问题,而且可能会通过消除一些不必要的噪音来提高性能。请解释为什么这个问题是模糊的。即使我做了以上所有的预处理,我也非常确定文件的大小不能小于10GB。话虽如此,即使是10GB的文件大小也是很大的!。不,我不知道亚抽样,所以我在这里发帖,因为这不是一个编程问题。没有代码或数据可供我们使用,而且在高级别上,事情还不清楚。例如,您甚至没有列出您想要使用的集群算法。这不需要成为一个编程问题。b这里不需要代码。这更像是一个算法问题。对大型数据集进行聚类是一个挑战,但聚类算法可能是used@Nikhil这是一个关于编程的问答网站,所以这里的人们期待着编程问题并喜欢解决编码问题。对于算法问题,这里有一个问题:如果使用随机样本得到“x”簇,我需要找到一个直方图w
hich表示每个“x”簇。。正当然后,拍摄剩下的图像。将其直方图与这些“x”直方图进行比较,然后将图像放在其直方图最匹配的簇中。你是这么说的吗?我不知道你的聚类是如何定义的,但如果它们是通过离中心最近的距离定义的,这是一种认可的方法。我可以使用任何聚类算法。然而,项目说明建议应使用AP集群。那怎么办?