資料科學融合了多門學科並且建立在這些學科的理論和技術之上,包括數學、機率模型、統計學、機器學習、資料倉儲、視覺化等。在實際應用中,資料科學包括資料的收集、清洗、分析、視覺化以及資料應用整個迭代過程,最終幫助組織制定正確的發展決策資料科學的從業者稱為資料科學家。資料科學家有其獨特的基本思路與常用工具,本文全面梳理資料分析師和資料科學家使用的工具包,包括開源的技術平臺相關工具、挖掘分析處理工具、其它常見工具等幾百種,幾十個大類,部分網址!
資料科學家是有著開闊視野的複合型人才,他們既有堅實的資料科學基礎,如數學、統計學、計算機學等,又具備廣泛的業務知識和經驗資料科學家透過精深的技術和專業知識在某些科學學科領域解決複雜的資料問題,從而制定出適合不同決策人員的大資料計劃和策略。資料分析師和資料科學家使用的工具在網上的MOOC有提供,比如2016年2月1日約翰-霍普金斯大學Coursera資料科學專業化課程等網路課程。資料科學家的常用工具與基本思路,並對資料、相關問題和資料分析師和資料科學家使用的工具做了綜合概述。
C.常見的資料探勘分析處理工具
1、Dynelle Abeyta整理的資料科學家5種工具(2015-09-29):
dedup——dedup是一個Python庫,使用機器學習快速的對結構化資料進行重複資料刪除和實體解析。資料科學家發現他們經常需要使用SELECT DISTINCT * FROM my_messy_dataset;不幸的是,現實世界中的資料集往往更加複雜。無論你是去對多個資料來源進行彙總,還是簡單的資料收集,開始你都需要對重複資料的刪除做一個有意義的分析。如你所想,有取之不盡的方法可以用來合併資料和用之不竭的規則來定義你資料的等價意義。有相同地址的兩家餐館是屬於一個公司麼?名和姓都相同的兩條記錄就是同一個人麼?你很幸運,dedup可以讓你轉危為安!基於創新的電腦科學研究,dedup使用機器學習(更確切地說,應該是主動學習)去學習,透過合併人類的反饋對兩個可能的模稜兩可的記錄進行研究,並尋找究竟是什麼構成了兩者的“相似”。更方便的是,它有一個圖形使用者介面(GUI),任何人都可以使用它。
Theano——Theano是一個Python庫,你可以有效地定義、最佳化以及評估包含多維陣列的數學表示式。Theano的特點:
· 和Numpy緊密結合——在Theano編譯的函式中使用numpy.ndaaray。
· GPU的透明使用——在執行密集型資料計算時,相比於CPU,速度提升了140倍。(使用float32進行測試)
· 速度和穩定性最佳化——對log(1+x)得到正確的答案,即使x真的很小。
· C語言程式碼動態生成——加速評估表示式。
· 廣泛的單元測試和自我驗證——發現和診斷不同種類的錯誤。
StarCluster——StarCluster已經開始在Amazon的EC2雲伺服器中設計虛擬機器建立、配置和管理叢集的自動和簡化程式。StarCluster允許所有人在面向分散式和平行計算的應用和系統的雲伺服器中輕鬆的建立一個叢集計算環境。這允許你在無限制的資料上做互動程式。(貢獻者Alessandro Gagliardi,Galvanize資料科學指導者。)
graph-tool——在python網路和圖形分析庫與日俱增的情況下,圖形工具給了不少希望。儘管像NetworkX和Gephi這樣的工具在不斷成長的工具中仍然還有它們的一席之地,但是對於那些想要做大影像高階分析的人來說——無論是社會網路、道路網路、還是生物網路——這兩者往往會顯得力不從心。NetworkX一直是用於網路分析的最流行的Python工具,因為它有著豐富的API並且使用的門檻很低,但是一旦你開始處理更大的圖形,純python實現的弊端才真正開始凸顯。而Gephi是一個極好的互動式視覺化和開發新影像的圖形化工具,但是有一個麻煩的指令碼介面,使得它很難使用程式設計方式去控制。圖形工具嘗試從它前輩中吸取經驗教訓並給資料科學家最好的結果。它使用C++實現(可並行執行)並用Python來武裝,繫結了一個易於使用的API,同時獲得了超快的速度,而且不影響使用性。
Plotly——Plotly是一個面向R,Python,MATLAB,JavaScript和Excel的互動式圖形庫。Plotly也是一個用於分析和分享資料和影像的平臺。Plotly是如何與眾不同的呢?與Google Docs和GitHub一樣,你可以協調和控制你的資料;可以將檔案設定成公有的、私有的、秘密檔案或是分享的。如果你使用plotly的免費公共雲,離線Plotly,或是現場部署,下面的選項很多都是可以獲得的。在你的工作流中可以使用Plotly,這裡有三種可用方式:
為資料科學家整合其它工具。Plotly的R,Python和MATLAB的API可以讓你做互動、更新儀表皮膚和影像。Plotly整合了IPython Notebooks,NetworkX,Shiny,ggplot2,matplotlib,pandas,reporting tools和資料庫。例如,下面的圖是使用ggplot2製作的,然後嵌入到這個部落格中。將滑鼠懸停後看看資料變化,然後單擊拖動放大。
建立互動式地圖。Plotly的圖形庫建立在D3.js之上。對於地理資料,Plotly支援分級統計圖、散點圖、氣泡圖、分塊圖和線圖。你可以製作類似下面這樣的地圖,像R和Python一樣把它們嵌入到部落格,應用程式和儀表板。
建立全方位的視覺化。你可以為使用Plotly滿足任意的視覺化需求:地圖、2D、3D以及流圖。點選並移動你的滑鼠來旋轉這個圖,懸停並觀察資料變化,或切換放大。
2、6種開源資料探勘工具:百分之八十的資料是非結構化的,需要一個程式和方法來從中提取有用資訊,並且將其轉換為可理解、可用的結構化形式。資料探勘過程中有大量的工具可供使用,比如採用人工智慧、機器學習,以及其他技術等來提取資料。以下為您推薦六款開源大資料探勘工具:
1)WEKA——WEKA原生的非Java版本主要是為了分析農業領域資料而開發的。該工具基於Java版本,是非常複雜的,並且應用在許多不同的應用中,包括資料分析以及預測建模的視覺化和演算法。與 RapidMiner 相比優勢在於,它在 GNU 通用公共許可證下是免費的,因為使用者可以按照自己的喜好選擇自定義。WEKA 支援多種標準資料探勘任務,包括資料預處理、收集、分類、迴歸分析、視覺化和特徵選取。新增序列建模後,WEKA 將會變得更強大,但目前不包括在內。
2)RapidMiner——該工具是用Java語言編寫的,透過基於模板的框架提供先進的分析技術。該款工具最大的好處就是,使用者無需寫任何程式碼。它是作為一個服務提供,而不是一款本地軟體。值得一提的是,該工具在資料探勘工具榜上位列榜首。另外,除了資料探勘,RapidMiner 還提供如資料預處理和視覺化、預測分析和統計建模、評估和部署等功能。更厲害的是它還提供來自WEKA(一種智慧分析環境)和R指令碼的學習方案、模型和演算法。RapidMiner分佈在AGPL開源許可下,可以從 SourceForge上下載。SourceForge是一個開發者進行開發管理的集中式場所,大量開源專案在此落戶,其中就包括維基百科使用的 MediaWiki。
3)NLTK——當涉及到語言處理任務,沒有什麼可以打敗NLTK。NLTK提供了一個語言處理工具,包括資料探勘、機器學習、資料抓取、情感分析等各種語言處理任務。而您需要做的只是安裝NLTK,然後將一個包拖拽到您最喜愛的任務中,您就可以去做其他事了。因為它是用Python語言編寫的,你可以在上面建立應用,還可以自定義它的小任務。
4)Orange——Python之所以受歡迎,是因為它簡單易學並且功能強大。如果你是一個Python開發者,當涉及到需要找一個工作用的工具時,那麼沒有比Orange更合適的了。它是一個基於Python語言,功能強大的開源工具,並且對初學者和專家級的大神均適用。此外,你肯定會愛上這個工具的視覺化程式設計和 Python 指令碼。它不僅有機器學習的元件,還附加有生物資訊和文字挖掘,可以說是充滿了資料分析的各種功能。
5)KNIME——資料處理主要有三個部分:提取、轉換和載入。而這三者KNIME都可以做到。KNIME為您提供了一個圖形化的使用者介面,以便對資料節點進行處理。它是一個開源的資料分析、報告和綜合平臺,同時還透過其模組化資料的流水型概念,整合了各種機器學習的元件和資料探勘,並引起了商業智慧和財務資料分析的注意。KNIME是基於Eclipse,用Java編寫的,並且易於擴充套件和補充外掛。其附加功能可隨時新增,並且其大量的資料整合模組已包含在核心版本中。
6)R-Programming——如果我告訴你R專案,一個GNU專案,是由R(R-programming簡稱,以下統稱R)自身編寫的,你會怎麼想?它主要是由C語言和FORTRAN語言編寫的,並且很多模組都是由R編寫的,這是一款針對程式語言和軟體環境進行統計計算和製圖的免費軟體。R語言被廣泛應用於資料探勘,以及開發統計軟體和資料分析中。近年來,易用性和可擴充套件性也大大提高了 R 的知名度。除了資料,它還提供統計和製圖技術,包括線性和非線性建模,經典的統計測試,時間序列分析、分類、收集等等。
3、資料分析語言3種工具:隨著資料科學分析工具的發展,一方面成功解決了資料科學中的演算法失效、超大規模資料視覺化等一系列挑戰;另一方面各具特點和優缺點。例如Mahout具有優秀的大資料處理能力,不僅處理資料量大且速度快,但視覺化能力差。接下來選取R語言、RapidMiner、Mahout三種主流的資料科學分析工具,對其概述並以表格的形式對三者的主要特點進行了比較分析,工具基本情況如下。
1)R語言用於統計計算和作圖的程式語言和環境,採用命令列工作方式,在GNU協議下免費發行,其原始碼可供自由下載和使用。R網站CRAN上提供了大量的第三方程式包,內容涵蓋了經濟學、社會學、統計學、生物資訊學等諸多方面,這也是為什麼越來越多的各行各業的人員喜愛R的一個重要原因。針對傳統分析軟體的擴充套件性差以及Hadoop的分析功能薄弱的弱勢,研究人員致力於將R語言和Hadoop的整合。R作為開源的統計分析軟體,透過R與Hadoop的深度整合,把資料計算推向並行處理,使Hadoop獲得強大的深度分析能力。
2)RapidMiner原名Yale,是一種用於資料探勘、機器學習以及商業預測分析的開源計算環境。其既可以使用簡單的指令碼語言進行大規模程序操作,也可以透過JavaAPI或GUI模式進行操作。因為其具備GUI特性,所以對於資料探勘的初學者比較容易入門。RapidMiner6具有友好而強大的工具箱,提供快而穩定的分析,可以在短時間內設計好一個原型,使得資料探勘過程中的關鍵決策儘可能早地實現。幫助減少客戶流失、進行情感分析、預測性維護以及市場直銷等。
3)ApacheMahout起源於2008年,其主要目標是構建一個可伸縮的機器學習演算法的資源庫,它提供了一些經典的機器學習演算法,旨在幫助開發人員更加方便快捷地建立智慧應用程式。目前,Mahout的專案包括頻繁子項挖掘、分類、聚類、推薦引擎(協同過濾)。
4、資料探勘5種工具分別為:Intelligent Miner、SAS Enterpreise Miner 、SPSS Clementine、馬克威分析系統、GDM,下面將作部分介紹。
1)Intelligent Miner綜述:IBM的Exterprise Miner簡單易用,是理解資料探勘的好的開始。能處理大。資料量的挖掘,功能一般,可能僅滿足要求.沒有資料探索功能。與其他軟體介面差,只能用DB2,連線DB2以外的資料庫時,如Oracle, SAS, SPSS需 要安裝DataJoiner作為中間軟體。難以釋出。結果美觀,但同樣不好理解。
2)SAS Enterprise Miner綜述:SAS完仝以統計理論為基礎,功能強大,有完備的資料探索功能。但難以掌握,要求是高階統計分析專業人員.結果難以理解。價格也極其昂貴,而且是租賃模式。基本內容:支援SAS統計模組,使之具有傑出的力量和影響,它還透過大量資料探勘演算法增強了那些模組。SAS使用它的SEMMA方法學以提供一個能支援包括關聯、聚類、決策樹、神經元網路和統計迴歸在內的廣闊範圍的模型資料探勘工具。
3)SPSS(Statistical Product and Service Solutions)綜述:“統計產品與服務解決方案”軟體。最初軟體全稱為“社會科學統計軟體包”。但是隨著SPSS產品服務領域的擴大和服務深度的增加,SPSS公司已於2000年正式將英文全稱更改為“統計產品與服務解決方案”。用作多個領域和行業,是世界上應用最廣泛的專業統計軟體。
199IT大資料導航,彙集超1000多款與資料相關的工具(//hao.199it.com/ )