用RPython在云端运行可扩展数据科学
用R&Python在云端運行可擴展數據科學
發表于2015-10-14 08:10| 2514次閱讀| 來源Analytics Vidhya| 1 條評論| 作者Kunal Jain
大數據云計算機器學習云服務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">摘要:數據科學變得越來越復雜,云計算能否帶來簡潔的方式?本文解析了將數據科學工作負載放在云端的優勢和劣勢,并對利用R&Python在云端運行可擴展數據科學的不同選項進行概要分析。前言
如今,數據科學變得越來越復雜。這種復雜性由下面三個因素導致:
總之,我們正在源源不斷地生產數據(當你閱讀本文時,你也將成為一個數據樣本),我們能以極低的成本存儲這些數據,并且對它們做計算和仿真處理。
為什么在云端進行數據科學?
那我們為什么要把數據放在云端處理呢?當你看到一臺筆記本電腦就配備64GB?RAM時,不禁會問我們真的需要把數據送到云端嗎?答案絕對是需要的,我們能找出一大堆理由來。下面就列出幾條:
需要運行可擴展的數據科學:讓我們回到幾年前。在2010年,我進入一家跨國保險公司組建數據科學部門。其中的一項工作就是采購了一臺16GB?RAM的服務器。由于是新組建部門,我們按照超前3~5年的標準采購。當初類似星形的組合結構,隨著我們的雇員增加而無法擴展。不僅因為組內成員增長,數據量也呈指數級增長。由于只有一臺實體機,我們陷入了困境!我們要不購買一臺新的、性能更強的服務器,要不讓現有這臺滿負荷運轉(很快就將會過載)。你最不愿意看到的事情就是組里的數據科學家盯著屏幕等待未處理完的數據!而云端的機器只需輕擊鼠標就能輕易擴展,省去了很多煩心事。因此即使數據量增長幾倍,現在的腳本和模型依舊能夠正常運行。
成本:可擴展性是一方面,成本也是一方面。假設你有一個問題需要解決,問題不?,F,但是需要更高配的計算基礎框架。這類情況很常見?——?若想挖掘自己贊助的某次年度事件的社會媒體數據,但想實時查看結果。受制于成本,不可能為此而買一臺新機器。很簡單,這時只要租一臺高配置的機器,租用幾個小時或者幾天就能解決問題,成本是新購機器的零頭。
協作:?當想和多位數據科學家同時工作時該如何是好?想必你不愿意他們每個人都在本地機器上復制一份數據和代碼吧。
共享:當想和組員共享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開發,但它提供了一個單獨的窗口來托管主機、搭建網站和進行數據科學分析。
在云端進行數據科學的挑戰:
盡管云計算有其獨有的優勢,它也面臨著不少挑戰。我認為這些挑戰在長期并不會停止云服務使用的增長,但是偶爾也會形成一些障礙。
和第三方共享數據的擔憂:我不斷地面臨這項挑戰。不論你如何試圖向一部分人解釋云端的安全性,把數據共享到公司外部總是令人擔憂。通常這都是監管方需求或是法律要求,但往往給出的理由也很無厘頭。例如,很多銀行都不愿意上傳它們的數據到云端進行分析。
需要上傳/下載大量數據:由于數據中心存儲大量的數據?——?如果網絡基礎設施不穩固,一次性上傳這些大數據將是巨大的挑戰。
后記
云計算正因其帶來的利益而受到更多的關注,這些云計算服務變得常態化(假如目前還沒有)也將只是時間問題。希望你覺得這些云計算服務有用,當你需要的時候唾手可得。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的用RPython在云端运行可扩展数据科学的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小团队 机器学习
- 下一篇: 易开发创始人潘俊勇:这些年我遇到的那些坑