Microsoft R 和 Open Source R,哪一个才最适合你?
由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。
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,哪一个才最适合你?的更多相关文章
- R(二): http与R脚本通讯环境安装
结合实际的工作环境,在开始R研究的时候,首先着手收集的就是能以Web方式发布R运行结果的基础框架,无耐的是,R一直以来常使用于个人电脑的客户端程序上,大家习惯性的下载R安装包,在自己的电脑上安装 -- ...
- THE R QGRAPH PACKAGE: USING R TO VISUALIZE COMPLEX RELATIONSHIPS AMONG VARIABLES IN A LARGE DATASET, PART ONE
The R qgraph Package: Using R to Visualize Complex Relationships Among Variables in a Large Dataset, ...
- 【R语言系列】R语言初识及安装
一.R是什么 R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两个人共同发明. 其词法和语法分别源自Schema和S语言. R定义:一个能够自由幼小的用于统计计算和绘 ...
- python中换行,'\r','\n'及'、'\r\n'
'\r'的本意是回到行首,'\n'的本意是换行. 所以回车相当于做的是'\r\n'或者'\n\r'.'\r'就是换行并回行首, '\n'就是换行并回行首,用'\r\n'表示换行并回行首. window ...
- 【R笔记】给R加个编译器——notepad++
R的日记-给R加个编译器 转载▼ R是一款强大免费且开源的统计分析软件,这是R的长处,可也是其“缺陷”的根源:不似商业软件那样user-friendly.记得初学R时,给我留下最深印象的不是其功能的强 ...
- 【R语言入门】R语言中的变量与基本数据类型
说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...
- java.io.IOException: Could not delete path 'D:\mycode\reactnative\SecondTest\android\app\build\generated\source\r \release\android\support\v7
问题解决 直观上看是没有删除某个文件,产生的IOException异常,实际上是因为上次编译导致的缓存没有清空导致的. 进入到android目录下运行下面代码清除上次打包时的缓存: ./gradlew ...
- 【转载】 C++中回车换行(\n\r)和换行(\r)的区别
原文:http://blog.csdn.net/xiaofei2010/article/details/8458605 windows下的点一下回车,效果是:回车换行,就是\r\n unix系统下的回 ...
- R统计建模与R软件
教材目录 第一章 概率统计的基本知识 第二章 R软件的使用 第三章 数据描述性分析 第四章 参数估计 第五章 假设检验 第六章 回归分析 第七章 方差分析 第八章 应用多元分析(I) 第九章 应用多元 ...
- 【R与数据库】R + 数据库 = 非常完美
前言 经常用R处理数据的分析师都会对dplyr包情有独钟,它强大的数据整理功能让原始数据从杂乱无章到有序清晰,便于后期进一步的深入分析,特别是配合上数据库的使用,更是让分析师如虎添翼,轻松搞定Exce ...
随机推荐
- Redis事件机制(未写完)
Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件:Redis通过套接字与客户端连接,文件事件是服务器对套接字操作的抽象. 时间事件:Redis服务器中的一些操作需要给定的时间 ...
- golang pprof 监控系列(1) —— go trace 统计原理与使用
golang pprof 监控系列(1) -- go trace 统计原理与使用 服务监控系列文章 服务监控系列视频 关于go tool trace的使用,网上有相当多的资料,但拿我之前初学golan ...
- Hyperf框架环境搭建
https://hyperf.wiki/2.2/#/README 1.PHP 7.2 以上查看PHP : php -vcurl 127.0.0.1:9501 查看是否装swoole: php --ri ...
- selenium之文件的上传
文件的上传:主要是两种实现方法: 1.如果定位的元素是type类型是file类型的话,那么直接定位元素并使用send_keys方法完成文件上传 2.如果是非file类型的话,则需要使用第三方工具完成文 ...
- vue之列表渲染v-for
目录 简介 用法 v-for可循环的几种变量的展示 数组的循环展示 对象的循环展示 字符串的循环展示 数字的循环展示 v-for搭档key值的说明 js循环几种方式 基于索引的循环 数组的循环 数组基 ...
- pysimplegui之第一个程序,包括回调函数,事件,阻塞等待内容
自定义窗口 API 调用(您的第一个窗口) 总结一下:我遇到的坑, 比如拿输入框的内容的时候可以直接通过value[key] 几种窗口模式就是什么时候用timeout这个参数 关闭窗口可以的一边形式 ...
- Semantic Kernel 入门系列:🔥Kernel 内核和🧂Skills 技能
理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢? 首先我们需要把LLM AI的能力和原生代码的能力区分开来,在Semantic Kernel(以下简称SK),LLM的能力称为 sem ...
- 优化故事: BLOOM 模型推理
经过"九九八十一难",大模型终于炼成.下一步就是架设服务,准备开门营业了.真这么简单?恐怕未必!行百里者半九十,推理优化又是新的雄关漫道.如何进行延迟优化?如何进行成本优化 (别忘 ...
- Awesome GPT 来了!
大家好!我是韩老师. GPT, ChatGPT, OpenAI, LLM(大语言模型)等等技术的出现与应用,改变了许多的行业和人. 长期来看,类 GPT 的技术会对整个世界有着持续的改变. 我们几乎每 ...
- 关于Java中对象的向上转型和向下转型
什么是多态? 同一个类调用同一个方法会产生不同的影响/结果 这就是多态 public class Pet{ public void eat(){ System.out.println("Pe ...