數據科學與大數據技術是一門偏向應用的學科領域,因此工具就成爲重要的組成部分。在工作中,數據科學家如果選擇有效的工具會帶來事半功倍的效果。一般來說,數據科學家應該具有操作數據庫、數據處理和數據可視化等相關技能,還有很多人還認爲計算機技能也是不可或缺的,可以提高數據科學家工作的效率。
在這裏相信有許多想要學習大數據的同學,大家可以+下大數據學習裙:957205962,即可免費領取套系統的大數據學習教程
開源社區多年來對數據科學工具包開發有着巨大貢獻,這也讓數據科學領域得以不斷進步。這裏我們收集了一些在數據庫、編程語言、機器學習、可視化、計算機等方面的開源工具。希望可以幫助到更多數據科學家及對這個領域感興趣的人。
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用於更基本的數據分析,可以執行組織和操作數據或從數據庫檢索數據等任務。在數據科學工具中,它是在數據庫中過濾和選擇數據的最佳工具之一。
在這裏相信有許多想要學習大數據的同學,大家可以+下大數據學習裙:957205962,即可免費領取套系統的大數據學習教程
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系統無包管理的缺陷。