我有一项任务是在SAS服务器上运行K-Means聚类算法但是内存不足。数据集是500G,我知道我可以将其下载以适应内存,但如果我想在整个数据上运行模型,那么Oracle R Enterprise(ORE)会帮我解决问题吗?
关于ORE和ORCH的其他相关问题:
由于
答案 0 :(得分:2)
你最好的选择是在Hadoop上使用Mahout。 Mahout确实支持K-Means聚类,如here所述,在Hadoop上设置Mahout非常容易。
如果您可以使用少量计算机构建自己的Hadoop群集,则运行Mahout大约需要30分钟左右。当我尝试几天后this blog给了我极大的帮助。
你可以做同样的事情,节省大量的金钱和时间。
我没有谈到使用Oracle R,这只是因为,首先我对Oracle R了解不多但是我知道Hadoop上的Mahout会比其他任何一个更好,因为有很多关于如何在短时间内完成任务的资源。如果您真的在寻找Oracle R,那么这不是答案,否则它确定无疑。
答案 1 :(得分:0)
我几天前刚开始使用ORE,所以我还不是专家,但很容易判断它有K-means功能。请参阅ORE 1.3文档here并搜索ore.odmKMeans函数。我已经检查过,它就在那里。所以你的第一个问题的答案是肯定的 - 在ORE中有一个K-means函数。
关于你关于记忆问题的第二个问题。要使用ORE,您需要拥有一个Oracle数据库 - 甚至更好的是Exadata Oracle机器(这些机器通常具有大约1Tb的内存),并且许多ORE R功能被实现为在数据库级别上作为SQL运行,因此它在数据库上运行并使用比将数据加载到R的内存中更少的内存,甚至那些不使用SQL下推但使用更常规的R方法的函数使用数据库机器的内存,这通常比任何R机器具有更多的内存。老实说,我还没有看过ORE K-means的实现,所以我不知道这个函数是什么情况。