如何準備資料科學面試 1:統計、機率與機器學習篇

David Huang
9 min readJan 2, 2022

--

以前我曾經寫過一篇顧問業「個案面試」(case interview) 的想法,後來有不少朋友私底下也詢問我如何準備「資料科學家」的面試,因此我想總結一下我自己過去找工作面試與以及擔任面試官的一些心得與想法。

Photo by Christina Morillo from Pexels

資料科學家會遇到的面試關卡

由於「資料科學家」實際上的工作內容包羅萬象,因此不同公司、不同組的職缺面試模式都不太一樣,但大多會遇到以下幾種類型的面試:Coding 面試(除非職缺明確要求,不然一般 Python / R 應該都可以)、 SQL 面試統計/機率/機器學習的面試產品或商業理解的個案面試團隊合作與領導力面試。有些時候會把上述的面相綜合在一起,比如說:顧問公司會喜歡在個案面試中同時請你定義商業問題、轉化成資料科學的問題、設計模型與衡量指標、報告給 stakeholder 聽等等。有些公司會把產品個案與 SQL 綜合在一起的面試,先請你根據商業目標訂定指標,接著給你 data schema 然後寫 SQL 的 pseudo code 把指標抓出來。

在這篇文章我會把重點放在「統計/機率/機器學習的面試接下來後續的文章會跟大家分享如何準備「產品或商業理解的個案面試」以及「團隊合作與領導力面試」。另外,有些公司會出 take-home challenge 當作前測,這方面的內容我會找機會再跟大家分享。

準備「統計/機率/ 機器學習的面試」

我最常被讀者詢問的問題是:統計 / 機率 / 機器學習的問題要準備到多深入才夠應付面試?我自己的經驗是,機率與統計部分大概就問到大學部統計的難度,可以參考 John Hopkins 的線上課程,機器學習部分大概會問到 An Introduction to Statistical Learning 的難度。通常面試官不會要求到你能夠達出教科書班精準而且完全正確的答案,但觀念跟核心精神是需要知道的。另外,資深資料科學家的面試問題難度會比較高,尤其會問到比較多執行細節跟實務上可能會踩到的坑。

在面試的時候主要會遇到的問題比較可能來自兩個方向:一是申請者在履歷或成績單提到的課程或方法,尤其是履歷中專案經驗提到的方法。比如說,如果有人在履歷中提到他用 PCA + clustering 做使用者分群,很有可能在面試中就會被問常見的降維 / 分群方法,以及如何衡量這些方法的好壞。另一塊則是「職缺所需要的能力」,這點可以從 Job Description 或是面試官的背景找到。建議大家在面試前可以先詢問人資你面試的是哪個組以及面試官是誰,並在 Linkedin 上搜尋面試官或同組成員有沒有放一些工作的細節,這樣會比較容易猜到面試會問。另外,校招的問題通常都很標準化,主要就是考學校會學到的知識,大家上課學習還是非常重要的!

可能會遇到的面試問題

在這邊想跟大家簡單分享一下在這類面試中會遇到的題目。通常剛畢業的學生會遇到簡單或中等的問題,已經有 2–3 年工作經驗的人更容易遇到中等或困難的問題。困難的問題通常有三種類型:一是關於特定專業領域的問題(因果推論、時間序列資料的處理、推薦系統等等),二是關於實務上會遇到的問題,三是一些理論性質或是演算法的分析。

統計的範例

  • 假設檢定的基本概念 (常見)
    (簡單) 什麼是 p-value?什麼是型一錯誤 / 型二錯誤?什麼是檢定力?
    (中等) 如果實驗設計樣本蒐集的不夠多,可能會遇到什麼問題?
    (困難) 假設你目前正在跑一個實驗,預計執行三週才能搜集到足夠的樣本,但第一週的結果實驗組已經顯著優於對照組了,因此 PM 希望能夠直接 launch 實驗組,這時你會怎麼跟他說明可能的風險?背後的統計概念是什麼?
  • 樣本數的決定 (普通)
    (簡單) 假設你想要做一份使用者問卷調查使用者的滿意程度,你會怎麼抽樣?(隨機?分層?各有什麼優缺點?)
    (中等) 假設你要決定實驗的樣本數,因此找到一個樣本數計算器,裡面有幾個參數:minimum detectable difference, significance level, power,這幾個參數跟樣本數的關係是什麼?
    (困難) 假設 Facebook 使用者母體點擊廣告的點擊率 (click-through rate) 是 p,為了估計點擊率,我們蒐集了一組有 N 個個體的樣本,計算出的樣本點擊率 (sample click-through rate) 是 p-hatN 應該要多大才能夠使估計誤差的絕對值小於 d? (看解答)
  • 常用的統計檢定 (偶爾)
    (簡單) 舉一個例子說明在什麼情況下會用到 one-way ANOVA,什麼時候會用到 two-way ANOVA。
    (中等) 假設你想要檢定「使用者滿意度」(五個等級) 跟「是否願意推薦給朋友」(是/否)兩個變數的關係,你會使用什麼檢定?
    (困難) 假設你的實驗有 A / B / C / D / E 五個選項,每組分別搜集了一千個樣本,你會如何分析哪個選項表現最好?為什麼在這個情境下要做事後檢定 (post-hoc inference)?
  • 迴歸分析的基本概念 (常見)
    (簡單) 多元迴歸分析是如何估計出參數的?你會如何評估模型的好壞?
    (中等) 什麼是正規化?在目標函數中加入 L1 / L2 norm 會對參數估計的結果有什麼影響?
    (困難) 什麼是 kernel regression?Kernel regression 如何得到預測值?他的好處跟壞處是什麼?跟 Nearest neighbor regression 的差別是什麼?

通常統計類會遇到的問題都與實驗設計與 A/B 測試有關,因此滿推薦大家可以看看 Udacity 上的 A/B testing 課程以及 Optimizely 的 Experimentation PlaybookSample Size CalculationWhy is my experiment failing to reach statistical significance? 等等。

機器學習的問題範例

  • 模型測試
    (簡單) 如果你發現你的 training error 跟 validation error 相差很大,有哪些可能的原因?
    (中等) 什麼是 K-fold cross validation & LOO cross validation?LOO cross-validation 有什麼缺點?
    (困難) 時間序列的資料要怎麼做 cross validation?為什麼不能用一般的 cross validation?
  • 常見的演算法
    (簡單) 簡單解釋 bagging 跟 boosting 是什麼?
    (中等) Boosting 裡面的 learning rate 是什麼?為什麼對模型的結果有影響?
    (困難) Bagging 為什麼可以降低 variance?Boosting 為什麼可以降低 bias?
  • 模型衡量方法
    (簡單) 分類問題除了 classification accuracy 外還有哪些指標?ROC 曲線是什麼?AUC 曲線是什麼?
    (中等) 如果你的資料中大約只有 1% 的 case 是 positive,你會選擇哪些指標選擇分類模型的好壞?
    (困難) 為了提升模型的準確率,你決定去搜集更多的樣本,你會怎麼樣衡量要搜集哪些樣本?

另外很常會被問到的面向還有:feature engineering & feature selection、不平衡資料的處理、常見的迴歸 / 分類 / 降維 / 分群方法以及如何衡量模型成效、模型上線後成效跟 validation 結果不符合該如何處理等等。

最後,機率類的問題有時候也會遇到,比較常見的題目包括:貝氏定理與條件機率、辛普森悖論、大數法則跟中央極限定理、一些常見的機率分配、算期望值等。

準備面試的一些小技巧

Photo by RF._.studio from Pexels

資料科學的知識非常廣泛,我們不太可能熟悉每一個方法,所以通常面試官也不會期待對方能完美回答所有的問題。如果遇到你不會的問題該怎麼辦呢?建議你坦承告知面試官說你並不熟悉這個主題所以不知道這個問題的正確答案是什麼,但可以簡單講一下這個主題最最基本的概念。比如說:如果不確定 AdaBoost 跟 gradient boosting 有什麼不同,你可以坦誠告訴面試官你不確定,但 boosting 的核心理念是針對演算法容易犯錯的樣本做加強訓練。如果你有把握,可以再做一下 educated guess,比如說:基於boosting 的核心精神,不同之處可能會是如何針對分類錯誤的樣本做加權。

另外想特別強調一點:如果在履歷上寫了某個方法,卻沒辦法說出這些方法的核心精神是什麼,會比答錯其他問題更嚴重一些。由於資料科學工作很需要細心與深入分析資料及其背後的意涵,如果面試者對他寫在履歷上的方法都沒有基本了解,會讓人擔心他是不是不夠有好奇心跟喜歡深入思考的人。因此大家在準備統計或機器學習面試時,一定要先把履歷上寫到的方法搞清楚!

最後,如果有興趣,大家可以試著回答我上面提到的問題,留言分享讓大家互相學習與討論喔!

有關我的最新文章,都會發布在大鼻 Facebook 粉絲專頁,如果你喜歡我的文章,還請您不吝嗇地拍手、分享、或留言給我喔!

大鼻觀點:https://www.facebook.com/davidperspective/

工商服務:我在 Hahow 上開的三門資料科學課程,歡迎參考喔!
- R 語言和商業分析:https://hahow.in/cr/ranalytics
- R 語言和文字探勘:https://hahow.in/cr/rtextmining
- 產品數據分析課程:https://hahow.in/cr/productanalytics

--

--

David Huang

PhD Candidate @ Harvard Business School | Data Science | Causal Inference