資料科學與大資料技術是一門偏嚮應用的學科領域,因此工具就成為重要的組成部分。在工作中,資料科學家如果選擇有效的工具會帶來事半功倍的效果。一般來說,資料科學家應該具有運算元據庫、資料處理和資料視覺化等相關技能,還有很多人還認為計算機技能也是不可或缺的,可以提高資料科學家工作的效率。
開源社群多年來對資料科學工具包開發有著巨大貢獻,這也讓資料科學領域得以不斷進步。這裡我們收集了一些在資料庫、程式語言、機器學習、視覺化、計算機等方面的開源工具。希望可以幫助到更多資料科學家及對這個領域感興趣的人。
1.1 MongoDB
MongoDB是一個以可伸縮性和高效能著稱的NoSQL資料庫。它提供了傳統資料庫的強大替代品,並使特定應用程式中的資料整合更加容易。特別適用於構建大型web應用程式。
1.2 Apache HBase
Apache HBase(Hadoop資料庫)是一個分散式、可擴充套件的大資料儲存。資料科學家在需要對大資料進行隨機、實時讀/寫訪問時,可以使用這個開源工具。
2.1 R
R是一種用於資料處理和圖形處理的程式語言,是資料科學家和分析人員使用的一種流行工具。根據資料科學家的說法,R語言是最容易學習的語言之一,因為有大量的包和指南可供使用者使用。
2.2 Python
Python是資料科學家中另一種廣泛使用的語言,它是一種通用程式語言,著眼於可讀性和簡單性。而且python中有非常多可以用於資料處理、機器學習和視覺化的程式碼庫。
* 資料科學中常用的庫見文章:https://mp.weixin.qq.com/s/dLrZWsqrZW7XqG6phS3R7g
2.3 Scala
Scala是一種執行在Java平臺上的通用程式語言。它適用於大型資料集,主要用於Apache Spark和Apache Kafka等大資料工具。這種函式式程式設計風格帶來了速度和更高的生產率,這導致越來越多的公司慢慢地將其作為資料科學工具包的重要組成部分加以適應。
2.4 SQL
SQL是用於儲存在關係資料庫中的資料的專用程式語言。SQL用於更基本的資料分析,可以執行組織和運算元據或從資料庫檢索資料等任務。在資料科學工具中,它是在資料庫中過濾和選擇資料的最佳工具之一。
2.5 Julia
Julia是一種用於技術計算的動態程式語言。它沒有被廣泛使用,但由於其靈活性、設計和效能,在資料科學工具中越來越受歡迎。
3.1 RapidMiner
RapidMiner是一個具有視覺化和統計建模功能的預測分析工具。該軟體的基礎是RapidMiner Studio,它是一個免費的開源平臺。
3.2 Data Melt
Data Melt是一款數學軟體,擁有先進的數學計算、統計分析和資料挖掘功能,而且可以透過程式語言進行補充,甚至包含一個廣泛的教程庫。
此外,Python和R中都有很多用於資料挖掘的庫,這裡就不再贅述了。
4.1 Weka
Weka是由懷卡託大學用Java編寫的機器學習軟體。它用於資料挖掘,允許使用者處理大資料集。Weka的一些特性包括預處理、分類、回歸、聚類、實驗、工作流和視覺化。
4.2 TensorFlow
TensorFlow是一個用於數值計算的軟體庫,它允許程式員在不需要理解其背後的一些複雜原理的情況下的應用深度學習,並被列為幫助數千家公司應用深度學習的資料科學工具之一。
4.2 Apache Mahout
Apache Mahout是一種構建可伸縮機器學習演演算法的環境。演演算法是在Hadoop上編寫的。Mahout實現了三個主要的機器學習任務:協同過濾、聚類和分類。
4.3 Orange
Orange一個是簡單的資料科學工具,它致力於使資料科學變得有趣和互動式,允許使用者在不需要編碼的情況下分析和視覺化資料,也為初學者提供機器學習選項。
4.4 MLBase
MLBase是加州大學伯克利分校的AMP(演演算法機器人)實驗室開發的一個開源專案。背後的核心思想是為機器學習應用於大規模問題提供一個簡單的解決方案。
5.1 D3
5.2 Axiis
在資料科學工具中,Axiis是一個鮮為人知的資料視覺化框架。它允許使用者以一種富有表現力和簡潔的形式使用預先構建的元件構建圖表和探索資料。
6.1 Linux
Bash指令碼是電腦科學中最基本的工具,並且資料科學中很大一部分需要程式設計,必須用一些命令列來處理包、框架管理、環境變數、訪問路徑($PATH)等等,因此Linux是必要的。
6.2 Git
在團隊中編碼時,可以藉助 git解決團隊成員程式碼衝突、修複bug、更新。將程式碼提交到開源或私有的repo(如Github)時,可以使用Coveralls之類的東西進行程式碼測試,還有幫助部署程式碼到生產中的其他框架。
6.3 REST APIs
REST APIs可以讓本地的訓練模型和可用程式無縫銜接。透過標準API呼叫或開發可用的應用程式真正讓資料科學模型進行預測。這也是其在資料科學中的巨大作用。
6.4 Docker & Kubernetes
Docker讓使用者擁有一個生產就緒(production ready)的應用環境,不需要為每個執行的單個服務集中配置生產伺服器。與需要安裝完整作業系統的虛擬機器不同,docker容器在與主機相同的核心上執行,並且輕量得多。一些高階的機器學習庫(如Tensorflow)需要特定的配置,很難在某些主機上進行故障排除,docker就是一個很好地選擇。
Kubernetes(K8s)是一個在多主機上進行規模管理和部署容器化服務的平臺。本質上,這意味著您可以輕鬆地透過跨水平可擴充套件叢集,管理和部署docker容器。
6.5 Apache Airflow
Airflow是一個較為小眾的Python平臺,可以使用有向無環圖(DAG)程式化地建立、排程和監控工作流。它能讓你可以隨時根據需要輕鬆地設定Python或bash指令碼,併在使用者友好的GUI中控制排程作業。
6.6 Elasticsearch
Elasticsearch也是一個比較小眾的工具。Elastic透過Python客戶端便捷地提供了所需的一切,讓你可以輕鬆地以容錯和可擴充套件的方式索引和搜尋檔案。你擁有的資料越多,啟動的節點就越多,查詢執行的速度就越快。它有很多功能,甚至支援多語言分析器等定製外掛。
6.7 Homebrew
Homebrew是一個Mac OS系統的工具,可以幫助不能開箱即用的OS系統透過終端命令進行安裝, 彌補了OS系統無包管理的缺陷。
「完」
參考文章:
1、https://towardsdatascience.com/some-important-data-science-tools-that-arent-python-r-sql-or-math-96a109fa56d?source=email-217aec881dc8-1545693805102-digest.reader——1-50——————bed3ef37_25ac_4071_bf66_820b008c9815-12§ionName;=topic
2、https://www.springboard.com/blog/data-science-toolkit/
3、https://www.ngdata.com/top-tools-for-data-scientists/
編寫、排版、校對:冀佳鈺、朝樂門;