用RPython在云端运行可扩展数据科学
用R&Python在云端運(yùn)行可擴(kuò)展數(shù)據(jù)科學(xué)
發(fā)表于2015-10-14 08:10| 2514次閱讀| 來(lái)源Analytics Vidhya| 1 條評(píng)論| 作者Kunal Jain
大數(shù)據(jù)云計(jì)算機(jī)器學(xué)習(xí)云服務(wù)PythonR width="22" height="16" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2015-10-10%2F2825875&type=3&count=&appkey=&title=%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6%E5%8F%98%E5%BE%97%E8%B6%8A%E6%9D%A5%E8%B6%8A%E5%A4%8D%E6%9D%82%EF%BC%8C%E4%BA%91%E8%AE%A1%E7%AE%97%E8%83%BD%E5%90%A6%E5%B8%A6%E6%9D%A5%E7%AE%80%E6%B4%81%E7%9A%84%E6%96%B9%E5%BC%8F%EF%BC%9F%E6%9C%AC%E6%96%87%E8%A7%A3%E6%9E%90%E4%BA%86%E5%B0%86%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6%E5%B7%A5%E4%BD%9C%E8%B4%9F%E8%BD%BD%E6%94%BE%E5%9C%A8%E4%BA%91%E7%AB%AF%E7%9A%84%E4%BC%98%E5%8A%BF%E5%92%8C%E5%8A%A3%E5%8A%BF%EF%BC%8C%E5%B9%B6%E5%AF%B9%E5%88%A9%E7%94%A8R%26Python%E5%9C%A8%E4%BA%91%E7%AB%AF%E8%BF%90%E8%A1%8C%E5%8F%AF%E6%89%A9%E5%B1%95%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6%E7%9A%84%E4%B8%8D%E5%90%8C%E9%80%89%E9%A1%B9%E8%BF%9B%E8%A1%8C%E6%A6%82%E8%A6%81%E5%88%86%E6%9E%90%E3%80%82&pic=&ralateUid=&language=zh_cn&rnd=1445120447652" frameborder="0" scrolling="no" allowtransparency="true">摘要:數(shù)據(jù)科學(xué)變得越來(lái)越復(fù)雜,云計(jì)算能否帶來(lái)簡(jiǎn)潔的方式?本文解析了將數(shù)據(jù)科學(xué)工作負(fù)載放在云端的優(yōu)勢(shì)和劣勢(shì),并對(duì)利用R&Python在云端運(yùn)行可擴(kuò)展數(shù)據(jù)科學(xué)的不同選項(xiàng)進(jìn)行概要分析。前言
如今,數(shù)據(jù)科學(xué)變得越來(lái)越復(fù)雜。這種復(fù)雜性由下面三個(gè)因素導(dǎo)致:
總之,我們正在源源不斷地生產(chǎn)數(shù)據(jù)(當(dāng)你閱讀本文時(shí),你也將成為一個(gè)數(shù)據(jù)樣本),我們能以極低的成本存儲(chǔ)這些數(shù)據(jù),并且對(duì)它們做計(jì)算和仿真處理。
為什么在云端進(jìn)行數(shù)據(jù)科學(xué)?
那我們?yōu)槭裁匆褦?shù)據(jù)放在云端處理呢?當(dāng)你看到一臺(tái)筆記本電腦就配備64GB?RAM時(shí),不禁會(huì)問(wèn)我們真的需要把數(shù)據(jù)送到云端嗎?答案絕對(duì)是需要的,我們能找出一大堆理由來(lái)。下面就列出幾條:
需要運(yùn)行可擴(kuò)展的數(shù)據(jù)科學(xué):讓我們回到幾年前。在2010年,我進(jìn)入一家跨國(guó)保險(xiǎn)公司組建數(shù)據(jù)科學(xué)部門(mén)。其中的一項(xiàng)工作就是采購(gòu)了一臺(tái)16GB?RAM的服務(wù)器。由于是新組建部門(mén),我們按照超前3~5年的標(biāo)準(zhǔn)采購(gòu)。當(dāng)初類似星形的組合結(jié)構(gòu),隨著我們的雇員增加而無(wú)法擴(kuò)展。不僅因?yàn)榻M內(nèi)成員增長(zhǎng),數(shù)據(jù)量也呈指數(shù)級(jí)增長(zhǎng)。由于只有一臺(tái)實(shí)體機(jī),我們陷入了困境!我們要不購(gòu)買(mǎi)一臺(tái)新的、性能更強(qiáng)的服務(wù)器,要不讓現(xiàn)有這臺(tái)滿負(fù)荷運(yùn)轉(zhuǎn)(很快就將會(huì)過(guò)載)。你最不愿意看到的事情就是組里的數(shù)據(jù)科學(xué)家盯著屏幕等待未處理完的數(shù)據(jù)!而云端的機(jī)器只需輕擊鼠標(biāo)就能輕易擴(kuò)展,省去了很多煩心事。因此即使數(shù)據(jù)量增長(zhǎng)幾倍,現(xiàn)在的腳本和模型依舊能夠正常運(yùn)行。
成本:可擴(kuò)展性是一方面,成本也是一方面。假設(shè)你有一個(gè)問(wèn)題需要解決,問(wèn)題不常現(xiàn),但是需要更高配的計(jì)算基礎(chǔ)框架。這類情況很常見(jiàn)?——?若想挖掘自己贊助的某次年度事件的社會(huì)媒體數(shù)據(jù),但想實(shí)時(shí)查看結(jié)果。受制于成本,不可能為此而買(mǎi)一臺(tái)新機(jī)器。很簡(jiǎn)單,這時(shí)只要租一臺(tái)高配置的機(jī)器,租用幾個(gè)小時(shí)或者幾天就能解決問(wèn)題,成本是新購(gòu)機(jī)器的零頭。
協(xié)作:?當(dāng)想和多位數(shù)據(jù)科學(xué)家同時(shí)工作時(shí)該如何是好?想必你不愿意他們每個(gè)人都在本地機(jī)器上復(fù)制一份數(shù)據(jù)和代碼吧。
共享:當(dāng)想和組員共享Python/R代碼時(shí)會(huì)怎么辦?你所使用的函數(shù)庫(kù)可能在他那兒沒(méi)有,或是版本太低。如何確保代碼在不同機(jī)器間可遷移呢?
更大的機(jī)器學(xué)習(xí)系統(tǒng)開(kāi)發(fā)生態(tài)系統(tǒng):像AWS、Azure等一些云服務(wù)商,提供完整的生態(tài)系統(tǒng)幫你采集數(shù)據(jù)、生成模型并部署。如果使用實(shí)體機(jī),都需要自己設(shè)置這些配置。
快速搭建原型:很多時(shí)候,你在路上或是和朋友交流時(shí)蹦出了新想法。這些情況下,使用云計(jì)算服務(wù)就會(huì)很便捷。能快速地完成原型開(kāi)發(fā),而不必?fù)?dān)心版本和擴(kuò)展性。在證實(shí)了自己的想法之后,也能方便地轉(zhuǎn)化為產(chǎn)品。
在 這里有更多關(guān)于云計(jì)算部件的內(nèi)容。
現(xiàn)在你明白了數(shù)據(jù)科學(xué)的云計(jì)算的需求了吧。我們接著看看在云端執(zhí)行R和Python的不同選擇。
在云端做數(shù)據(jù)科學(xué)的選擇:
Amazon?Web?Services?(AWS)
Amazon是云計(jì)算界的老大。它們占據(jù)最大的市場(chǎng)份額,有完整的文檔,提供便捷的環(huán)境支持快速擴(kuò)展。這篇文章教你如何在機(jī)器上運(yùn)行 R或者RStudio。如果云端的機(jī)器是Linux系統(tǒng),那么Python是預(yù)裝的。也可以自己安裝額外需要的庫(kù)函數(shù)和模塊。
你可以使用 AWS?machine?learning,自己配置一臺(tái)機(jī)器,甚至直接使用 DataScienceToolbox,它提供工具箱之外用到的所有軟件。平臺(tái)不僅僅是提供服務(wù),還提供一些大規(guī)模數(shù)據(jù)集供你玩轉(zhuǎn)大數(shù)據(jù)。
因?yàn)锳WS是最流行的選擇,它形成了完善的生態(tài)系統(tǒng),并且(相對(duì)其它而言)更容易找到包含正確經(jīng)驗(yàn)的各種資源。然而,Amazon相比其它家服務(wù)的價(jià)格通常更貴一些,甚至不提供某些服務(wù)。另外,由于某些原因機(jī)器學(xué)習(xí)的服務(wù)不對(duì)亞太地區(qū)開(kāi)放。因此,如果你恰好位于這些地區(qū),則需要選擇北美的服務(wù)器,或者在云端自己配置一臺(tái)虛擬機(jī)。
Azure?Machine?Learning
如果AWS是冠軍的話,Azure就是冠軍挑戰(zhàn)者。Microsoft明確地加大力度提供一個(gè)執(zhí)行端對(duì)端數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)流程的接口。你可以使用他們的 studio來(lái)搭建機(jī)器學(xué)習(xí)工作流程,在云端使用JuPyTer?notebooks,或者直接使用ML?APIs。
Microsoft已經(jīng)在 虛擬學(xué)院提供了免費(fèi)的電子文檔和MOOC幫你入門(mén)。
IBM?BlueMix:
如果說(shuō)Amazon和Microsoft是在云計(jì)算領(lǐng)域有機(jī)地發(fā)展,那么IBM的思路略有不同。IBM開(kāi)發(fā)了BlueMix平臺(tái),隨后急速開(kāi)始營(yíng)銷(xiāo)其服務(wù)產(chǎn)品。盡管提供方式不如AWS和Azure直接,但還是能在云端提供設(shè)置記事本而使用。
數(shù)據(jù)科學(xué)社區(qū)如何使用Watson提供的APIs也將會(huì)很有意思。
Sense.io:
如果覺(jué)得我之前寫(xiě)的那些都太復(fù)雜了,那就有必要了解一下Sense。Sense項(xiàng)目可以只點(diǎn)擊一個(gè)按鈕完成部署。他們提供的服務(wù)基于R、Python、Spark、Julia和Impala,成員之間靈活地合作和共享分析結(jié)果。觀看這段視頻初步了解這款產(chǎn)品:https://www.youtube.com/embed/n3RwCr9l4G8
Demino?DataLabs
Domino位于舊金山,它提供一個(gè)安全的云計(jì)算環(huán)境,支持R、Python、Julia和Matlab等開(kāi)發(fā)語(yǔ)言。平臺(tái)提供版本控制功能和特色,使得組內(nèi)合作和共享變得無(wú)比容易。
DataJoy
DataJoy目前像是Sense和DominoDataLab的剝離版本,但它今后如何發(fā)展很引人關(guān)注。目前,若想在云端運(yùn)行R或者Python,不妨也試一試DataJoy。
PythonAnywhere
你如果正在開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用,并需要搭建一個(gè)包含數(shù)據(jù)科學(xué)模塊的網(wǎng)站,PythonAnywhere似乎是個(gè)完美的選擇。正如名字所稱,這個(gè)選擇是基于Python開(kāi)發(fā),但它提供了一個(gè)單獨(dú)的窗口來(lái)托管主機(jī)、搭建網(wǎng)站和進(jìn)行數(shù)據(jù)科學(xué)分析。
在云端進(jìn)行數(shù)據(jù)科學(xué)的挑戰(zhàn):
盡管云計(jì)算有其獨(dú)有的優(yōu)勢(shì),它也面臨著不少挑戰(zhàn)。我認(rèn)為這些挑戰(zhàn)在長(zhǎng)期并不會(huì)停止云服務(wù)使用的增長(zhǎng),但是偶爾也會(huì)形成一些障礙。
和第三方共享數(shù)據(jù)的擔(dān)憂:我不斷地面臨這項(xiàng)挑戰(zhàn)。不論你如何試圖向一部分人解釋云端的安全性,把數(shù)據(jù)共享到公司外部總是令人擔(dān)憂。通常這都是監(jiān)管方需求或是法律要求,但往往給出的理由也很無(wú)厘頭。例如,很多銀行都不愿意上傳它們的數(shù)據(jù)到云端進(jìn)行分析。
需要上傳/下載大量數(shù)據(jù):由于數(shù)據(jù)中心存儲(chǔ)大量的數(shù)據(jù)?——?如果網(wǎng)絡(luò)基礎(chǔ)設(shè)施不穩(wěn)固,一次性上傳這些大數(shù)據(jù)將是巨大的挑戰(zhàn)。
后記
云計(jì)算正因其帶來(lái)的利益而受到更多的關(guān)注,這些云計(jì)算服務(wù)變得常態(tài)化(假如目前還沒(méi)有)也將只是時(shí)間問(wèn)題。希望你覺(jué)得這些云計(jì)算服務(wù)有用,當(dāng)你需要的時(shí)候唾手可得。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的用RPython在云端运行可扩展数据科学的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小团队 机器学习
- 下一篇: 亲测,手把手教你用Python抢票