排行榜|數據科學中的R包與Python包

Data Incubator(數據孵化器)公司是專業的數據科學培訓公司,他們一開始主要幫助研究生們實現數據科學家的轉型,現在他們已與上百家國際知名公司合作,為這些公司推薦了大量的數據科學人才,並承攬數據科學內訓業務。

為了數據科學愛好者們儘快熟悉開發工具並獲得經驗,Data Incubator總結並提煉了許多數據科學職業中的速查手冊,常用R包、Python包的排行榜就是他們研發的一個成果。通過這兩個排行榜,數據科學求職者可以很快了解業內最流行的機器學習工具包。

Python 和 R 語言是數據科學中最常見、最受歡迎的工具,它們的軟體包資源眾多,然而哪些才是數據科學工作中最常用的呢?Data Incubator公司通過分析總結,為你呈現了業內實踐中最流行軟體包的排行譜。

Advertisements

下面我們分別介紹一下2017 上半年Data Incubator推出的R包排行榜和Python包排行榜。

排行榜:機器學習的16個常用R包

(原文詳見:http://blog.thedataincubator.com/2017/03/ranked-16-r-packages-for-machine-learning/)

該排名基於 :CRAN ( The Comprehensive R Archive Network (https://cran.r-project.org/) )網站上的R包下載量; Stack Overflow(最著名的與編程相關的技術問答網站) 活躍度的平均排名;以及GitHub(開源領域最著名的個人軟體項目版本管理平台)上的熱度排名。

Advertisements

其中 CRAN 的下載量是過去一年的數據。Stack Overflow 則是根據基於問題正文中下載包的名稱並以 『R』進行標記的結果數進行排名。GitHub 的排名則是由存儲庫中的星星數(相當於被關注或點贊的次數)而來。

caret 排名第一也許並不奇怪。它是一個用於創建機器學習工作流的通用軟體包,用起來有點像Python的SciKit-Learn,能很好地與一些有監督的機器學習包整合在一起。

比如 e1071包 ( 主要有支持向量機演算法,SVMs), rpart (決策樹), glmnet ( 廣義線性模型和正則化回歸),以及R的神經網路包nnet等。

排名中的R包還包括:randomForest包實現了隨機森林演算法; tree包可實現分類和回歸樹;party 用於二叉樹的遞歸分割和可視化;arules 則用於關聯規則挖掘;支持向量機(SVMs)和其他的內核方法則部署在 kernlab 中;h2o 包是實現并行分散式大數據計算的深度學習包,而且是更大的 H2O 項目的一部分;ROCR 用於模型評估,包括 ROC 曲線(接收者操作特徵曲線,receiver operating characteristic curve);gbm 實現了梯度推進模型、AdaBoost演算法及其擴展; RWeka包是Weka的R介面, Weka是用Java編寫的數據挖掘演算法的集合;而 rattle 是 R數據挖掘演算法 的一個圖形用戶界面(GUI);earth包則實現了 多元自適應回歸樣條分析。

排名也反映了 R 包資源的分散化程度。一些頂級的軟體包,比如 rpart 和 tree,實現了相同的演算法,這與 Python 的 scikit-learn 的集成性和一致性形成了鮮明對比。

這個排行榜更多地體現了編程人員的偏好。其實在不同的應用場景中,數據科學家們的偏好也是各具特色的。比如數據可視化的神器ggplot2;數據處理常用包tidyverse 、plyr、reshape中等也是很受歡迎的。但從這個排行中,我們可以清楚地感覺到,神經網路、深度學習項目的蓬勃發展對排名所產生的巨大影響。

排行榜:數據科學的15個常用Python 包

(原諒詳見:http://blog.thedataincubator.com/2017/04/ranked-15-python-packages-for-data-science/)

與R包排名策略相似,Python包排名基於軟體包在 Github 的活躍度和 Stack Overflow 活躍度,其指標為 PyPI(Python 庫的索引)下載量。

該表單展示了標準分,其中 1 代表高於平均值(均值為 0)一個標準差。例如,numpy 在 Stack Overflow activity 中標準分為 2,其表明高於平均值 2 個標準差,而 TensorFlow 就更接近於均值。

對於這一排位表,研究者專註於使用一些標準進行排序,包括機器學習包的排序列表(exhaust list)和三個客觀指標:總下載量、Github 收藏數和 Stack Overflow 問題數量。

然而,可擴展的機器學習包 TensorFlow(起源於谷歌)比其他庫在 Github 上要活躍地多(基於收藏和分享數)。更通用的機器學習模塊 scikit-learn 在 Github 排名第 2,整體排名第 5。

TensorFlow 和 scikit-learn 明顯在 Github 上具有優勢。恰當反映了他們在開源編程領域的熱度。

在所有核心庫中,numpy 是最受歡迎的(擊敗了 pandas 和 scipy)。numpy 遙遙領先排名第 1,pandas 第 3,ipython 第 4,scipy(一個用於數學、科學和工程學的開源軟體生態系統)第 9。

在神經網路中,TensorFlow 的表現要優於 Theano。精心打造的互動式 TensorFlow Playground 可能是 TensorFlow 領先的原因之一。

pandas是高性能數據結構和數據分析包;ipython 是互動式解釋器; jupyter project是非常流行的 Python 代碼展示方式;(ipython notebook 現在稱為 jupyter notebook。Stack overflow 自動將 ipython-notebook 更正為 jupyter notebook,所以研究者結合了其他兩個來源的 jupyter notebook 結果。但 jupyter notebook 並沒有下載數,所以其並不會出現在最終的排名中。不過研究者分別對 ipython 和 jupyter 進行了研究。)matplotlib 是最受歡迎的圖形庫;plotly可以輕鬆在線發布的互動式、出版級別的圖表; bokeh是面向現代網頁瀏覽器的互動式可視化庫;ggpy是R 的流行的 ggplot2 包的 Python 介面。

Advertisements

你可能會喜歡