Re: [請益] 想改行當資料科學家,能否給點建議?

看板 Soft_Job
作者 superalf (外星人)
時間 2018-05-17 23:47:01
留言 55則留言 (46推 0噓 9→)

同為物理PhD,分享自己的經驗給你參考 1. 程式語言 Python或R。這兩種并不互斥,我們team不少人兩種都會。個人覺得重點在: 1. 平行計算(concurrent/multi-threading/processing):根據問題是CPU-bound還是I /O-bound來選擇處理方式 2. iterator/generator:像用deep learning train model時需要的資料都很大,不太 可能全部load到記憶體,以及做data generator讓一筆raw data產生多筆訓練資料時都會 需要用到generator 3. profiling tools:要先知道程式的bottleneck在哪才有辦法優化 Python 我推薦Micha Gorelick跟Ian Ozsvald寫的High performance python這本書 2. 資料庫 SQL跟NoSQL基本上都會用到 3. 統計 重中之重。除了不同的machine learning方法,怎麼處理空值、極端值、unbalanced dat a、抽樣、假設檢定都很重要。特別是假設檢定,身為data scientist,不管在哪個產業 ,基本上都需要回答「根據現有的資料,哪種情況是最可能的」這種類型的問題。 個人推薦 Garett James, Daniela Witten, Trevor Hastie, Robert Tibshirani 寫的 A n introduction to statistical learning with R 這本書 4. 資料結構跟演算法:要有效率的處理軟體工程方面的問題,這方面的知識很重要。 我推薦Coursera上面Princeton的Robert Sedgewick跟Kevin Wayne開的Algorithms I & I I。這門課的精華在programming assignment。每個assignment基本上都會有50-70個test cases來測試時間跟空間複雜度,還有一些corner cases。不同的情況都要考慮到才能拿 到滿分。語言是用Java,但就算沒學過應該也不是問題,我那時也是邊學邊寫。題目通常 要你做一個module,裡面需要好幾個functions 但他只會給你interface,內容都要自己 寫。不像吳恩達的machine learning跟deep learning,很多內容都給了,只要把關鍵的 部份補上。我上了不少online courses,這門課是唯一我認為有難度的。但相對的,通過 的話軟工能力可以提升一個層次。 順便提一下面試的事。我不知道其他公司會怎樣準備跟進行,我們會看面試者的博論跟著 作,這都是網路上找的到的資料。我們會問面試者在工作或研究上使用過的工具,例如你 來,那可能會請你解釋一下基因演算法跟Monte Carlo method,為什麼選擇這個方法?它 的優點跟缺點?有考慮過其他的方法例如X或Y嗎?諸如此類的問題。我們會對面試者當時 做選擇背後的思考過程有興趣,藉此了解他工作或研究的廣度跟深度。 不確定自己有沒有面試過50個人,但30個一定有。結果幾乎都是entry level(可能是敝 司太爛強者不想來面)。有些人對自己使用工具背後的原理、假設、限制都不清楚,單純 call套件下指令。而大部份人選擇工具或方法的原因是「因爲老師/學長說的」。這並不 能怪他們而是我們的文化就是如此,但很難不令人感到絕望。找個mindsets ok的entry l evel進來自己訓練比較實際。想轉data scientist的人不少,但很多都只是想想,真的有 付出行動的不多。往好處想,在台灣你不用付出太多努力就可以贏過不少人。 另一方面,我也去面過十幾間公司,不少是想成立資料分析的部門(那些單純跟風,沒算 過成本跟效益的就不提了)。所以面試我的人其實并沒有能力評估我究竟適任與否,這也 同樣令人絕望。 最後,講一下資料科學家的工作 1. 資料的清理跟準備 Garbage in garbage out 這可不是說假的。舉凡補空值、trimming、處理unbalanced da taset、de-noise、normalise、feature selection and generation都在這部份。就我自 己的經驗,這部分對最終結果的影響是最大的,花費的時間也是最多的。 2. Background research。要唸很多papers,將有機會解決手中問題的方法盡可能找出來 3. 設計實驗,包括抽樣範圍跟方法,實驗怎麼進行,結果怎麼評估 4. 結果的解釋跟呈現(資料視覺化) 但在成為資料科學家之前,你必須先是位工程師 -- 不清楚資策會的課程內容所以沒法給建議。但就是不是要從資料工程師當起這個問題,應 該說資料科學家必須要會資料前處理跟資料準備,而這工作需要工程能力。 真實世界的資料什麼光怪陸離的情況都有。舉個例子,IBM的正式名稱是International B usiness Machines Corporation,但它在正式專利文件裡面的拼法就有兩百多種。類似的 狀況有些是筆誤,有些則是故意的,刻意讓你無法用keyword search找到。像這種資料正 規化的工作你必須要有能力處理。 再拿影像辨識來說,原始資料可能有肉眼看不出來的背景,但看pixel value就很明顯。 如果不去背就直接拿去當訓練資料,模型可能根本不能用。去背這種事情也是工程問題。 再舉個例子,原始資料如果有雜訊(例如電話號碼不小心跟地址黏在一起),不處理直接 塞進SQL。之後查找時被逼的不得不使用like語法,那效能絕對讓你想哭。 像我也要分析log,但我只對其中一小部分有興趣,所以需要做data ETL,篩選log,做些 簡單的處理放到其他地方,之後再做分析。這也是工程。 機器學習的程式碼中,關鍵的可能只有幾行,要寫出那幾行很吃統計知識。然而另一方面 ,要讓那幾行可以work,前面必須做非常多前處理的工作。 之前玩過kaggle上的一個分類問題。沒做前處理,準確率只有7%,做了前處理,就跳到37 %了。這差別是很大的。
※ 批踢踢實業坊(ptt.cc), 來自: 27.147.21.165
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1526572023.A.9D8.html

hahaxd78: 推! 05/18 00:01

PHEj: 推講得很中肯05/18 00:05

errard: 推個05/18 00:09

eggy1018: 謝謝提點!05/18 00:33

cry004: 推 好清晰05/18 01:27

lovepork: 感謝大師分享!05/18 01:33

aszx4510: 厲害05/18 04:12

bowin: 推分享! 05/18 04:13

littleyuan: 謝謝分享!! 05/18 05:11

shiauji: 強05/18 05:45

chen1025: 推05/18 08:19

crow1270: 推 05/18 08:42

kekking: 推05/18 09:00

chienjens: 推推05/18 09:17

billy0131: 推05/18 09:36

bcew: 推分享05/18 09:41

pig0038: 推05/18 09:50

gmoz: NICE05/18 09:54

ian90911: 推分享05/18 09:57

vn509942: 感謝分享 非常寶貴的經驗05/18 10:25

b160160: 推05/18 10:26

f496328mm: 大部份人選擇工具或方法的原因是「因爲老師/學長說的」 05/18 10:27

f496328mm: 這點真的很中肯 05/18 10:27

qazedcrfv: 中肯,推!05/18 10:53

yuchio: 推05/18 10:57

xavierqqqq: 推推05/18 10:59

smalldra: 讚05/18 11:10

Fen9ze: 推05/18 11:19

Yukirin: 心有戚戚焉05/18 11:21

yamakazi: 看來要當資料科學家也是不容易 05/18 12:13

yamakazi: 很多物理系的覺得轉職資料科學家不是太困難 但真的轉成 05/18 12:15

yamakazi: 功也沒那麼容易05/18 12:15

Sunal: 或許覺得比拿物理PhD簡單吧...05/18 14:21

az75225: 謝謝分享 05/18 17:43

abc53: 推05/18 17:47

adsl54010: 謝謝分享05/18 19:12

h042910276: 推05/18 20:20

orcahmlee: 謝分享!05/18 23:39

billy4195: 推中肯05/19 08:08

peter308: 感謝原po熱心分享!05/19 10:38

wxtn: 推推推05/19 21:28

jojojen: 推05/20 10:32

Arctica: 感謝分享05/20 14:58

ntddt: 大推 05/21 22:19

remember69: 豪猛 05/23 00:16

lovepork: 請教一下,資料科學家必須先從資料工程師當起嗎?05/23 12:22

lovepork: 我近期有去跟資策會的課程經理談過,他說他的課程只能05/23 12:23

lovepork: 培訓出資料工程師,但我看那個課程已經是非常硬的了05/23 12:24

lovepork: 一到五 0900~1700 密集上五個月才能結業!05/23 12:25

lovepork: 所以假設我去上完資策會的資料工程師培訓,還要補足統計05/23 12:28

lovepork: 所的一些課程,才有資格去應付資料科學家所賦予的挑戰?05/23 12:28

lovepork: superalf大 能否點建議? 感謝! 05/23 12:29

lovepork: 感謝superalf大的回覆,受益匪淺。 05/24 15:39

lovepork: 看樣子,去資策會是勢所難免了。 05/24 15:40

voyager520: 朝聖推 05/25 23:32

您可能感興趣