大數(shù)據工程師練成記之首重:知識體系一覽!
我們想要告訴大家的是成為大數(shù)據工程師需要掌握的知識體系,而作為初學者,你可以先從簡單的入手,慢慢在學更深的知識,拿出高考的恒心和堅持來,肯定能行。
值得一提的是,目前大數(shù)據工程師的月薪都是20K起,月收入兩萬的薪資是不是很誘人?而且大數(shù)據工程師是非常容易找到工作的,所以……Why not
不扯犢子了,由于篇幅所限,這一部分內容主要包括數(shù)據可視化、機器學習和算法三個分支。
數(shù)據可視化
R
R不僅是編程語言,同時也R具有強大的統(tǒng)計計算功能和便捷的數(shù)據可視化系統(tǒng)。在此,推薦大家看一本書,這本書叫做《R數(shù)據可視化手冊》。
《R數(shù)據可視化手冊》重點講解R的繪圖系統(tǒng),指導讀者通過繪圖系統(tǒng)實現(xiàn)數(shù)據可視化。書中提供了快速繪制高質量圖形的150多種技巧,每個技巧用來解決一個特定的繪圖需求。讀者可以通過目錄快速定位到自己遇到的問題,查閱相應的解決方案。同時,作者在大部分的技巧之后會進行一些討論和延伸,介紹一些總結出的繪圖技巧。 《R數(shù)據可視化手冊》側重于解決具體問題,是R數(shù)據可視化的實戰(zhàn)秘籍?!禦數(shù)據可視化手冊》中絕大多數(shù)的繪圖案例都是以強大、靈活制圖而著稱的R包ggplot2實現(xiàn)的,充分展現(xiàn)了ggplot2生動、翔實的一面。從如何畫點圖、線圖、柱狀圖,到如何添加注解、修改坐標軸和圖例,再到分面的使用和顏色的選取等,本書都有清晰的講解。
此書在網上就可以購買得到,當然也有電子版。在此,我們放出一張用R做出來的可視化作品。
D3.js
D3 (Data-Driven Documents)是基于數(shù)據的文檔操作javascript庫,D3能夠把數(shù)據和HTML、SVG、CSS結合起來,創(chuàng)造出可交互的數(shù)據圖表。
ECharts
ECharts是一款數(shù)據可視化的純JavaScript圖標庫,其擁有混搭圖表、拖拽重計算、制作數(shù)據視圖、動態(tài)類型切換、圖例開關、數(shù)據區(qū)域選擇、值域漫游、多維度堆積等非常豐富的功能。
ECharts (Enterprise Charts 商業(yè)產品圖表庫)是基于HTML5 Canvas的一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數(shù)據可視化圖表。創(chuàng)新的拖拽重計算、數(shù)據視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數(shù)據進行挖掘、整合的能力。
ECharts提供商業(yè)產品常用圖表庫,底層基于ZRender,創(chuàng)建了坐標系,圖例,提示,工具箱等基礎組件,并在此上構建出折線圖(區(qū)域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、K線圖、餅圖(環(huán)形圖)、地圖、力導向布局圖,同時支持任意維度的堆積和多圖表混合展現(xiàn)。
Excel
Excel中大量的公式函數(shù)可以應用選擇,使用Microsoft Excel可以執(zhí)行計算,分析信息并管理電子表格或網頁中的數(shù)據信息列表與數(shù)據資料圖表制作,可以實現(xiàn)許多方便的功能,帶給使用者方便。與其配套組合的有:Word、PowerPoint、Access、InfoPath及Outlook,Publisher
事實上,Excel完全可以滿足大家日常工作中圖表制作和數(shù)據可視化的需求,所以,想要進入大數(shù)據行業(yè),學好Excel是基礎。
Python
Python 的科學棧相當成熟,各種應用場景都有相關的模塊,包括機器學習和數(shù)據分析。數(shù)據可視化是發(fā)現(xiàn)數(shù)據和展示結果的重要一環(huán),只不過過去以來,相對于 R 這樣的工具,發(fā)展還是落后一些。
幸運的是,過去幾年出現(xiàn)了很多新的Python數(shù)據可視化庫,彌補了一些這方面的差距。matplotlib 已經成為事實上的數(shù)據可視化方面最主要的庫,此外還有很多其他庫,例如vispy,bokeh, seaborn, pyga, folium 和 networkx,這些庫有些是構建在 matplotlib 之上,還有些有其他一些功能。
報表類:FineReport
工作中數(shù)據可視化呈現(xiàn)的最多場景就是報表了。大數(shù)據工程師要做的可視化可不單單是表格數(shù)據展示,還有將數(shù)據從數(shù)據倉庫中抽取得到實時呈現(xiàn)和展示。
FineReport是國內數(shù)一數(shù)二的報表工具,功能之強大已經完全覆蓋掉大部分企業(yè)日常辦公數(shù)據呈現(xiàn)的需求,與excel不同的是,F(xiàn)ineReport的部署結果是一個數(shù)據展現(xiàn)分析平臺,背后是數(shù)據中心,能夠實現(xiàn)數(shù)據的全管理,而excel專注于單機的數(shù)據分析。
機器學習
機器學習基礎
聚類
將物理或抽象對象的集合分成由類似的對象組成的多個類的過程被稱為聚類。由聚類所生成的簇是一組數(shù)據對象的集合,這些對象與同一個簇中的對象彼此相似,與其他簇中的對象相異。“物以類聚,人以群分”,在自然科學和社會科學中,存在著大量的分類問題。聚類分析又稱群分析,它是研究(樣品或指標)分類問題的一種統(tǒng)計分析方法。聚類分析起源于分類學,但是聚類不等于分類。聚類與分類的不同在于,聚類所要求劃分的類是未知的。聚類分析內容非常豐富,有系統(tǒng)聚類法、有序樣品聚類法、動態(tài)聚類法、模糊聚類法、圖論聚類法、聚類預報法等。
在數(shù)據挖掘中,聚類也是很重要的一個概念。
傳統(tǒng)的聚類分析計算方法主要有如下幾種:
1、劃分方法(partitioning methods)
2、層次方法(hierarchical methods)
3、基于密度的方法(density-based methods)
4、基于網格的方法(grid-based methods)
5、基于模型的方法(model-based methods)
當然聚類方法還有:傳遞閉包法,布爾矩陣法,直接聚類法,相關性分析聚類,基于統(tǒng)計的聚類方法等。
時間序列
時間序列(或稱動態(tài)數(shù)列)是指將同一統(tǒng)計指標的數(shù)值按其發(fā)生的時間先后順序排列而成的數(shù)列。時間序列分析的主要目的是根據已有的歷史數(shù)據對未來進行預測。構成要素:長期趨勢,季節(jié)變動,循環(huán)變動,不規(guī)則變動。
種類:
絕對數(shù)時間序列
時期序列:由時期總量指標排列而成的時間序列 。
相對數(shù)時間序列
把一系列同種相對數(shù)指標按時間先后順序排列而成的時間序列叫做相對數(shù)時間序列。
平均數(shù)時間序列
平均數(shù)時間序列是指由一系列同類平均指標按時間先后順序排列的時間序列。
保證序列中各期指標數(shù)值的可比性
(一)時期長短***一致
(二)總體范圍應該一致
(三)指標的經濟內容應該統(tǒng)一
(四)計算方法應該統(tǒng)一
(五)計算價格和計量單位可比
推薦系統(tǒng)
定義:它是利用電子商務網站向客戶提供商品信息和建議,幫助用戶決定應該購買什么產品,模擬銷售人員幫助客戶完成購買過程”。
推薦系統(tǒng)有3個重要的模塊:用戶建模模塊、推薦對象建模模塊、推薦算法模塊。通用的推薦系統(tǒng)模型流程如圖。推薦系統(tǒng)把用戶模型中興趣需求信息和推薦對象模型中的特征信息匹配,同時使用相應的推薦算法進行計算篩選,找到用戶可能感興趣的推薦對象,然后推薦給用戶。
回歸分析
回歸分析(regression analysis)是確定兩種或兩種以上變量間相互依賴的定量關系的一種統(tǒng)計分析方法。運用十分廣泛,回歸分析按照涉及的變量的多少,分為一元回歸和多元回歸分析;在線性回歸中,按照因變量的多少,可分為簡單回歸分析和多重回歸分析;按照自變量和因變量之間的關系類型,可分為線性回歸分析和非線性回歸分析。如果在回歸分析中,只包括一個自變量和一個因變量,且二者的關系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變量,且自變量之間存在線性相關,則稱為多元線性回歸分析。
文本挖掘
所謂PaaS實際上是指將軟件研發(fā)的平臺(計世資訊定義為業(yè)務基礎平臺)作為一種服務,以SaaS的模式提交給用戶。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現(xiàn)可以加快SaaS的發(fā)展,尤其是加快SaaS應用的開發(fā)速度。在2007年國內外SaaS廠商先后推出自己的PAAS平臺。
IaaS
IaaS(Infrastructure as a Service),即基礎設施即服務。
消費者通過Internet 可以從完善的計算機基礎設施獲得服務。這類服務稱為基礎設施即服務?;?Internet 的服務(如存儲和數(shù)據庫)是 IaaS的一部分。Internet上其他類型的服務包括平臺即服務(Platform as a Service,PaaS)和軟件即服務(Software as a Service,SaaS)。PaaS提供了用戶可以訪問的完整或部分的應用程序開發(fā),SaaS則提供了完整的可直接使用的應用程序,比如通過 Internet管理企業(yè)資源。
Openstack
OpenStack是一個開源的云計算管理平臺項目,由幾個主要的組件組合起來完成具體工作。OpenStack支持幾乎所有類型的云環(huán)境,項目目標是提供實施簡單、可大規(guī)模擴展、豐富、標準統(tǒng)一的云計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。
OpenStack是IaaS(基礎設施即服務)組件,讓任何人都可以自行建立和提供云端運算服務。
此外,OpenStack也用作建立防火墻內的“私有云”(Private Cloud),提供機構或企業(yè)內各部門共享資源。
Docker
Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創(chuàng)建Docker容器。Docker 容器通過 Docker 鏡像來創(chuàng)建。容器與鏡像的關系類似于面向對象編程中的對象與類。