01.17 每個數據科學家都應該知道的18個基礎工具

典型的數據科學家工具箱中應至少包含以下各項中的一項或者多項,包括關係數據庫,NoSQL數據庫,大數據框架,可視化工具,抓取工具,編程語言,IDE和深度學習工具。

關係數據庫

關係數據庫是在具有屬性的表中結構化數據的集合。這些表可以相互鏈接,定義關係和限制,並創建所謂的數據模型。要使用關係數據庫,離不開SQL語言。在關係數據庫中管理結構和數據的應用程序是關係數據庫管理系統(RDBMS)。這樣的應用程序很多,而且越來越多的關係數據庫開始把重點放在數據科學領域,增加了與大數據存儲庫一起工作的功能,並應用瞭如數據分析和機器學習之類的技術。

1.SQL Server

SQL Server不斷擴展其企業功能已經發展了20多年。從2016版開始,SQL Server提供了一系列服務,其中包括對嵌入式R代碼的支持。SQL Server 2017通過將其R Services重命名為Machine Language Services,並增加了對Python語言的支持。通過這些重要的補充,SQL Server面向可能沒有Transact SQL(Microsoft SQL Server的本機查詢語言)經驗的數據科學家。

每個數據科學家都應該知道的18個基礎工具

你可以購買許可證以將其安裝在Windows Server上(價格會根據併發用戶的數量而有所不同),也可以通過Azure雲。而且SQL Server的學習曲線沒那麼陡峭。

2.MySQL

在開源軟件方面,MySQL是主流的關係數據庫。儘管Oracle目前擁有它,但它仍然是免費的,並且根據GNU通用公共許可證的條款是開源的。由於它符合SQL標準,因此大多數基於Web的應用程序都將MySQL用作基礎數據庫。

易於安裝的過程,龐大的開發人員社區,大量全面的文檔以及簡化日常管理活動的第三方工具有助於其受大受歡迎。儘管MySQL沒有進行數據分析的本機功能,但它的開放性使其可以與你選擇的幾乎所有可視化,報告和商業智能工具集成。

3.PostgreSQL

另一個開源關係數據庫選項是PostgreSQL。PostgreSQL雖然不如MySQL流行,但因其靈活性和可擴展性以及對複雜查詢的支持而脫穎而出,這些查詢超出了SELECT,WHERE和GROUP BY等基本語句。

這些功能使其在數據科學家中越來越受歡迎。另一個有趣的功能是對多環境的支持,該功能使其可以在雲和本地環境中使用,也可以在混合雲環境中使用。

PostgreSQL能夠將在線分析處理(OLAP)與在線事務處理(OLTP)相結合,並以一種稱為混合事務/分析處理(HTAP)的模式工作。由於添加了用於地理數據的PostGIS和用於文檔的JSON-B,它也非常適合處理大數據。PostgreSQL還支持非結構化數據,這使其可以歸為兩類:SQL和NoSQL數據庫。

NoSQL數據庫

也稱為非關係數據庫,這種類型的數據存儲庫提供了對非表格數據結構的更快訪問。這些結構的一些示例包括圖形,文檔,寬列,鍵值等。NoSQL數據存儲可以拋開數據一致性,轉而使用其他好處,例如可用性,分區和訪問速度。

由於NoSQL數據存儲中沒有SQL,因此查詢這種數據庫的唯一方法是使用低級語言,並且沒有像SQL這樣被廣泛接受的語言。此外,沒有NoSQL的標準規範,這就是為什麼某些NoSQL數據庫開始增加對SQL腳本支持的原因。

4.MongoDB

MongoDB是一種流行的NoSQL數據庫系統,它以JSON文檔的形式存儲數據。它的重點在於以非結構化方式存儲數據的可伸縮性和靈活性。這意味著在所有存儲的元素中都沒有固定字段列表。此外,數據結構可以隨著時間而改變,這在關係數據庫中意味著影響運行中的應用程序的高風險。

每個數據科學家都應該知道的18個基礎工具

MongoDB中的技術允許建立索引,臨時查詢和聚合,為數據分析奠定了堅實的基礎。數據庫的分佈式性質提供了高可用性,可伸縮性和地理分佈,而無需複雜的工具。

5.Redis

這是開源NoSQL前端中的另一個選項。它基本上是一個在內存中運行的數據結構存儲,除了提供數據庫服務外,它還用作高速緩存和消息代理。

它支持多種非常規的數據結構,包括哈希,地理空間索引,列表和排序集。它在數據密集型任務(例如計算集合交集,對長列表進行排序或生成複雜排名)中具有高性能,因此非常適合數據科學。Redis出色的性能的原因在於其內存操作。可以將其配置為選擇性地保留數據。

大數據框架

假設你必須分析社交網絡中用戶在一個月內生成的數據,比如照片,視頻,消息等等。考慮到其用戶每天向社交網絡添加大量數據,因此很難衡量一整月數據所代表的數量。

為了有效地操作大量數據,需要一個能夠在分佈式體系結構上計算統計信息的適當框架。主導市場的框架有兩個:Hadoop和Spark。

6.Hadoop

作為一個大數據框架,Hadoop處理與檢索,處理和存儲大量數據相關的複雜性。Hadoop在由處理簡單算法的計算機集群組成的分佈式環境中運行。有一種稱為MapReduce的編排算法,該算法將大任務分成小部分,然後在可用集群之間分配這些小任務。

對於需要快速訪問和高可用性的企業級數據庫,建議使用Hadoop,而所有這些操作均採用低成本方案。但是需要具有Hadoop豐富知識的Linux管理員來維護框架並運行。

7.Spark

Hadoop不是唯一可用於大數據操作的框架。這個領域的另一個大牌是Spark。在分析速度和易用性方面,Spark引擎旨在超越Hadoop。顯然,它達到了這個目標:一些比較表明,在磁盤上工作時,Spark的運行速度比Hadoop快10倍,而在內存中的運行速度則快100倍。它還需要較少數量的計算機來處理相同數量的數據。

除了速度之外,Spark的另一個好處是它對流處理的支持。這種類型的數據處理也稱為實時處理,涉及數據的連續輸入和輸出。

可視化工具

數據可視化工具從多個來源獲取經過預處理的數據,並以圖形化,易於理解的形式顯示得出的事實,市場上有數百種工具屬於此類。不管你喜不喜歡,使用最廣泛的是Excel及其圖表工具。使用Excel的任何人都可以訪問Excel圖表,但是它們的功能有限。這同樣適用於其他電子表格應用程序,例如Google Sheets和Libre Office。但是我們在這裡談論的是更具體的工具,這些工具是專門為商業智能(BI)和數據分析而量身定製的。

8.Power BI

不久前,微軟發佈了Power BI可視化應用程序。它可以從多種來源獲取數據,例如文本文件,數據庫,電子表格以及許多在線數據服務(包括Facebook和Twitter),並使用它來生成包含圖表,表格,地圖和許多其他可視化對象的儀表板。儀表板對象是交互式的,這意味著可以單擊圖表中的數據系列以選擇它,並將其用作板上其他對象的過濾器。

Power BI是Windows桌面應用程序(Office 365套件的一部分),Web應用程序和在線服務的組合,用於在Web上發佈儀表板並與用戶共享。該服務使你可以創建和管理權限,以僅將某些人授予對板的訪問權限。

9.Tableau

Tableau是從多個數據源的組合創建交互式儀表板的另一種選擇。它還提供了桌面版本,Web版本和聯機服務,以共享你創建的儀表板。它自然地“按照你想法”運行,並且對於非技術人員來說易於使用,並且通過大量的教程和在線視頻得到了增強。Tableau最強的功能包括無限的數據連接器,實時和內存數據以及針對移動設備進行優化的設計。

10.QlikView

QlikView提供了一個簡潔明瞭的用戶界面,可幫助分析人員通過直觀的元素從現有數據中發現新的見解,而每個人都容易理解。該工具是最靈活的商業智能平臺之一。它提供了一個稱為“關聯搜索”的功能,該功能可以幫助你專注於最重要的數據,從而節省了自行查找數據所需的時間。

每個數據科學家都應該知道的18個基礎工具

藉助QlikView,你可以與合作伙伴進行實時合作,進行比較分析。可以將所有相關數據組合到一個應用程序中,並具有限制訪問數據的安全功能。

抓取工具

在互聯網剛剛興起時,網絡爬蟲開始與網絡一起以自己的方式收集信息。隨著技術的發展,術語“web scraping”改為“ web crawling”,但含義仍然相同:從網站自動提取信息。要進行網頁抓取,你使用自動過程或漫遊器,它們從一個網頁跳到另一個網頁,從中提取數據並將其導出為不同的格式,或將其插入數據庫中以進行進一步分析。

以下是幾個流行的抓取工具。

11.Octoparse

Octoparse網絡抓取工具提供了一些有趣的功能,包括內置工具,這些工具可以從網站獲取信息,而這些信息使抓取機器人無法輕鬆地完成工作。它是一個無需編寫代碼的桌面應用程序,具有易於使用的用戶界面,可通過圖形化工作流程設計器可視化提取過程。

Octoparse與獨立的應用程序一起提供基於雲的服務,以加快數據提取過程。使用雲服務而不是桌面應用程序時,用戶可以獲得4倍至10倍的速度提升。如果你堅持使用桌面版本,則可以免費使用Octoparse。但是,如果你更喜歡使用雲服務,則必須選擇其中一項付費計劃。

12.Content Grabber

如果你正在尋找功能豐富的抓取工具,則應關注Content Grabber。與Octoparse不同,要使用Content Grabber,必須具有高級編程技能。你將使用腳本編輯,調試界面和其他高級功能。使用Content Grabber,可以使用.Net語言編寫正則表達式。這樣的話不必使用內置工具來生成表達式。

該工具提供了一個API,可以使用該API向桌面和Web應用程序添加抓取功能。要使用API,開發人員需要獲得對Content Grabber Windows服務的訪問權限。

13.ParseHub

ParseHub可以處理大量不同類型的內容,包括論壇,嵌套評論,日曆和地圖。它還可以處理包含身份驗證,Javascript,Ajax等內容的頁面。ParseHub可以用作可在Windows,macOS X和Linux上運行的Web應用程序或桌面應用程序。

每個數據科學家都應該知道的18個基礎工具

與Content Grabber一樣,建議你具有一些編程知識,以充分利用ParseHub。它有一個免費版本,限於5個項目,每次運行200頁。

編程語言

就像前面提到的SQL語言是專門為關係數據庫設計的一樣,還有其他一些語言專門針對數據科學而創建。這些語言使開發人員可以編寫處理大量數據分析的程序,例如統計數據和機器學習。

SQL也被認為是開發人員必須進行數據科學的一項重要技能,但這是因為大多數組織仍然在關係數據庫上擁有大量數據。“真正的”數據科學語言是R和Python。

14.Python

Python是一種高級解釋型通用編程語言,非常適合快速應用程序開發。它具有簡單易學的語法,可以使學習曲線更陡峭,並降低程序維護成本。有很多原因使它成為數據科學的首選語言。僅舉幾例:腳本編寫潛力,冗長性,可移植性和性能。

對於打算在進入真正的艱苦的數據整理工作之前進行大量試驗,並且想要開發完整的應用程序的數據科學家來說,這種語言是一個很好的起點。

15.R

R語言主要用於統計數據處理和繪圖。儘管它並不像Python那樣開發成熟的應用程序,但R由於其在數據挖掘和數據分析方面的潛力,近年來已變得非常流行。

由於不斷增長的免費軟件包擴展了其功能,R能夠執行各種數據處理工作,包括線性/非線性建模,分類,統計測試等。這不是一門易學的語言,但是一旦熟悉了它的邏輯,你將像專業人士一樣進行統計計算。

集成開發環境

如果你正在認真考慮致力於數據科學,那麼需要仔細選擇適合需求的集成開發環境(IDE),因為你將花費大量時間與IDE共同工作。

理想的IDE應該將你日常工作所需的所有工具彙總為一個編碼器:具有語法高亮和自動完成功能的文本編輯器,功能強大的調試器,對象瀏覽器以及對外部工具的輕鬆訪問。此外,它必須與你喜歡的語言兼容,因此在知道要使用哪種語言之後選擇IDE是一個好主意。

16.Spyder

該通用IDE主要供需要編程的科學家和分析人員使用。它不僅限於IDE功能-它還提供了用於數據探索/可視化和交互式執行的工具,這可以在科學包裝中找到。Spyder中的編輯器支持多種語言,並添加了類瀏覽器,窗口分割,跳轉到定義,自動代碼完成,甚至是代碼分析工具。

每個數據科學家都應該知道的18個基礎工具

調試器可幫助你以交互方式跟蹤每一行代碼,而探查器可幫助你查找和消除效率低下的問題。

17.PyCharm

如果你使用Python編程,則你選擇的IDE很有可能是PyCharm。它具有一個智能代碼編輯器,可進行智能搜索,代碼完成以及錯誤檢測和修復。只需單擊一下,就可以從代碼編輯器跳到任何與上下文相關的窗口,包括測試,超級方法,實現,聲明等。PyCharm支持Anaconda和許多科學軟件包,例如NumPy和Matplotlib,僅舉兩個例子。

它提供與最重要的版本控制系統以及測試運行器,事件探查器和調試器的集成。為了完成交易,它還與Docker和Vagrant集成以提供跨平臺開發和容器化。

18.RStudio

對於喜歡R的數據科學家而言,由於其眾多功能,因此選擇的IDE應該是RStudio。可以將其安裝在裝有Windows,macOS或Linux的桌面上,或者如果你不想在本地安裝它,則可以從Web瀏覽器運行它。兩種版本都提供諸如語法突出顯示,智能縮進和代碼完成之類的優點。當你需要瀏覽表格數據時,可以使用一個集成的數據查看器。

調試模式允許逐步執行程序或腳本時查看如何動態更新數據。對於版本控制,RStudio集成了對SVN和Git的支持。一個不錯的加法是可以使用Shiny和Gives庫編寫交互式圖形。


分享到:


相關文章: