【資料科學職涯】21世紀最性感職業錢景大公開(上) — 技術篇

巫驊晏
Taiwanese in Data Science
10 min readAug 24, 2020

文/AshleyClaire共同編寫;主編/Claire

雖然說資料科學被列為這世紀最性感的職業之一,但是它並非只局限於電腦工程出身的人。因為資料科學源自於數據,延伸到制定與改變決策,流程上從資料導入、建立data pipeline,到將資料轉成資訊,並給予針對商業命題的建議,皆為資料科學的一環。

以目前的市場狀況來說,資料科學在業界上有很多職缺,每種職缺需要的技能會因公司的大小以及長久和組織架構而有所不同。

因此,同樣的職稱可能隨著公司定位不同而業務範圍有很大的差異。同樣的,許多人所擁有的技能會和過往的經歷相關。

資料科學的光譜分為技術到商業洞悉,在資料科學角色光譜圖- 米寫糕有很完整的介紹,作者leafwind依據他經驗所分出來以目前業界資料科學的角色和光譜。(摘自leafwind 文章)

也因為每個職缺要求的技能深度有所不同,想轉職的你可以依據想走的方向和目前的技能做連結來決定要學習的東西,並且從中找到自己的定位。

在這篇文章我們會專注於想走技術端所需要具備技能以及職涯發展,下一篇會提到對於想走商業端所需要具備的。

技能

這個章節包含了將資料工程架構到模型部署等需要之技能,我們會從一個個專案流程出發,講述每個階段所需要之技能。

資料科學專案流程 ( 摘自網路 )

1. 資料取得和清理(Get Data & Clean, Prepare & Manipulate Data)

首先,在資料分析專案前期,資料來源通常分成兩部分

  1. 公司已有
  2. 需要另外收集

以第一種狀況,需要 SQL 從資料庫裡面撈取並做處理。在第二種狀況下,大多會使用 Python / R 等程式語言網路爬蟲或是找開源資料串接。如需定期抓取資料,一般而言,會將寫好的程式檔案在公司提供的機器或是既定的架構部署,這邊下面部署的部分會再進一步介紹。

除此之外,如牽涉到資料庫效能上的問題等等,也需要Hadoop, Spark TC等大數據運算框架。

2. 建立模型和測試資料(Train Model & Test Data)

在建立模型及測試資料這個流程上,也需要 Python / R 語言完成的,其中需要做特徵工程(feature engineer),選擇模型到建立模型並且評估模型等等,所謂的特徵工程,是指將資料轉換成更符合命題方式的過程。

統計以及對於模型的理解有助於模型選則,譬如如果使用 cluster 就必須了解其為非監督式學習,以及其內部求解原理、如果是使用深度學習的演算法就要需要對於Tensor、flowCaffe、MXNet 等深度學習的框架等有所了解。

有了對於這些模型的了解,才能針對需求挑選適當的模型。甚至在專案需求下,能夠依據情境下開發新模型。另外,程式運算效率的設計,物件導向都影響著模型完整流程的時間長度,也是在開發過程中必經之路。

3. 部署(Deployment)

當模型建立完成以後,可以在自己的本機上面運算,但是要如何把模型結合到產品上面呢?這階段即為部署,是開發中很常見的一環,模型部署需要以下幾點:

a.測試環境

開發、正式和測試環境的存在主要原因是在於:在部署前,會需要保持環境的獨立性,也就是在保持不更動到正式環境下其他既有的程式下,確認目前的流程是可以將程式部署上機器,並且正確執行完成的。

另外,在環境部分也須考量跨平台環境,例如開發環境為 ios ,而測試和正式環境為 linux …等等。

因此也會遇到在自己環境下可以下載的模組,到測試環境下載跑出錯誤無法執行的狀況。如需減少跨平台環境所遇到的困難,就會需要了解 Docker, 將專案 dockerlize 在不同平台上。

b. 排程

如果專案是非一次性而是需要規律執行的話,就必須要在環境上設定排程。而這端看公司內部的環境,此時如果是使用傳統 server或雲端 server,如Google Cloud Plateform (GCP )的 Cloud engine 或是AWS 的EC2,就必須知道正式環境機器上的排程要怎麼設定 。

c. 版本控管

在專案上線之後,如需做修改或是加新功能時,就會用到版本控管的功能了。有了版本控管時,在做更動時如出現錯誤,也能很立刻的做回覆版本的動作,在專案裡如果和其他人協作也能夠輕易找出程式碼中修改之處。

4. 呈現結果

當模型部署完,資料科學專案上線了,要如何呈現專案的成果呢?這時候就需要有效的資料分析工具如 Tableau。有了資料視覺化和分析工具,不僅可以很有效率掌握專案的成果,也能將結果呈現給專案關係人。

綜合以上,往技術的方向走的話,需要具備的方向有:

  1. SQL
  2. Python/R程式語言
  3. 機器學習演算法
  4. 部署
  5. 雲端服務(如GCP, AWS…等)
  6. git 版本控管
  7. 資料視覺化

在我們上一期資料科學入門工具大補帖!| Taiwanese in Data Science 也介紹了上述工具。

職涯發展:數據工程師、資料科學家及機器學習專家

若將技術職位大致分為三類的話,可以分為數據工程師、資料科學家以及機器學習專家。接下來將針對職責、使用工具、使用語言以及薪資做介紹:

工作內容

技術端的職位對基礎知識要求扎實,要保持領域新論文的吸收,尤其資料科學家更是技術端職位的最終型態之一,有的理論能力突出、有的工程能力突出,各式系統的平台化部署都難不倒他。而數據工程師其實更偏技術,對程式人來說,發展道路更寬闊。

數據工程師可說是軟體工程師的一種,將原始數據紀錄到資料庫,主導資料結構的開發、儲存、計算和維護。

舉個簡單的例子,Medium上每一個用戶的行為,包括搜索問題、點擊留言、拍手等,都需要工程師透過寫 JavaScript把這些行為數據存進資料庫中,然後存成表格記錄每一天、每一秒、每個用戶做了什麼動作。

資料科學家的工作除了設計建模與演算法優化,也會需要對產業、產品有基本了解,才能正確釐清問題並定義關鍵衡量的指標。

剛開始工作的資料科學家,需要解決問題的範疇可能較小,比方說找到可以改善模型預測能力的特徵。以 Google 的 Data Scientist 而言,要解決的問題則是去了解:若搜索的排序改動,對於整體帶來的影響是什麼?要知道,Google 的搜索平均是 10 億/天,這個基數下,任何改動都是至關重要的。

Data Engineer v.s. Data Scientist (Karlijn Willems)

機器學習專家是真正負責系統開發的工程師,需要將系統或產品帶入上線,對模型的應用和調參更是決定身價的關鍵。

例如金融業的機器學習專家會需要規劃設計技術發展輪廓、並訂定數據分析模型的技術與流程標準。

使用工具和語言

數據工程師除了需要具備物件導向/函數式語言的經驗 (e.g. Python、Java、Scala)、也需要熟悉模型 (e.g. Hadoop、 Spark),數據科學家處裡的資料通常已經過第一階段的處理,專注在模型建置與分析上,因此統計軟體 (e.g. SAS/SPSS)、分析工具 (e.g. tableu),以及 Spark/Scala 都是常用的必備工具。而機器學習專家則要熟悉 Tensor flow/Caffe/MXNet 等深度學習框架以及數據分析模型的技術與流程標準。

以下為針對數據工程師、資料科學家與機器學習專家,在金融業與科技業的各大公司 JD 中整理的必備工具與能力:

數據工程師 (Data Engineer)

source :Apple/Foxconn/國泰金控

機器學習專家 (Machine Learning Scientist)

source:nVIDIA/玉山銀行

資料科學家 (Data Scientist)

left: data engineer, right: data scientist source: datacamp

薪酬水平

一般來說,能對核心產品、甚至公司發揮影響力的資料工程專家,薪資一般對應到業務型的數據運營 VP,待遇相當不錯。以下為 GlassDoor 與 104 人力銀行針對 AI 核心人才平均薪資整理:

source : GlassDoor

在美國,機器學習專家的薪資水準最高,其次是資料科學家,再來是數據工程師;在台灣,則可能因為職位名稱定義的不同,資料科學家是薪資水平最高的。特別的是,根據 104 統計,頂尖的 AI 工程師的平均年薪為 300 萬,因此,除了職位名稱本身的差異外,加強專業能力與實力也是提升薪資水平的關鍵因素。

結論

“If we want to have the biggest impact, the best way to do this is to make sure we always focus on solving the most important problems.

It sounds simple, but we think most companies do this poorly and waste a lot of time. We expect everyone at Facebook to be good at finding the biggest problems to work on.” — Mark Zuckerberg

隨著技能點逐漸補滿後,能發揮的影響力就會越大。從角色方面來說,從一開始只是執行專案的角色、聚焦關鍵績效指標改善,到評估哪些核心產品能透過機器學習更優化,再做到能將演算法和商業邏輯與用戶體驗相互結合,甚至影響公司整體決策。

除了技術角色,下篇文章針對想走商業端的資料科學工作者,說明了必備的技能點、關鍵考核指標與職涯發展。身為技術端溝通的角色,是公司或不可缺的位置,21 世紀最性感職業錢景大公開(下) — 商務篇,我們下周見!

文章推薦:

  1. 資料科學家為何需要了解資料工程|LeeMeng
  2. 想成為數據科學家?有什麼技能是必備的
  3. 如何成為一名資料科學家 | by Bryan Yang | 亂點技能的跨界人生
  4. 資料科學入門工具大補帖!| Taiwanese in Data Science
如果喜歡這篇文章,可以幫我們拍手 👏 👏👏 50下,並且follow我們的最新文章,支持我們繼續努力!
(找找左側或左下角 “拍手符號👏”,長按可以連拍50下喔)

--

--