由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。

R 是一个开源统计软件,在分析领域普及的非常快。 在过去几年中,无论业务规模如何,很多公司都采用了 R 作为分析引擎(analytical engines)。 由于 R 是一个开源软件,考虑到分析行业的前景,许多领先的产品公司已经设计了他们自己的产品以便与 R 轻松地集成(easily integrate with R)。例如,我们可以将数据从 Tableau 传递到 R,在 R 中运行一些分析 将结果发送回 Tableau 以进行可视化。

不同的 R 产品

微软也以不同的方式进入了这一局面。 Revolution Analytics 是一家总部位于加利福尼亚州的公司,成立于 2007 年,开发了名为 Revolution R Enterprise 的企业版 R(an enterprise version of R)。这个在 2014 年推出的产品引入了一些可通过并行处理管理大数据的专有组件(proprietary components)和库(libraries)。 2015 年 1 月,微软收购了 Revolution Analytics 并重新命名了几款 Revolution Analytics 产品。 微软制造了一些免费的产品,其中一些是许可产品。 这些产品集包括 Microsoft R Open,Microsoft R Client 和 Microsoft R Server。

因此,市场上有 4 种不同的 R 产品(包括开源 R 或 CRAN R),其中 3 种是免费的,另外一种(Microsoft R Server)是获得许可的。有些人可能会对这些产品之间的差异感到困惑,以至于不知道哪一个才是最合适使用的 R 产品。

微软的产品相对较新,除了微软官方网站,网上没有太多的这些产品的相关文档。 虽然微软官网的这些产品都描述得很好,但我觉得有必要总结一下这四种产品的比较视图。

不同 R 产品的比较

在开始任何比较之前,请提及所有 R 用户都知道的开源 R(Open source R)的主要缺点(我们将在此称为 CRAN R)。 事实上 R 在内存上运行。 因此,R 代码分析数据所需的时间取决于您的计算机硬件。 如果数据超出内存限制,代码将崩溃(crash)。 因此,同一数据集的逻辑回归(a logistic regression),在一台机器需要 15 秒的运行时间在另一台高端计算机上可能需要 10 秒。 它也可能无法在低配置计算机中运行。

Microsoft R 产品试图在其产品的不同版本中解决 CRAN R 的这种限制。 现在让我们首先逐一了解 Microsoft R 产品的不同附加功能。

Microsoft R Open

该产品以前称为 Revolution R Open。Microsoft R Open(我们在此称之为 MRO)是 CRAN R 的一个小改进,主要有两个方面。 首先,MRO 使用多线程英特尔数学核函数库(multithreaded Intel Math Kernel Library,MKL)进行矩阵处理,如逆计算,矩阵乘法,矩阵分解等。但是要使用它,我们需要安装 MKL 库。 没有这个库,CRAN R 和 MRO 在执行效率方面是相同的。 其次,MRO 通过默认的 CRAN 存储库(CRAN repository)提供一致的静态 R 包。 我们可以通过 checkpoint 包使用特定版本的 R 包 一次又一次地重现代码。 除了上面这两方面,MRO 与 CRAN R 是相同的。

Microsoft R Client

Microsoft R Client(我们在后面称之为 MRC)是第一个支持并行计算的产品版本。 因此,可以通过它有效处理更大的数据集,但仅限于某些统计函数。 Microsoft(实际上由 Revolution Analytics 开发)开发了一些专有算法,用于一些可以处理并行化的统计计算。 例如,平均值或方差的计算可以很容易地并行化,但关联规则挖掘(association rule mining)可能不容易并行化。 目前,MRC 中有近 80 种不同的专有功能,可以实现数据的并行化。

MRO 是 Windows 下的免费软件,我们可以使用上述专有功能。 这些函数名称以后缀 “rx” 开头。 例如,glm()函数是用于拟合广义线性模型的 CRAN R 函数,但rxGlm()可以执行相同的操作并使用并行化。 但是,在 MRO 中,并行化最多只能有两个线程。

Microsoft R Server

Microsoft R Server(我们现在称之为 MRS)使用相同的专有函数进行并行化,但它可以在多个线程(两个以上)中进行处理。 它还可以处理多个数据节点(i.e. computers)中的数据。 MRS 有各种平台,如 R Server for Linux,R Server for Windows,R Server for Hadoop,R Server for Teradata DB,SQL Server R Services 等,这些平台可以在各种操作系统和数据库中实现 R 的无缝执行。

作为许可产品,MRS 具有与之配套的支持服务,我们也可以将 R 代码作为独立的 Web 服务运行。 使用 DeployR 软件包可以为为具有集群网络节点和计算节点的多服务器拓扑(multi-server topologies)操作 MRS 引擎。

下面我试图总结以上内容,并尝试针对不同场景看到最好的 R 产品。 希望这有助于人们做出决定。

英文原文:https://www.linkedin.com/pulse/microsoft-r-open-source-which-suits-you-best-tathagata-mukhopadhyay

作者:Tathagata Mukhopadhyay  |  翻译:Steven Shen

·end·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Microsoft R 和 Open Source R,哪一个才最适合你?相关推荐

  1. TensorFlow 还是 PyTorch?哪一个才更适合编写深度神经网络?

    作者 | Jordi TORRES.AI deephub翻译组 | Alexander Zhao 来源 | DeepHub IMBA(ID:deephub-imba) 编程实现神经网络的最佳框架是什么 ...

  2. Could not delete path ‘D:\AndroidStudioProjects\LargeScreen\app\build\generated\source\r\debug\andro

    问题: 在运行 AndroidStudio 项目到模拟器时,出现如下报错信息 Could not delete path 'D:\AndroidStudioProjects\LargeScreen\a ...

  3. 生活中回归分析实际例子_回归分析中R方和调整R方的区别

    介绍 当我开始我的数据科学之旅时,我探索的第一个算法是线性回归. 在理解了线性回归的概念和算法的工作原理之后,我非常兴奋地使用它并在问题陈述中做出预测.我相信你们大多数人也会这么做的.但是一旦我们建立 ...

  4. 在$x_0$处全导数可逆的函数$f:\mathbf{R^n}\to\mathbf{R^n}$的一个性质

    注:该文章宣布报废,因为结论是错误的.关键的错误证明已经用红字显示.我是看了matrix67的函数上某一点导数为正,该点邻域不一定形成单增区间才想起自己的错误的. 设$f:\mathbf{R}^n\t ...

  5. mysql的R树_GIS笔记——R树:一种用于空间查找的动态索引结构(算是节译)

    R树简介. R树是一种与B树类似的高度平衡树.这种索引是动态的,不需要定期重建.索引记录(Index Records)保存在叶节点中,索引记录包含指向数据对象的指针.注意原文中将索引的终端称为索引记录 ...

  6. R语言(The R Programming Language)

    R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支. ...

  7. [R]第一节 初始R语言

    文章目录 R语言的特点 R备受青睐的原因 R的官方网站 ->[R官网](cran.r-project.org) R语言的基本规则 使用帮助 保存,删除对象 R包 基本运算 变量赋值 交互式编程 ...

  8. R语言学习之R的环境系统

    R的环境系统 1.1 文件系统 1.2 环境的含义与规则 1.3 R的环境系统 1.3.1 操作R环境 1.3.1.1 相关函数 1.3.1.2函数的操作与输出 1.3.2.1 活动环境 1.3.2. ...

  9. 回归分析中R方和调整R方的区别

    作者|ANIRUDDHA BHANDARI 编译|VK 来源|Analytics Vidhya 概述 理解R方和调整R方的概念 了解R方和调整R方之间的关键区别 介绍 当我开始我的数据科学之旅时,我探 ...

最新文章

  1. [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails
  2. install命令和cp命令的区别
  3. GetLastError()和FormatMessage()
  4. java程序中my.ini_帮忙写个JAVA 读写ini配置文件小程序!!!!!
  5. 关于机器学习你必须要了解的事情
  6. css3正方体选中父层 子层解体_CSS3 :nth-child(n)选择器 匹配属于其父元素的第N个子元素...
  7. 电大计算机机考excel,中央电大计算机应用机考excel电子表格模板题库存(118页)-原创力文档...
  8. [Ubuntu] 使用 ibus 输入汉字
  9. 信息架构:看不到不代表不存在
  10. 模板 - 计算几何(合集)
  11. matlab 切比雪夫逼近,切比雪夫等波纹逼近.PDF
  12. ip计算机网络适配器,如何更改计算机网络ip
  13. 16Aspx.com源码2013年10月到2013年12月详细
  14. android 论坛_Android 应用多开对抗实践
  15. 2019面试宝典之.Net
  16. MySQL期末复习题和答案
  17. 如何利用福禄克FLUKE 718 校准压力开关
  18. dellT440和T620重装系统问题总结
  19. linux中read函数的用法,Linux中read命令的简介及使用方法
  20. faile什么意思_fail是什么意思_fail在线翻译_英语_读音_用法_例句_海词词典

热门文章

  1. 10个解放双手实用在线工具,有些代码真的不用手写
  2. 某程序员发现新来女同事简历造假!原来是培训机构出身!纠结怎么处理,网友评论亮了!...
  3. 图解|通用搜索引擎背后的技术点
  4. 纯!干!货!2019年19个Docker面试问题和解答!一线大厂必看!
  5. 领导力,就是这5个问题
  6. 推荐7个Mac端冷门但是一发现就无法自拔的软件
  7. 任务流程管理,从繁杂的项目管理中解脱出来
  8. 控制~线性二次型最优控制
  9. 卷积、傅立叶变换、拉普拉斯变换、Z变换
  10. 排序算法---希尔排序(java版)