天天看點

分類推薦&通俗易懂:資料科學與大資料技術專業領域的實用工具

資料科學與大資料技術是一門偏向應用的學科領域,是以工具就成為重要的組成部分。在工作中,資料科學家如果選擇有效的工具會帶來事半功倍的效果。一般來說,資料科學家應該具有操作資料庫、資料處理和資料可視化等相關技能,還有很多人還認為計算機技能也是不可或缺的,可以提高資料科學家工作的效率。

開源社群多年來對資料科學工具包開發有着巨大貢獻,這也讓資料科學領域得以不斷進步。這裡我們收集了一些在資料庫、程式設計語言、機器學習、可視化、計算機等方面的開源工具。希望可以幫助到更多資料科學家及對這個領域感興趣的人。

1. 資料庫

1.1 MongoDB

MongoDB是一個以可伸縮性和高性能著稱的NoSQL資料庫。它提供了傳統資料庫的強大替代品,并使特定應用程式中的資料內建更加容易。特别适用于建構大型web應用程式。

1.2 Apache HBase

Apache HBase(Hadoop資料庫)是一個分布式、可擴充的大資料存儲。資料科學家在需要對大資料進行随機、實時讀/寫通路時,可以使用這個開源工具。

2. 程式設計語言

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. 資料挖掘

3.1 RapidMiner

RapidMiner是一個具有可視化和統計模組化功能的預測分析工具。該軟體的基礎是RapidMiner Studio,它是一個免費的開源平台。

3.2 Data Melt

Data Melt是一款數學軟體,擁有先進的數學計算、統計分析和資料挖掘功能,而且可以通過程式設計語言進行補充,甚至包含一個廣泛的教程庫。

此外,Python和R中都有很多用于資料挖掘的庫,這裡就不再贅述了。

4. 機器學習

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. 資料可視化

5.1 D3

5.2 Axiis

在資料科學工具中,Axiis是一個鮮為人知的資料可視化架構。它允許使用者以一種富有表現力和簡潔的形式使用預先建構的元件建構圖表和探索資料。

6. 其他工具

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系統無包管理的缺陷。