數據分析的工作內容跟必備技能網路上,已經很多人有寫過類似文章,可以參考:
影片的話,可以參考這部;對於DA/BA/DS等職位的解釋、以及工作流程、內容,有很清楚的解釋。
回歸到我對於數據分析/數據科學的看法,會分為兩個部分來說:
- 數據分析流程
- 工作內容及職位
數據分析流程
對我而言,數據分析是一條龍的研究流程;從資料的取得、資料處理、建模分析到最後的視覺化呈現/商業報告。這整條龍需要熟悉多種程式(SQL、Python、Excel到甚至是網頁前後端、簡報製作等)、數學理論包括統計、微積分、線性代數等;如果是商業上的分析,甚至是要對本身的產業知識有所掌握。這整條路可以説水非常深,涉及領域很廣,接下來就一一解釋:
資料取得
最常被提及的就是網路爬蟲,但還有現在政府開放的Open data,甚至是許多企業的API可以串接,當然公司企業的CRM、ERP,儲存使用者log等資料庫,更甚是老舊企業使用excel儲存的xlsx、csv,都是可以取得資料的來源。
此部分需要的技術:
- 網路爬蟲
Python有套件許多套件可以使用:BeautifulSoup、Scrapy、PySpider
基本爬蟲的概念是透過向網頁發送request,取得html的資料,透過套件解析,並把需要的資料整理出來。 - API傳接
向API server發送特定參數的post,取得回傳的資料,大多是以json格式交換資料。 - 資料庫SQL語法
MSSQL、MySQL都是基本的資料庫,語法上大同小異,就是需要花點時間學習select、from、where等基本語法。
資料處理
取得資料後,就要想辦法合併整理成需要分析或者可以分析的資料樣式。主要就是篩選需要的資料、合併幾張分散的資料表,把相關的資料整併在一起、當然有一些資料會有異常值或缺失值,也都是此部分需要去做處理的。
此部分需要的技術:
- Python:numpy、pandas等套件
- R語言:data.table、data.frame等套件
- SQL:join、where等語法
建模分析
這部分通常分為數據分析與模型預測;一般來說數據分析就是這個部分,針對商業上遇到問題,進行統計分析、A/B test,並進行推論及驗證問題。
模型預測,包含透過統計模型或機器學習進行分類、分群,甚至是數值的預測。所以這部份需要比較好的數學基礎,及假設驗證的實驗概念。
此部分需要的技術:
- 敘述統計
- A/B test
- 統計模型
- 機器學習/深度學習
以上技術就比較不侷限對應的程式語言,又或者說每種程式語言都能做到,甚至也能用Excel都可以。
視覺化報告與應用
在一個完整的數據分析專案的最後,就是要針對分析的結論提出有效的商業決策建議報告、或應用及改善現有產品。應用來說,如果是訓練了一個模型,就是要把結果交給對應部門做下一步的處理,通常利用API串接,或利用資料庫提供公司內部使用。
此部分需要的技術:
- 資料視覺化:幫助閱聽者了解數據樣貌,增加報告易讀性。
工具:matplotlib、seaborn、ggplot2等 甚至也有聽過用Photoshop - 商業報告:完整的商業簡報製作,利用圖像化解釋理論模型及商業應用。
工具:PowerPoint、Keynote - Dashboard數據儀表板:制定特定的商業指標,提供決策者快速了解營運狀況。
工具:PowerBI、R shiny 等,也可以利用網頁架構手刻 - API應用:將模型產出數據存回資料庫,提供給相關單位使用。
工作內容及職位
以上是針對數據分析的流程介紹作業內容及所需技術;接下來會針對工作內容及職位介紹。
主要目前會先依資料型態不同,使用的模型會不太一樣,主要有以下三種類別:
- 數值資料:主要就是商業分析、電商平台為主的資料都是數值型,主要多為銷售紀錄,使用者log等資料,也是目前較多的數據分析範疇。工作職位多為數據分析師、商業分析師等。工作內容就像本文上半部敘述的樣貌,多半是要解決商業上的問題;或針對商業上的營運狀況做假設,再利用資料進行驗證及提出改善建議。
- 影像資料:我個人認為比較偏研究,但應用領域相對較為廣泛的部分。主要就是影像辨識,不論是圖像識別、或是動態的影像辨識。工作內容會比較像是研究演算法,提升模型辨識率(準確率)。
- 文字資料:文字探勘相對在中文領域有一定的困難,主要就是做網路輿論分析及辭意判讀,多半還會搭配聲音辨識,做所謂的聊天機器人的應用。追求的也是模型的準確率及資料詞庫的精準度。
接下來就依照職位介紹一下,不同的職位各自的工作內容工作內容
- Data Engineer資料工程師:
從一開始搜集資料,如何爬蟲、如何把資料放進資料庫,還有最後面如何把資料用api串接,甚至是基本的ETL都算是資料工程師的工作內容,主要來說就是處理資料結構及儲存上的問題。 - Data Analyst資料分析師:
能夠從資料庫撈資料,並利用資料進行統計分析,或是開發模型;通常需要比較好的統計基礎,並能夠快速掌握資料,以數據面出發分析資料。 - Algorithm Engineer演算法工程師:
很明確主要的工作內容,是在如何建構機器學習或深度學習的演算法模型,個人認為是需要有大量數學及演算法基礎的工作內容。 - Business Analyst商業分析師:
商業分析會以解決商業問題出發,程式基礎要求會是最低的,通常是只要會SQL或excel能夠整理資料就可以了。會著重在利用商業的角度,提供商業上的impact。 - Data Scientist資料科學家:
個人認為資料科學家是以上所有工作的通稱,甚至是要對以上的工作內容或職位都能夠有所掌握。
以上是針對現在數據領域的工作內容及職位一點點淺見,雖然資料科學領域的工作內容可以分的很細,但是最重要的還是產業問題。換一個領域就像是隔行如隔山,不僅資料型態差異很大,甚至要使用到的技術方法模型都不一樣。所以除了技術上面要有一定的掌握,更重要的是如何快速了解商業需求,解決商業問題,才能夠為公司帶來價值。
大數據已經被炒了三年五年了,在業界也逐漸重視以數據作為決策的依據。本文章,就是淺談我對於數據分析的工作內容,也希望看到的人,能夠更暸解自己對哪部分有興趣,又或者更釐清自己的工作範疇及熟悉的領域。