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