十種程序語言幫你讀懂大數據的“秘密”

jopen 10年前發布 | 22K 次閱讀 大數據

十種程序語言幫你讀懂大數據的“秘密”

        隨著大數據的熱潮不斷升溫,幾乎各個領域都有洪水傾瀉般的信息涌來,面對用戶成千上萬的瀏覽記錄、記錄行為數據,如果就單純的 Excel 來進行數據處理是遠遠不能滿足的。但如果只用一些操作軟件來分析,而不怎么如何用邏輯數據來分析的話,那也只是簡單的數據處理。

        替代性很高的工作,而無法深入規劃策略的核心。

        當然,基本功是最不可忽略的環節,想要成為數據科學家,對于這幾個程序你應該要有一定的認識:

        R

        若要列出所有程序語言,你能忘記其他的沒關系,但最不能忘的就是R。從 1997 年悄悄地出現,最大的優勢就是它免費,為昂貴的統計軟件像是 Matlab 或 SAS 的另一種選擇。

        但是在過去幾年來,它的身價大翻轉,變成了資料科學界眼中的寶。不只是木訥的統計學家熟知它,包括 WallStreet 交易員、生物學家,以及硅谷開發者,他們都相當熟悉R。多元化的公司像是 Google、非死book、美國銀行以及 NewYorkTimes 通通都使用R,它的商業效用持續提高。

        R 的好處在于它簡單易上手,透過R,你可以從復雜的數據集中篩選你要的數據,從復雜的模型函數中操作數據,建立井然有序的圖表來呈現數字,這些都只需要幾行程序代碼就可以了,打個比方,它就像是好動版本的 Excel。

        R 最棒的資產就是活躍的動態系統,R社群持續地增加新的軟件包,還有以內建豐富的功能集為特點。目前估計已有超過 200 萬人使用R,最近的調查顯示,R在數據科學界里,到目前為止最受歡迎的語言,占了回復者的 61%(緊追在后的是 39% 的 Python)。

        它也吸引了 WallStreet 的注目。傳統而言,證券分析師在 Excel 檔從白天看到晚上,但現在R在財務建模的使用率逐漸增加,特別是可視化工具,美國銀行的副總裁 NiallO’Conno 說,「R讓我們俗氣的表格變得突出」。

        在數據建模上,它正在往逐漸成熟的專業語言邁進,雖然R仍受限于當公司需要制造大規模的產品時,而有的人說他被其他語言篡奪地位了。

        “R更有用的是在畫圖,而不是建模。”頂尖數據分析公司 Metamarkets 的 CEO,MichaelDriscoll 表示。

        “你不會在 Google 的網頁排名核心或是 非死book 的朋友們推薦算法時看到R的蹤影,工程師會在R里建立一個原型,然后再到 Java 或 Python 里寫模型語法”。

        舉一個使用R很有名的例子,在 2010 年時,PaulButler 用R來建立 非死book 的世界地圖,證明了這個語言有多豐富多強大的可視化數據能力,雖然他現在比以前更少使用R了。

        “R已經逐漸過時了,在龐大的數據集底下它跑的慢又笨重”Butler 說。

        所以接下來他用什么呢?

十種程序語言幫你讀懂大數據的“秘密”

        Python

        如果說R是神經質又令人喜愛的 Geek,那 Python 就是隨和又好相處的女生。

        Python 結合了R的快速、處理復雜數據采礦的能力以及更務實的語言等各個特質,迅速地成為主流,Python 比起R,學起來更加簡單也更直觀,而且它的生態系統近幾年來不可思議地快速成長,在統計分析上比起R功能更強。

        Butler 說,“過去兩年間,從R到 Python 地顯著改變,就像是一個巨人不斷地推動向前進‘。

        在數據處理范疇內,通常在規模與復雜之間要有個取舍,而 Python 以折衷的姿態出現。IPythonNotebook (記事本軟件)和 NumPy 被用來暫時存取較低負擔的工作量,然而 Python 對于中等規模的數據處理是相當好的工具;Python 擁有豐富的資料族,提供大量的工具包和統計特征。

        美國銀行用 Python 來建立新產品和在銀行的基礎建設接口,同時也處理財務數據,“Python 是更廣泛又相當有彈性,所以大家會對它趨之若鶩。”O’Donnell 如是說。

        然而,雖然它的優點能夠彌補R的缺點,它仍然不是最高效能的語言,偶爾才能處理龐大規模、核心的基礎建設。Driscoll 是這么認為的。

        Julia

        今日大多數的數據科學都是透過R、Python、Java、Matlab 及 SAS 為主,但仍然存在著鴻溝要去彌補,而這個時候,新進者 Julia 看到了這個痛點。

        Julia 仍太過于神秘而尚未被業界廣泛的采用,但是當談到它的潛力足以搶奪R和 Python 的寶座時,數據黑客也難以解釋。原因在于 Julia 是個高階、不可思議的快速和善于表達的語言,比起R要快的許多,比起 Python 又有潛力處理更具規模的數據,也很容易上手。

        “Julia 會變的日漸重要,最終,在R和 Python 可以做的事情在 Julia 也可以”。Butler 是這么認為的。

        就現在而言,若要說 Julia 發展會倒退的原因,大概就是它太年輕了。Julia 的數據小區還在初始階段,在它要能夠和R或 Python 競爭前,它還需要更多的工具包和軟件包。

        Driscoll 說,它就是因為它年輕,才會有可能變成主流又有前景。

十種程序語言幫你讀懂大數據的“秘密”

        Java

        Driscoll 說,Java 和以 Java 為基礎的架構,是由硅谷里最大的幾家科技公司的核心所建立的,如果你從 推ter、Linkedin 或是 非死book 里觀察,你會發現 Java 對于所有數據工程基礎架構而言,是非常基礎的語言。

        Java 沒有和R和 Python 一樣好的可視化功能,它也不是統計建模的最佳工具,但是如果你需要建立一個龐大的系統、使用過去的原型,那 Java 通常會是你最基的選擇。

        Hadoop and Hive

        為了迎合大量數據處理的需求,以 Java 為基礎的工具群興起。Hadoop 為處理一批批數據處理,發展以 Java 為基礎的架構關鍵;相較于其他處理工具,Hadoop 慢許多,但是無比的準確和可被后端數據庫分析廣泛使用。和 Hive 搭配的很好,Hive 是基于查詢的架構下,運作的相當好。

        Scala

        又是另一個以 Java 為基礎的語言,和 Java 很像,對任何想要進行大規模的機械學習或是建立高階的算法,Scala 會是逐漸興起的工具。它是善于呈現且擁有建立可靠系統的能力。

        “Java 像是用鋼鐵建造的;Scala 則是讓你能夠把它拿進窯烤然后變成鋼的黏土”Driscoll 說。

        KafkaandStorm

        說到當你需要快速的、實時的分析時,你會想到什么?Kafka 將會是你的最佳伙伴。其實它已經出現五年有了,只是因為最近串流處理興起才變的越來越流行。

        Kafka 是從 Linkedin 內誕生的,是一個特別快速的查詢訊息系統。Kafka 的缺點呢?就是它太快了,因此在實時操作時它會犯錯,有時候會漏掉東西。

        魚與熊掌不可兼得,「必須要在準確度跟速度之間做一個選擇」,Driscoll 說。所以全部在硅谷的科技大公司都利用兩個管道:用 Kafka 或 Storm 處理實時數據,接下來打開 Hadoop 處理一批批處理數據系統,這樣聽起來有點麻煩又會有些慢,但好處是,它非常非常精準

        Storm 是另一個從 Scala 寫出來的架構,在硅谷逐漸大幅增加它在串流處理的受歡迎程度,被 推ter 并購,這并不意外,因為 推ter 對快速事件處理有極大的興趣。

十種程序語言幫你讀懂大數據的“秘密”

        Matlab

        Matlab 可以說是歷久不衰,即使它標價很高;在非常特定的利基市場它使用的相當廣泛,包括密集的研究機器學習、信號處理、圖像辨識等等。

        Octave

        Octave 和 Matlab 很像,除了它是免費的之外。然而,在學術信號處理的圈子,幾乎都會提到它。

        GO

        GO 是另一個逐漸興起的新進者,從 Google 開發出來的,放寬點說,它是從C語言來的,并且在建立強大的基礎架構上,漸漸地成為 Java 和 Python 的競爭者。

        這么多的軟件可以使用,但我認為不見得每個都一定要會才行,知道你的目標和方向是什么,就選定一個最適合的工具使用吧!可以幫助你提升效率又達到精準的結果。

來自: cio.yesky.com
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!