轉(zhuǎn)帖|行業(yè)資訊|編輯:龔雪|2016-05-23 10:05:22.000|閱讀 274 次
概述:有關(guān)大數(shù)據(jù)的話(huà)題一直很火熱。伴隨著信息的爆炸式增長(zhǎng),大數(shù)據(jù)滲透到了各行各業(yè),廣泛應(yīng)用于公司中,同時(shí)也使得傳統(tǒng)的軟件比如 Excel 看起來(lái)很笨拙。數(shù)據(jù)分析不再只是書(shū)呆子的事,同時(shí)其對(duì)高復(fù)雜性分析、實(shí)時(shí)處理的需求也比以往更加龐大。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
有關(guān)大數(shù)據(jù)的話(huà)題一直很火熱。伴隨著信息的爆炸式增長(zhǎng),大數(shù)據(jù)滲透到了各行各業(yè),廣泛應(yīng)用于公司中,同時(shí)也使得傳統(tǒng)的軟件比如 Excel 看起來(lái)很笨拙。數(shù)據(jù)分析不再只是書(shū)呆子的事,同時(shí)其對(duì)高復(fù)雜性分析、實(shí)時(shí)處理的需求也比以往更加龐大。
那么篩選海量數(shù)據(jù)集最優(yōu)的工具是什么呢?我們咨詢(xún)了一些數(shù)據(jù)黑客關(guān)于他們?cè)跀?shù)據(jù)分析的核心工作中最喜歡的編程語(yǔ)言和工具包。
R 語(yǔ)言
這份名單如果不以 R 開(kāi)頭,那就是徹頭徹尾的疏忽。自 1997 年起,作為一門(mén)免費(fèi)的,可替代 Matlab 或 SAS 等昂貴統(tǒng)計(jì)軟件的語(yǔ)言,R 被拋棄。
但是在過(guò)去的幾年中,它卻成了數(shù)據(jù)科學(xué)的寵兒—甚至成了統(tǒng)計(jì)學(xué)家、 華爾街交易員、生物學(xué)家和硅谷開(kāi)發(fā)者必不可少的工具。 隨著其商業(yè)價(jià)值的不斷增長(zhǎng)和傳播,諸如谷歌、Facebook、 美國(guó)銀行和紐約時(shí)代周刊都在使用。
R 簡(jiǎn)單易用。通過(guò) R ,短短幾行代碼就可以篩選復(fù)雜的數(shù)據(jù)集,通過(guò)成熟的模型函數(shù)處理數(shù)據(jù),制作精美的圖表進(jìn)行數(shù)據(jù)可視化。簡(jiǎn)直就是 Excel 的加強(qiáng)靈活版。
R 最大的價(jià)值就是圍繞其開(kāi)發(fā)的活躍的生態(tài)圈: R 社區(qū)在持續(xù)不斷地向現(xiàn)存豐富的函數(shù)集增添新的包和特性。據(jù)估計(jì) R 的使用者已經(jīng)超過(guò) 200 萬(wàn)人,最近的一項(xiàng) 調(diào)查也顯示 R目前是數(shù)據(jù)科學(xué)領(lǐng)域最受歡迎的語(yǔ)言,大約 61% 的受訪者使用 R(第二名是 Python, 占比39%)。
在華爾街,R 的使用比例也在不斷增長(zhǎng)。美國(guó)銀行副總裁Niall O’Connor 說(shuō):“以往,分析員通常是熬夜研究 Excel 文件,但是現(xiàn)在 R 正被逐漸地應(yīng)用于金融建模,尤其是作為可視化工具。R 促使了表格化分析的出局。”
作為一門(mén)數(shù)據(jù)建模語(yǔ)言, R 正在走向成熟,盡管在公司需要大規(guī)模產(chǎn)品的時(shí)候 R 能力有限,也有些人說(shuō)它已經(jīng)被其他語(yǔ)言替代了。
Metamarkets 公司的 CEO Michael Driscoll 說(shuō):“ R 擅長(zhǎng)的是勾畫(huà),而不是搭建,在 Google 的 page rank 算法和 Facebook 的好友推薦算法實(shí)現(xiàn)的核心中是不會(huì)有 R 的。工程師會(huì)用 R 進(jìn)行原型設(shè)計(jì),再用 Java 或者 Python將其實(shí)現(xiàn)。”
Paul Butler 在 2010 年用 R 構(gòu)建了一個(gè)著名的 Facebook 世界地圖 ,證明了 R 在數(shù)據(jù)可視化上的強(qiáng)大能力。然而他并不經(jīng)常使用 R。
那么使用什么作為它的替代呢?看下去。
Python
如果 R 是個(gè)有點(diǎn)神經(jīng)質(zhì)的可愛(ài)的極客,那么 Python 就是它容易相處的歡快的表弟。融合了 R 快速成熟的數(shù)據(jù)挖掘能力以及更實(shí)際的產(chǎn)品構(gòu)建能力, Python 正迅速地獲得主流的呼聲。 Python 更直觀,且比 R 更易學(xué),近幾年其整體的生態(tài)系統(tǒng)發(fā)展也成長(zhǎng)得很快,使其在統(tǒng)計(jì)分析上的能力超越了之前的 R 語(yǔ)言。
Butler 說(shuō):“Python 是行業(yè)人員正在轉(zhuǎn)換發(fā)展的方向。過(guò)去兩年里,很明顯存在由 R 向 Python 轉(zhuǎn)化的趨勢(shì)”
在數(shù)據(jù)處理中,通常存在規(guī)模和技巧的權(quán)衡,Python 作為一個(gè)折中出現(xiàn)了。 IPython notebook 和NumPy 可以用于輕量工作的處理, 而 Python 則是中級(jí)規(guī)模數(shù)據(jù)處理的有力工具。豐富的數(shù)據(jù)交流社區(qū)也是 Python 的優(yōu)勢(shì),它提供了大量的Python 工具包和特性。
美國(guó)銀行利用 Python 開(kāi)發(fā)新產(chǎn)品以及基礎(chǔ)設(shè)施接口,同時(shí)也用于處理金融數(shù)據(jù)。O’Donnell 說(shuō):“Python 用途寬廣且靈活,所以人們蜂擁而至”。
然而, Driscoll 也提到它并不是高性能的語(yǔ)言,偶爾才會(huì)用于裝配驅(qū)動(dòng)大規(guī)模的核心基礎(chǔ)設(shè)施。
JULIA
最主流的數(shù)據(jù)科學(xué)處理語(yǔ)言包括 R、 Python、 Java、 Matlab和 SAS。但是這些語(yǔ)言仍然存在一些不足之處,而Julia 正是待以觀察的新人。
對(duì)大規(guī)模商用來(lái)說(shuō), Julia 還是太晦澀了。但在談到其取代 R 和 Python 領(lǐng)先地位的潛力的時(shí)候,數(shù)據(jù)極客們都會(huì)變得很激動(dòng)。 Julia 是一門(mén)高級(jí)的,非??斓暮瘮?shù)式語(yǔ)言。速度上比 R 快, 可能比 Python 的擴(kuò)展性更高,且相對(duì)易學(xué)。
Butler 說(shuō):“Julia 正在快速上升。最終將可以用 Julia 完成任何 R 和 Python 可以完成的事”。
如今的問(wèn)題是 Julia 太“年輕”了。 其數(shù)據(jù)交流社區(qū)仍處在早期發(fā)展階段,在沒(méi)有足夠的包和工具之前是不足以與 R 和 Python 競(jìng)爭(zhēng)的。
Driscoll 說(shuō):“Julia 很年輕,但正在積攢力量而且未來(lái)很可觀”。
JAVA
在硅谷最大的科技公司里,Java 和基于 Java 的框架構(gòu)成了其底層的技術(shù)骨架。Driscoll 說(shuō):“如果深入觀察Twitter,Linkedin 或者 Facebook,你會(huì)發(fā)現(xiàn) Java 是他們公司數(shù)據(jù)引擎架構(gòu)的基礎(chǔ)語(yǔ)言”。
Java 并沒(méi)有 R 和 Python 那樣的數(shù)據(jù)可視化的能力, 同時(shí)也不是最好的用于統(tǒng)計(jì)模型的語(yǔ)言。但是如果需要進(jìn)行原型的基礎(chǔ)開(kāi)發(fā)和構(gòu)建大規(guī)模系統(tǒng), Java 往往是最好的選擇。
HADOOP 和 HIVE
為了滿(mǎn)足數(shù)據(jù)處理的巨大需求,基于 Java 的工具群涌而現(xiàn)。 作為基于 Java 的框架,Hadoop 在批處理領(lǐng)域成為熱點(diǎn)。Hadoop 比其他處理工具速度要慢,但是它非常精確且被廣泛的應(yīng)用于后臺(tái)分析,它很好的融合了 Hive, 一個(gè)運(yùn)行在 Hadoop 上的基于查詢(xún)的框架。
SCALA
Scala 是另一個(gè)基于 Java的語(yǔ)言,和 Java 很相似,它正在逐漸成長(zhǎng)為大規(guī)模機(jī)器學(xué)習(xí)或高級(jí)算法的工具。它是函數(shù)式語(yǔ)言,也能夠構(gòu)建健壯的系統(tǒng)。
Driscoll 說(shuō):“Java 就像是直接用鋼筋進(jìn)行搭建, Scala 則像是在處理黏土原材料,可以將其放進(jìn)窖中燒制成鋼筋”。
KAFKA 和 STORM
當(dāng)需要快速、實(shí)時(shí)分析時(shí)怎么辦?Kafka 可以幫助你。它已經(jīng)發(fā)展了大概五年時(shí)間,但最近才成為一個(gè)流處理的流行框架。
Kafka 誕生于 Linkedin 公司的內(nèi)部項(xiàng)目,是一個(gè)快速查詢(xún)系統(tǒng)。至于 Kafka 的缺點(diǎn)呢? 它太快了,實(shí)時(shí)的操作也導(dǎo)致了自身的錯(cuò)誤,且偶爾還會(huì)遺失信息。
Driscoll 說(shuō):“在精度和速度之間總需要做權(quán)衡,所以硅谷所有的大公司一般都雙管齊下: 用 kafka 和 Storm 進(jìn)行實(shí)時(shí)處理,用 Hadoop 做批處理系統(tǒng),雖然會(huì)慢一點(diǎn)但卻十分精確”。
Storm 是另一個(gè)用 Scala 寫(xiě)的框架,且它在硅谷以擅長(zhǎng)流處理而受到極大的關(guān)注。毫無(wú)疑問(wèn), Twitter, 一個(gè)對(duì)快速消息處理有著巨大興趣的公司會(huì)收購(gòu)了 Storm。
MATLAB
MATLAB 已經(jīng)存在很長(zhǎng)時(shí)間了,盡管價(jià)格昂貴,但它仍在某些特定領(lǐng)域被廣泛使用: 機(jī)器學(xué)習(xí)研究、信號(hào)處理、圖像識(shí)別等領(lǐng)域。
OCTAVE
Octave 與 Matlab 非常相似,只不過(guò)它是免費(fèi)的。然而除了信號(hào)處理的學(xué)術(shù)圈之外很少見(jiàn)到使用。
GO
GO 是另外一個(gè)獲得關(guān)注的新語(yǔ)言。它由 Google 開(kāi)發(fā),與 C 有一定淵源,且在構(gòu)建穩(wěn)定系統(tǒng)方面與 Java 和 Python 展開(kāi)了競(jìng)爭(zhēng)。
本文來(lái)源:199it
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn