用R & Python在云端运行可扩展数据科学

前言

如今,数据科学变得越来越复杂。这种复杂性由下面三个因素导致:

  1. 增长的数据生产能力 —— 环视四周,数的出多少个能产生数据的设备呢?如果你用笔记本电脑来浏览本文的话算一个,如果身边有智能手机(以及安装的APPs)的话再加一个,如果带了健身手环的话还要加一个,驾驶的汽车(有些情况下)也算一个 —— 它们都在持续不断地生产数据。现在设想今后几 年内的情景,你所使用的冰箱、家里的温度调节器、穿戴的衣物、兜内的钢笔以及喝水的水壶都会嵌入传感器,不断向数据科学家(和数据库)传输数据用来分析。
  2. 低廉的数据存储成本 —— 我们来做个猜测。猜一猜,把自古以来全球所有的音乐存储起来需要花费多少钱呢?你的答案是什么?我的估计是总花费远不到1000美元。
  3. 廉价的计算能力 —— 看一下最近发布的一款笔记本电脑性能配置清单。一个拥有64GB RAM的Xeon处理器加上Quadro的GPU。这台机器预计售价不到2000美元,重量约为2.5kg。还需要我多说什么吗?

总之,我们正在源源不断地生产数据(当你阅读本文时,你也将成为一个数据样本),我们能以极低的成本存储这些数据,并且对它们做计算和仿真处理。

为什么在云端进行数据科学?

那我们为什么要把数据放在云端处理呢?当你看到一台笔记本电脑就配备64GB RAM时,不禁会问我们真的需要把数据送到云端吗?答案绝对是需要的,我们能找出一大堆理由来。下面就列出几条:

需要运行可扩展的数据科学:让我们回到几年前。在2010年,我进入一家跨国保险公司组建数据科学部门。其中的一项工作就是采购了一台16GB RAM的服务器。由于是新组建部门,我们按照超前3~5年的标准采购。当初类似星形的组合结构,随着我们的雇员增加而无法扩展。不仅因为组内成员增长,数据量也呈指数级增长。由于只有一台实体机,我们陷入了困境!我们要不购买一台新的、性能更强的服务器,要不让现有这台满负荷运转(很快就将会过载)。你最不愿意看到的事情就是组里的数据科学家盯着屏幕等待未处理完的数据!而云端的机器只需轻击鼠标就能轻易扩展,省去了很多烦心事。因此即使数据量增长几倍,现在的脚本和模型依旧能够正常运行。

成本:可扩展性是一方面,成本也是一方面。假设你有一个问题需要解决,问题不常现,但是需要更高配的计算基础框架。这类情况很常见 —— 若想挖掘自己赞助的某次年度事件的社会媒体数据,但想实时查看结果。受制于成本,不可能为此而买一台新机器。很简单,这时只要租一台高配置的机器,租用几个小时或者几天就能解决问题,成本是新购机器的零头。

协作:当想和多位数据科学家同时工作时该如何是好?想必你不愿意他们每个人都在本地机器上复制一份数据和代码吧。

共享:当想和组员共享Python/R代码时会怎么办?你所使用的函数库可能在他那儿没有,或是版本太低。如何确保代码在不同机器间可迁移呢?

更大的机器学习系统开发生态系统:像AWS、Azure等一些云服务商,提供完整的生态系统帮你采集数据、生成模型并部署。如果使用实体机,都需要自己设置这些配置。

快速搭建原型:很多时候,你在路上或是和朋友交流时蹦出了新想法。这些情况下,使用云计算服务就会很便捷。能快速地完成原型开发,而不必担心版本和扩展性。在证实了自己的想法之后,也能方便地转化为产品。

现在你明白了数据科学的云计算的需求了吧。我们接着看看在云端执行R和Python的不同选择。

在云端做数据科学的选择:

Amazon Web Services (AWS)

Amazon是云计算界的老大。它们占据最大的市场份额,有完整的文档,提供便捷的环境支持快速扩展。这篇文章教你如何在机器上运行 R或者RStudio。如果云端的机器是Linux系统,那么Python是预装的。也可以自己安装额外需要的库函数和模块。

你可以使用 AWS machine learning,自己配置一台机器,甚至直接使用 DataScienceToolbox,它提供工具箱之外用到的所有软件。平台不仅仅是提供服务,还提供一些大规模数据集供你玩转大数据。

因为AWS是最流行的选择,它形成了完善的生态系统,并且(相对其它而言)更容易找到包含正确经验的各种资源。然而,Amazon相比其它家服务的价格通常更贵一些,甚至不提供某些服务。另外,由于某些原因机器学习的服务不对亚太地区开放。因此,如果你恰好位于这些地区,则需要选择北美的服务器,或者在云端自己配置一台虚拟机。

Azure Machine Learning

如果AWS是冠军的话,Azure就是冠军挑战者。Microsoft明确地加大力度提供一个执行端对端数据科学和机器学习流程的接口。你可以使用他们的 studio来搭建机器学习工作流程,在云端使用JuPyTer notebooks,或者直接使用ML APIs。

Microsoft已经在 虚拟学院提供了免费的电子文档和MOOC帮你入门。

IBM BlueMix:

如果说Amazon和Microsoft是在云计算领域有机地发展,那么IBM的思路略有不同。IBM开发了BlueMix平台,随后急速开始营销其服务产品。尽管提供方式不如AWS和Azure直接,但还是能在云端提供设置记事本而使用。

数据科学社区如何使用Watson提供的APIs也将会很有意思。

Sense.io:

如果觉得我之前写的那些都太复杂了,那就有必要了解一下Sense。Sense项目可以只点击一个按钮完成部署。他们提供的服务基于R、Python、Spark、Julia和Impala,成员之间灵活地合作和共享分析结果。观看这段视频初步了解这款产品:https://www.youtube.com/embed/n3RwCr9l4G8

Demino DataLabs

Domino位于旧金山,它提供一个安全的云计算环境,支持R、Python、Julia和Matlab等开发语言。平台提供版本控制功能和特色,使得组内合作和共享变得无比容易。

DataJoy

DataJoy目前像是Sense和DominoDataLab的剥离版本,但它今后如何发展很引人关注。目前,若想在云端运行R或者Python,不妨也试一试DataJoy。

PythonAnywhere

你如果正在开发网络应用,并需要搭建一个包含数据科学模块的网站,PythonAnywhere似乎是个完美的选择。正如名字所称,这个选择是基于Python开发,但它提供了一个单独的窗口来托管主机、搭建网站和进行数据科学分析。

在云端进行数据科学的挑战:

尽管云计算有其独有的优势,它也面临着不少挑战。我认为这些挑战在长期并不会停止云服务使用的增长,但是偶尔也会形成一些障碍。

和第三方共享数据的担忧:我不断地面临这项挑战。不论你如何试图向一部分人解释云端的安全性,把数据共享到公司外部总是令人担忧。通常这都是监管方需求或是法律要求,但往往给出的理由也很无厘头。例如,很多银行都不愿意上传它们的数据到云端进行分析。

需要上传/下载大量数据:由于数据中心存储大量的数据 —— 如果网络基础设施不稳固,一次性上传这些大数据将是巨大的挑战。

后记

云计算正因其带来的利益而受到更多的关注,这些云计算服务变得常态化(假如目前还没有)也将只是时间问题。希望你觉得这些云计算服务有用,当你需要的时候唾手可得。

如果你喜欢刚刚阅读的内容,也想学习大数据,请 订阅我们的邮件,关注我们的 推特或者 脸书页面。

原文链接: Running scalable Data Science on Cloud with R & Python(译者/赵屹华 审校/刘翔宇、朱正贵、李子健 责编/周建丁)

译者简介: 赵屹华,计算广告工程师@搜狗,前生物医学工程师,关注推荐算法、机器学习领域。

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2015-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

数据蒋堂 | 不要对自助BI期望过高

来源:数据蒋堂 作者:蒋步星 本文长度为1800字,建议阅读5分钟 本文分三个层面讨论自助BI是否能够真正满足用户需求。 从早期的多维分析(OLAP)到近年来的...

21310
来自专栏从流域到海域

物联网如何让分布式计算再次变得酷炫

原文地址:https://internetofthingsagenda.techtarget.com/blog/IoT-Agenda/How-IoT-is-ma...

3693
来自专栏机器之心

业界 | 有图有真相:深度拆解谷歌TPU3.0,新一代AI协同处理器

1863
来自专栏华章科技

电商数据分析方法:分拆,跟着用户走

在理解了要选择怎样的指标来衡量各项业务之后,我们可以对业务有一个客观和全面的把握,可是数字本身无法告诉我们发生了什么事情,怎样可以改进。为了得到更深入的信息,我...

1777
来自专栏祝威廉

天天在做大数据,你的时间都花在哪了

那么延生出来,我们有没有想过大数据本身? 大数据到底是在做什么,为什么我做了这么多年的大数据,总是做不完呢?

1393
来自专栏互联网数据官iCDO

想要提高商品页面的转化率,还得学会这几招

译者:陈明艳 审校:朱玉雪 本文长度为5032字,预估阅读时间13分钟。 摘要:想要提高产品的转化率,其实不难,有最完美的商品页面,轻松搞定。 ? 一个有效的...

3264
来自专栏SDNLAB

云数据中心网络虚拟化——大二层技术巡礼之初识大二层

刚接触网络的一段时间里,作者经常把数据中心和云等同在一起来看待,以为数据中心就是成群的虚拟机和各种神秘的转发设备,支撑着“按需服务”的商业模型。后来才慢慢意识到...

3794
来自专栏Android 开发者

[译] 利用 Android 构建 TV 的未来

1653
来自专栏Java后端技术栈

最坏的不是面试被拒,而是根本没有面试机会!

本人在之前的博客里写了很多面试技巧,这是有个前提:至少候选人被面试了,在这个前提下,候选人哪怕失败了,至少也能用实战来检验和校对面试准备的结果,用句比较时髦的话...

1313
来自专栏ATYUN订阅号

【行业】Pond5致力视频搜索,使用专有神经网络为基于AI的内容发现提供支持

全新的AI驱动功能包括Chrome,Firefox和Safari的浏览器扩展,以及行业之首的移动端视觉搜索,可让用户使用互联网上的任何图像进行搜索。 Pond5...

2855

扫码关注云+社区

领取腾讯云代金券