Python擴大領先優勢,PyTorch僅佔6.4%:2018年數據科學語言&工具排名
來自專欄機器之心
選自KDnuggets,作者:Gregory Piatetsky,機器之心編譯。
近日,著名數據科學網站 KDnuggets 發布了 2018 年數據科學和機器學習工具調查結果。超過 2000 人對自己「過去 12 個月內在項目開發中使用過的數據挖掘/機器學習工具和編程語言」進行了投票。該統計還對過去三年來的排名進行了對比分析。此外,機器之心在文末發起了一個投票,快選出你心中最美的深度學習框架吧。
這份投票結果既有預料之內,也有預料之外的部分。數據顯示,Python 作為機器學習常用的編程語言正在不斷擴大領先優勢,R 語言的使用率第一次降到了 50% 以下。在深度學習框架上,最近呼聲很高的深度學習框架 PyTorch 僅僅佔據了 6.4% 的使用率,遠遠落後於 TensorFlow 的 29.9% 和 Keras 的 22.2%。
Python 繼續侵蝕著 R 的用戶領域,RapidMiner 熱門度增加,SQL 保持穩定,TensorFlow 和 Keras 引領前進,Hadoop 衰落,數據科學平台整合等等。
第 19 次年度 KDnuggets 軟體調查有超過 2300 人參與投票,略微少於 2017 年,可能是因為僅有一個供應商 RapidMiner 積極地參與 KDnuggests 調查的投票。平均來說,每個參與者選擇 7 個使用過的不同工具,因此僅投票一個工具會帶來偏差。KDnuggets 排除了大約 260 個這樣的「獨好」投票(主要來自 RapidMiner),因為即使他們代表了該工具的合法用戶,他們的行為也是非典型的,並且會歪曲結果。
以下是基於 2052 個參與者的初始結果分析,其中「獨好」投票者已被排除。更多詳細分析和匿名數據將在大約兩周內公布。
最受歡迎的分析、數據科學、機器學習工具
圖 1:KDnuggests 分析/數據科學 2018 年軟體調查:2018 年最受歡迎工具,以及它們相對於 2016-2017 年的排名變化。(為了更有效的比較,KDnuggests 排除了「獨好」投票者並重新計算了 2016 年、2017 年的調查結果。)
上圖顯示了排名前 11 的工具,每個工具的使用率至少為 20%。
表 1:KDnuggests 2018 年軟體調查最受歡迎的分析/數據科學/機器學習軟體
在這裡,「2018 % share」一欄是指使用該工具的用戶百分比,「% change」是指和 2017 年軟體調查相比的變化比例,綠色和紅色標記表示比例的變化幅度達到了 10% 或更多。
每個投票人的平均使用工具數量是 7 個,略微高於 2017 年調查的 6.75 個(也排除了「獨好」投票人)。
和 2017 年的軟體調查相比,進入前 11 名的新工具是 Keras。Knime 從第 11 名下跌,可能是因為今年他們並沒有積極調動其用戶參與投票。
以下是一些觀察結果。
Python 正在吞噬 R 的用戶領域
2017 年 Python 的使用率超過 50%,今年它的使用率上升至 66%,而 R 的使用率首次下跌,跌破 50%。
RapidMiner
在之前的幾次問卷中,RapidMiner 這一頂級數據科學平台正快速傳播,它的用戶使用率由 2017 年的 33% 增長到了今年的 52.7%。根據 RapidMiner 的創始人和董事長 Ingo Mierswa,他們採取了一些措施鼓勵用戶參與該調查。
對於 KDnuggets 的問卷調查,Ingo Mierswa 說:「近兩年我們都向用戶發送郵件推廣該問卷調查,但今年有超過 400 多位用戶回郵件表示很高興能幫助 RapidMiner 的傳播。而且今年 RapidMiner 月度活躍用戶增長率超出去年 300%,因此我們向更多用戶發送了關於 KDnuggets 問卷調查的郵件。我很高興看到如此活躍的社區。」
SQL 保持穩定
作為數據管理系統的程序語言,SQL(包括 Spark SQL 和 SQL to Hadoop 工具)繼續保持著約 40% 的使用率,和之前 3 次調查結果一樣。因此,如果你是一位有雄心壯志的數據科學家,學習 SQL 吧,它在很長一段時間裡都會很有用!
趨勢
該調查唯一使用率超過 2% 的新工具是 Spark SQL,使用率達到 11.7%。下表列舉了使用率增幅達到 20% 及以上、2018 年使用率為 3% 以上的工具。
整合
2017 年使用率達到 2% 及以上的 56 個工具中,有 19 個(僅 1/3)工具在 2018 年使用率有所上升,其餘 37 個均下降。這和近期的收購案(Datawatch 收購 Angoss、Minitab 收購 Salford)一道表明數據科學平台的整合正在進行過程中。
2017 年使用率至少 3% 的工具,今年下降了 25% 甚至更多,詳見下表。
深度學習工具
近兩年,該調查中使用深度學習工具的投票者所佔份額保持穩定。2018 年有 33% 的投票者使用深度學習工具,2017 年和 2016 年分別有 32% 和 18%。谷歌維護的 TensorFlow 仍然佔主導地位,而發展迅速的 Keras 可作為構建在 TensorFlow 和 MXNet 等框架上的高級 API。
另一方面,主要由 Facebook 推動,推出已過一年的 PyTorch 吸引了一批研究者和工程人員,使用率達到 6.4%,排名第三。由於這款深度學習框架已和 Caffe2 合併,在未來我們肯定將會看到 PyTorch 佔據更大的份額。
不過 KDnuggets 更關注數據科學,也更常使用淺層的機器學習演算法。我們可能更希望了解機器學習及深度學習社區在框架上的選擇,因此讀者可以在文末對常用的深度學習框架進行投票。
深度學習工具排名:
- Tensorflow, 29.9%
- Keras, 22.2%
- PyTorch, 6.4%
- Theano, 4.9%
- Other Deep Learning Tools, 4.9%
- DeepLearning4J, 3.4%
- Microsoft Cognitive Toolkit (Prev. CNTK), 3.0%
- Apache MXnet, 1.5%
- Caffe, 1.5%
- Caffe2, 1.2%
- TFLearn, 1.1%
- Torch, 1.0%
- Lasagne, 0.3%
大數據工具:Hadoop 使用率下降
2018 年,大約 33% 的用戶使用大數據工具,要麼是 Hadoop,要麼是 Spark,和 2017 年一樣。但 Hadoop 的使用率顯著下降,跌幅超過 30%。
以下是相關細節:
編程語言
Python 似乎不僅正在取代 R,還包括除了 SQL、Java、C/C++ 之外的大多數其它語言,這三者與 Python 大致處於同一個級別。自 KDnuggets 開始做這項調查以來,R 使用率首次出現下跌。其它語言也出現了衰落的趨勢。
以下是按熱門度排序的主要編程語言:
- Python, 65.6% (was 59.0% in 2017), 11% up
- R, 48.5% (was 56.6%), 14% down
- SQL, 39.6% (was 39.2%), 1% up
- Java, 15.1% (was 15.5%), 3% down
- Unix, shell/awk/gawk, 9.2% (was 10.8%), 15% down
- Other programming and data languages, 6.9%, (was 7.6%), -9% down
- C/C++, 6.8%, (was 7.1%), 3% down
- Scala, 5.9%, (was 8.3%), 29% down
- Perl, 1.0% (was 1.9%), 46% down
- Julia, 0.7% (was 1.2%), 45% down
- Lisp, 0.3% (was 0.4%), -25% down
- Clojure, 0.2% (was 0.3%), -38% down
- F, # 0.1% (was 0.5%), -73% down
地區參與度
本次調查中不同地區的參與比例是:
- 歐洲,37.5%
- 美國/加拿大,36.6%
- 亞洲,11.7%
- 拉丁美洲,6.6%
- 非洲/中東,4.5%
- 澳大利亞/紐西蘭,3.1%
和 2017 年相比,主要的變化是歐洲的參與比例變高了(之前為 35.5%),而美國/加拿大的參與比例變低了(之前為 41.5%)。
完整結果和 3 年來的趨勢
以下表格展示了調查結果的細節(由於篇幅限制,此處僅列出排名前 12 的工具):
更完整的列表請參考原文:https://www.kdnuggets.com/2018/05/poll-tools-analytics-data-science-machine-learning-results.html
推薦閱讀:
※計算圖與反向傳播
※機器學習數學:拉格朗日對偶問題
※seq2seq模型中beam search的改進
※Hinton神經網路課第二講筆記:感知機