2011-06-21 28 views
1

我不確定這個問題是否正確,但我要求解決我的疑問。ML /數據挖掘/大數據:編程和社區支持的流行語言

  • 對於Machine Learning/Data Mining,我們需要了解數據,這意味着你需要學習Hadoop,該公司在JavaMapReduce實現(糾正我,如果我錯了)。
  • 的Hadoop還提供streaming api支持其他語言(如python
  • 大多數研究生/研究人員,我知道解決蟒蛇ML問題
  • 我們看到就業崗位的hadoop and Java combination經常

我觀察到, JavaPython(在我的觀察中)是這個領域使用最廣泛的語言。

  • 我的問題是什麼是most popular language在這個領域工作。
  • 什麼factors決定哪些語言/框架涉及一個應該選擇
  • 我知道Java和Python的,但困惑始終:
    • 我是否開始編程Java(because of hadoop implementation)
    • 我是否在Python(because its easier and quicker to write)
    開始編程

這是一個非常開放的問題,我相信這些建議可能會幫助我和有同樣疑問的人。
非常感謝

+0

您可能會檢查http://stackoverflow.com/questions/1482282/java-vs-python-on-hadoop在hadoop上python和java之間的性能比較。 – petrichor

回答

2

不幸的是,在我看來,統治語言是MATLAB ...我說不幸,因爲我既不喜歡也不使用這種語言,我更有可能用C++/Java編程。但是我周圍的數據礦工和機器學習人員傾向於堅持使用MATLAB ...

編輯:我剛剛讀Wikipedia's page on R一個非常有趣的線:

根據2010年Rexer的年度數據礦工調查,R已成爲 通過更多的數據礦工使用的數據挖掘工具(43% )比任何其他。

1

我沒有Java和Hadoop的經驗,但我使用Python和MATLAB進行機器學習,現在我更頻繁地使用MATLAB。其實,我的情況的重要因素如下:

  • 幾乎我所有的同事都使用MATLAB和C++,並且很少使用Python。他們的Python使用僅限於一般腳本,而不是特定的機器學習內容。所以,當我使用Python時,獲得幫助的唯一方法就是web,我們面臨着在實驗室內共享代碼的問題。
  • MATLAB的IDE及其廣泛的文檔使它對我的情況非常有用。
  • 您可以在MATLAB中處理大型數據集。 link 1link2
  • 在MATLAB中有許多機器學習/數據挖掘庫,用C++/Java編寫的大多數庫都有MATLAB包裝器。

Python的一些觀點也適用。但正如我所提到的,我所從事的社區在決定語言方面起着重要的作用。

0

我覺得在這個領域最流行的組合是Java/Hadoop。當職位空缺需要python/perl/ruby​​時,通常意味着他們正在從這些腳本語言(通常是主要語言到那個時候)遷移到java,因爲他們從啓動代碼庫遷移到了企業級。 同樣在現實世界中的數據挖掘應用python經常用於原型,小型數據處理任務。

1

R是數據挖掘(肯定)和機器學習的優秀候選人。

(推廣,當然)。

的Java和Hadoop是嚴重大數據和/或縮放需求方面真正有意義。 Java爲您提供了庫和一大批程序員。 Hadoop爲您提供了相當輕鬆的分佈以及將各種算法映射到框架的不斷增長的知識庫。

Python似乎擁有學者,特別是最近在職業實踐中活躍和有影響力的畢業生。另外,如果你只是想嘗試一些東西,像Python這樣的表達動態語言顯然會被證明是非常有用的。

再有就是R.(還有更多的事情,但這是我的知識/ G /的範圍內),我認爲除了明顯的關注數據是R帶來的表(因此

數據極客社區也可以幫助科學部門),它是一個令人愉快的輕量級系統,並且是not too shabby at all in terms of libraries as well。也就是說,人們會認爲(〜)函數式語言(Scala,Clojure on JVM; Haskell等)將非常適合處理數據和處理大型數據集。

0

Python越來越受歡迎,擁有大量的庫,對於原型開發非常有用。我發現由於許多版本的python及其對C庫的依賴性很難部署。

R也很流行,有很多庫,並且是爲數據科學設計的。但是,底層的語言設計往往會使事情變得複雜。

就我個人而言,我更喜歡Clojure,因爲它具有出色的數據操作支持,並且可以與Java生態系統進行互操作。目前它的缺點是沒有太多的數據科學庫!