1

我的任务是在 SAS 服务器上运行 K-Means 聚类算法,但内存不足。数据集是 500G,我知道我可以对其进行采样以适应内存,但如果我想在整个数据上运行模型,Oracle R Enterprise (ORE) 会帮助解决我的问题吗?

关于 ORE 和 ORCH 的其他相关问题:

  1. Oracle R 软件包是否包含任何聚类算法?是否有可用的 Oracle R 软件包列表?
  2. 如果我在 Oracle R Enterprise 中运行 kmeans 算法(R CRAN 包),我还会遇到内存问题吗?
  3. BDA 中是否有任何可用的 R 集群包被编写为在分布式 Hadoop 集群上运行?

谢谢

4

2 回答 2

2

您最好的选择是在 Hadoop 上使用 Mahout。Mahout 确实支持此处所述的 K-Means 集群,并且在 Hadoop 上设置 Mahout 非常容易。

如果您可以使用几台机器构建自己的 Hadoop 集群,那么运行 Mahout 将需要 30 分钟左右。当我几天前尝试时,这个博客对我帮助很大。

您也可以这样做并节省大量金钱和时间。

我没有在这里谈论使用 Oracle R,只是因为,首先我对 Oracle R 了解不多,但是我知道 Mahout on Hadoop 会比其他任何人更好地帮助你,因为有很多关于如何使用的资源在短时间内完成。如果您真的在寻找 Oracle R,那么这不是答案,否则它肯定会。

于 2012-06-01T05:35:54.923 回答
0

我前几天才开始使用 ORE,所以我还不是专家,但很容易看出它具有 K-means 功能。请参阅此处的ORE 1.3 文档并搜索 ore.odmKMeans 函数。我已经检查过了,它在那里。所以你的第一个问题的答案是肯定的——ORE 中有一个 K-means 函数。

关于你关于内存问题的第二个问题。要使用 ORE,您需要有一个 Oracle 数据库 - 更好的是 Exadata Oracle 机器(这些通常有大约 1Tb 内存),并且许多 ORE R 函数被实现为在数据库级别作为 SQL 运行,因此它在数据库上运行并使用与将数据加载到 R 的内存相比,内存更少,甚至那些不使用 SQL 下推但使用更常规的 R 方法的函数使用数据库机器的内存,它通常比任何 R 机器具有更多的内存。老实说,我还没有看过 ORE K-means 的实现,所以我不知道这个函数是什么情况。

于 2013-02-26T03:36:01.480 回答