R 具有真大矩阵的K-均值

R 具有真大矩阵的K-均值,r,cluster-analysis,weka,k-means,mahout,R,Cluster Analysis,Weka,K Means,Mahout,我必须在一个非常大的矩阵上执行k-means聚类(大约300.000x100.000个值,超过100Gb)。我想知道我是否可以使用R软件来执行此操作或weka。 我的计算机是一个多处理器,有8Gb的ram和数百Gb的可用空间 我有足够的空间进行计算,但加载这样一个矩阵似乎是R的问题(我不认为使用bigmemory软件包会帮助我和big matrix自动使用我的所有RAM,如果没有足够的空间,则使用我的交换文件) 所以我的问题是:我应该使用什么软件(最终与其他软件包或自定义设置相关联) 谢谢你帮助

我必须在一个非常大的矩阵上执行k-means聚类(大约300.000x100.000个值,超过100Gb)。我想知道我是否可以使用R软件来执行此操作或weka。 我的计算机是一个多处理器,有8Gb的ram和数百Gb的可用空间

我有足够的空间进行计算,但加载这样一个矩阵似乎是R的问题(我不认为使用bigmemory软件包会帮助我和big matrix自动使用我的所有RAM,如果没有足够的空间,则使用我的交换文件)

所以我的问题是:我应该使用什么软件(最终与其他软件包或自定义设置相关联)

谢谢你帮助我

注意:我使用linux。

我保留了(对特定用户可能有用的)但我同意Gavin的评论!
要在大数据上执行k-means聚类,可以使用R的专有实现中实现的rxKmeans函数(我知道这可能是个问题);此函数似乎能够管理此类数据。

它必须是K-means吗?另一种可能的方法是首先将数据转换为网络,然后应用图聚类。我是《生物信息学》的作者,这是一种在生物信息学中经常使用的算法。链接到的实现应该可以轻松地扩展到具有数百万个节点的网络——假设您有100K个属性,您的示例将有300K个节点。使用这种方法,数据将在数据转换步骤中自然地被删减,而这一步骤很可能成为瓶颈。如何计算两个向量之间的距离?在我处理的应用程序中,我使用了Pearson或Spearman关联,MCL附带了软件,可以在大规模数据上高效地执行此计算(它可以使用多个CPU和多台机器)


数据大小仍然存在问题,因为大多数聚类算法将要求您至少执行一次所有成对比较。您的数据真的存储为一个巨大的矩阵吗?输入中有很多零吗?或者,您是否有丢弃较小元素的方法?您是否可以访问多台计算机来分发这些计算?

因为我们对数据和提问者的目标一无所知 对于它,只需几个常规链接:
-还有很多论文和书。

检查Mahout,它将在大型数据集上执行k表示:


使用R可能会遇到的问题是,将这些数据存储在矩阵中会将索引限制为最大整数值(2147483647),而您拥有的元素比这还要多。这不是内存限制,而是使用整数索引数据所造成的限制。你能取而代之的是对矩阵进行采样吗?为什么要一次对所有300000个对象进行聚类?为什么不取一个较小的样本,对其进行聚类,然后将剩余的对象分配到最近的聚类?您要查找多少个聚类?是否有已知集群的样本进行验证?在StackOverflow上,使用站点外链接的简单答案最多是不被接受的。如果该页面移动或不可用,会发生什么情况?试着在你的答案中包含足够的信息,这样它就独立了——当然,这个想法是从哪里来的,但不要只是在答案中使用一个链接。micans+1 MCL,+1如果可以的话,对于“如何计算两个向量之间的距离?”——很重要。Delphine,第一次对快速运行的样本训练集进行实验,看看它们是如何聚集的。+1不是为了交互,而是为了较小的样本训练集-非常重要。Delphine如果你能多订婚就好了。我想知道您的数据集是否真的最好地描述为单位,每个单位都有100K个属性——因此我的问题是它是否稀疏(零丰富)。如果是这样的话,向量之间的距离实际上可能更类似于集合之间的重叠类型的距离,并且在我看来加强了基于网络的方法的情况。