Re: [請益] 想改行當資料科學家,能否給點建議?
同為物理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. 結果的解釋跟呈現(資料視覺化)
但在成為資料科學家之前,你必須先是位工程師
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.147.21.165
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1526572023.A.9D8.html
推
05/18 00:01,
7年前
, 1F
05/18 00:01, 1F
推
05/18 00:05,
7年前
, 2F
05/18 00:05, 2F
推
05/18 00:09,
7年前
, 3F
05/18 00:09, 3F
推
05/18 00:33,
7年前
, 4F
05/18 00:33, 4F
推
05/18 01:27,
7年前
, 5F
05/18 01:27, 5F
推
05/18 01:33,
7年前
, 6F
05/18 01:33, 6F
推
05/18 04:12,
7年前
, 7F
05/18 04:12, 7F
推
05/18 04:13,
7年前
, 8F
05/18 04:13, 8F
推
05/18 05:11,
7年前
, 9F
05/18 05:11, 9F
推
05/18 05:45,
7年前
, 10F
05/18 05:45, 10F
推
05/18 08:19,
7年前
, 11F
05/18 08:19, 11F
推
05/18 08:42,
7年前
, 12F
05/18 08:42, 12F
推
05/18 09:00,
7年前
, 13F
05/18 09:00, 13F
推
05/18 09:17,
7年前
, 14F
05/18 09:17, 14F
推
05/18 09:36,
7年前
, 15F
05/18 09:36, 15F
推
05/18 09:41,
7年前
, 16F
05/18 09:41, 16F
推
05/18 09:50,
7年前
, 17F
05/18 09:50, 17F
推
05/18 09:54,
7年前
, 18F
05/18 09:54, 18F
推
05/18 09:57,
7年前
, 19F
05/18 09:57, 19F
推
05/18 10:25,
7年前
, 20F
05/18 10:25, 20F
推
05/18 10:26,
7年前
, 21F
05/18 10:26, 21F
推
05/18 10:27,
7年前
, 22F
05/18 10:27, 22F
→
05/18 10:27,
7年前
, 23F
05/18 10:27, 23F
推
05/18 10:53,
7年前
, 24F
05/18 10:53, 24F
推
05/18 10:57,
7年前
, 25F
05/18 10:57, 25F
推
05/18 10:59,
7年前
, 26F
05/18 10:59, 26F
推
05/18 11:10,
7年前
, 27F
05/18 11:10, 27F
推
05/18 11:19,
7年前
, 28F
05/18 11:19, 28F
推
05/18 11:21,
7年前
, 29F
05/18 11:21, 29F
推
05/18 12:13,
7年前
, 30F
05/18 12:13, 30F
→
05/18 12:15,
7年前
, 31F
05/18 12:15, 31F
→
05/18 12:15,
7年前
, 32F
05/18 12:15, 32F
推
05/18 14:21,
7年前
, 33F
05/18 14:21, 33F
推
05/18 17:43,
7年前
, 34F
05/18 17:43, 34F
推
05/18 17:47,
7年前
, 35F
05/18 17:47, 35F
推
05/18 19:12,
7年前
, 36F
05/18 19:12, 36F
推
05/18 20:20,
7年前
, 37F
05/18 20:20, 37F
推
05/18 23:39,
7年前
, 38F
05/18 23:39, 38F
推
05/19 08:08,
7年前
, 39F
05/19 08:08, 39F
推
05/19 10:38,
7年前
, 40F
05/19 10:38, 40F
推
05/19 21:28,
7年前
, 41F
05/19 21:28, 41F
推
05/20 10:32,
7年前
, 42F
05/20 10:32, 42F
推
05/20 14:58,
7年前
, 43F
05/20 14:58, 43F
推
05/21 22:19,
7年前
, 44F
05/21 22:19, 44F
推
05/23 00:16,
7年前
, 45F
05/23 00:16, 45F
推
05/23 12:22,
7年前
, 46F
05/23 12:22, 46F
→
05/23 12:23,
7年前
, 47F
05/23 12:23, 47F
→
05/23 12:24,
7年前
, 48F
05/23 12:24, 48F
→
05/23 12:25,
7年前
, 49F
05/23 12:25, 49F
推
05/23 12:28,
7年前
, 50F
05/23 12:28, 50F
→
05/23 12:28,
7年前
, 51F
05/23 12:28, 51F
→
05/23 12:29,
7年前
, 52F
05/23 12:29, 52F
不清楚資策會的課程內容所以沒法給建議。但就是不是要從資料工程師當起這個問題,應
該說資料科學家必須要會資料前處理跟資料準備,而這工作需要工程能力。
真實世界的資料什麼光怪陸離的情況都有。舉個例子,IBM的正式名稱是International B
usiness Machines Corporation,但它在正式專利文件裡面的拼法就有兩百多種。類似的
狀況有些是筆誤,有些則是故意的,刻意讓你無法用keyword search找到。像這種資料正
規化的工作你必須要有能力處理。
再拿影像辨識來說,原始資料可能有肉眼看不出來的背景,但看pixel value就很明顯。
如果不去背就直接拿去當訓練資料,模型可能根本不能用。去背這種事情也是工程問題。
再舉個例子,原始資料如果有雜訊(例如電話號碼不小心跟地址黏在一起),不處理直接
塞進SQL。之後查找時被逼的不得不使用like語法,那效能絕對讓你想哭。
像我也要分析log,但我只對其中一小部分有興趣,所以需要做data ETL,篩選log,做些
簡單的處理放到其他地方,之後再做分析。這也是工程。
機器學習的程式碼中,關鍵的可能只有幾行,要寫出那幾行很吃統計知識。然而另一方面
,要讓那幾行可以work,前面必須做非常多前處理的工作。
之前玩過kaggle上的一個分類問題。沒做前處理,準確率只有7%,做了前處理,就跳到37
%了。這差別是很大的。
※ 編輯: superalf (27.147.21.165), 05/24/2018 00:47:03
※ 編輯: superalf (27.147.21.165), 05/24/2018 00:48:59
推
05/24 15:39,
7年前
, 53F
05/24 15:39, 53F
→
05/24 15:40,
7年前
, 54F
05/24 15:40, 54F
推
05/25 23:32, , 55F
05/25 23:32, 55F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):