“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

大資料文摘發表於2019-03-06

直到今天,在各類媒體口中,資料科學家依然是“21世紀最性感的職業”。但事實上,希望進入這個行業的初級資料科學家已經供過於求

可以預見的是,各種高校相關專業的畢業生,在完成coursera或者fast.ai的課程後,都希望得到一份跟“資料”相關的崗位。據統計,部分職位的供求比已經達到了1:200。

那麼,如何能在這條獨木橋上殺出重圍、脫引而出呢?

金三銀四求職季,江湖傳言在三月份和四月份找工作和跳槽成功的機率最大。不同於程式設計師這樣的純技術工種,求職成為一名資料科學家似乎需要“上知天文,下知地理”。

畢竟,資料科學領域整合了多種不同元素,包括訊號處理,數學,機率模型技術和理論,機器學習,計算機程式設計,統計學,資料工程,模式識別和學習,視覺化,不確定性建模,資料倉儲,以及從資料中析取規律和產品的高效能運算。

今天文摘菌會給大家推薦一份資料科學面試資料,資料收集了來自頂級技術公司的訪調員和資料科學家。從淺入深的囊括了溝通、資料分析、模型預測、程式設計、機率、產品指標等7個部分的共120個面試問題。

根據官方網站,這份資源由Max、Carl、Henry以及William四位合作編寫,這四位好基友都有數學科學以及資料分析的背景,也非常互補,也因此讓這份資料變得彌足珍貴。

這份資料,在官方網站上需要付19美元可以獲取完整版(包括問題和答案)。

先放上資料官網,非常需要的讀者請購買支援正版哦?

https://www.datasciencequestions.com/

當然,如果你只是想了解這份資料的大概內容,或者測試一下自己是否掌握了資料科學家需要的知識,文摘菌在github上也找到了這份資料的縮略問題版,少部分概念以及定義性的問題有答案,對於開放性的問題,歡迎大家在留言區給出你的答案哦。

文摘菌精選了這份資料中的部分問題和答案,完整版戳下邊連結自取。

github地址:https://github.com/kojino/120-Data-Science-Interview-Questions

溝通

“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

1.向我解釋一個與你正在面試的角色相關的技術概念。

2.向我介紹你所熱愛的事情。

3.你會如何向沒有統計背景的工程師解釋A/B測試,線性迴歸呢?

  • A/B測試,也就是多變數測試,透過測試使用者的不同體驗,來確定哪種改變有助於企業更加有效地實現其目標(如增加轉換等)。它可以是網站上的文字資訊,按鈕的顏色,不同的使用者介面,不同的電子郵件主題行,號召性用語,優惠等。

4.你會如何向沒有統計背景的工程師解釋置信區間以及95%的置信度的意思?

5.你會如何向一組高階管理人員解釋為什麼資料很重要?

資料分析

“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

1.給定一個資料集,分析這個資料集並告訴我你可以從中瞭解到什。

2.什麼是R2?可能比R2更好的指標有哪些,為什麼?

答:擬合良好,是由該回歸/總方差解釋的那部分方差;你新增的預測變數越多,R^2越大;因而使用因自由度調整的R ^ 2;或著訓練誤差指標。

3.什麼是維度災難?

  • 高維度使得聚類變得困難,因為擁有大量維度意味著彼此相差很大。例如,為了覆蓋一小部分資料,隨著變數數量的增加,我們需要處理每個範圍廣泛的變數;

  • 所有樣本都靠近樣本的邊緣。這非常糟糕,因為在訓練樣本的邊緣附近做出預測要更加困難;

  • 隨著維度 p的增加,取樣密度呈指數下降,因此在沒有更多的資料量的情況下,該資料會變得更加稀疏;我們應該進行PCA分析以降低維度。

4.更多的資料就總是更好麼?

  • 從統計來說,它取決於你的資料的質量,如果您的資料有偏差,獲取再多資料也毫無用處;它取決於你的模型。如果你的模型能夠承受高偏差,獲取更多資料不會太過明顯地提高你的測試結果。你需要新增更多特徵,或者做別的處理。從實戰來說,也需要在擁有更多資料和額外儲存,計算能力以及所需記憶體之間進行權衡。因此,始終要考慮擁有更多資料的成本。

5.分析資料之前繪製圖表有什麼好處?

  • 資料集會有錯誤。你不會找到全部的錯誤,但你或許能夠找到其中的一些。比如那個212歲的男人以及那個9英尺高的女;變數會有偏度,異常值等。算術平均值可能用不了,這也意味著標準差用不了;變數可以是多峰的!如果變數是多峰的,那麼任何基於其的均值或著中位數的都是可疑的。

模型預測(19個問題)

“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

1.給定一個資料集,分析這個資料集並給出一個可以預測這個響應變數的模型。

  • 由擬合簡單的模型(多元迴歸,邏輯迴歸)開始,相應地選取一些特徵,然後嘗試一些複雜的模型。要始終將資料集拆分為訓練集,驗證集和測試集並使用交叉驗證來觀察模型的表現;確定問題是分類問題還是迴歸問題;傾向於選用執行快速可以輕鬆解釋的簡單模型;提及交叉驗證作為評估模型的一種方法;繪製圖表且將資料視覺化。

2.如果測試資料的分佈與訓練資料的分佈明顯不同,可能會出現什麼問題?

  • 訓練時具有高精度的模型在測試時可能具有較低的精度。在沒有進一步瞭解的情況下,很難知道哪個資料集代表了總體的資料,因而很難測量演算法的泛化程度;

  • 這應該可以透過重複劃分訓練集和測試集來緩解(如交叉驗證);

  • 當資料分佈發生變化時,稱為資料集漂移。 如果訓練資料和測試資料的分佈不同,分類器可能會過度擬合訓練資料。

3.有什麼方法可以讓我的模型對異常值的魯棒性更高?

  • 我們可以使用L1或L2等正則化方法來減少方差(增加偏倚)。

  • 演算法的改變:1.使用基於樹的方法來代替迴歸方法,因為它們更能忍受異常值。2.對於統計檢驗,使用非引數檢驗來代替引數檢驗。3.使用穩健的誤差指標,如MAE或Huber Loss,來代替MSE。

  • 資料的改變:1.對資料進行winsorize處理2.轉換資料(如進行對數處理)3.只有在你確定它們是不值得預測的異常值時才刪除它們

4.與最小化誤差絕對值的模型相比,在最小化誤差平方的模型中,你認為有哪些差異?每個誤差指標分別在哪種情況下合適?

  • MSE對異常值更加嚴格。在這個意義上MAE魯棒性更好,但也更難以擬合模型,因為它無法在數值上進行最佳化。因此,當模型的可變性較小且在計算上容易擬合時,我們應該使用MAE,否則應該使用MSE。

  • MSE:更容易計算梯度

  • MAE:計算梯度需要線性程式設計MAE對異常值更加穩健。

  • 如果較大錯誤造成的後果很嚴重,使用MSEMSE相當於最大化高斯隨機變數的可能性。

5.你會什麼誤差指標來評估二分類器的好壞?如果類別不平衡怎麼辦?如果超過2組怎麼辦?

  • 準確性:你正確預測的情況的比例。優點:直觀,易於解釋,缺點:當類標籤不平衡且資料訊號較弱時效果不。

  • AUROC:在x軸上繪製fpr,在y軸上繪製tpr以獲得不同的閾值。給定隨機正例和隨機負例,AUC是你能可以識別類別的機率。優點:在測試分類能力時效果很好,缺點:不能將預測解釋為機率(因為AUC由排名決定),因此無法解釋模型的不確定性。

  • logloss/deviance:優點:基於機率的誤差度量,缺點:對假陽性假陰性非常敏感。當有超過2組時,我們可以使用k個二分類並將它們新增到logloss中。 像AUC這樣的一些指標僅適用於二分類情況。

機率

“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

1.阿米巴蟲波波生0個、1個或2個小阿米巴蟲的機率分別是25%、25%以及50%。這些小阿米巴蟲們的繁殖能力也都一樣。請問波波的後代滅絕的機率是多少?

  • p=1/4+1/4p+1/2p^2 => p=1/2

2.任何15分鐘時間段內,你看到至少一顆流星的機率是20%。請問在一小時內你看到至少一顆流星的機率是多少?

  • l  1-(0.8)^4。 或者我們用泊松過程也可以解。

3.僅使用一枚色子,你如何生成一個1-7內隨機數?

  • 丟三次色子:每一次丟的都是結果的第n位

  • 每次丟色子時,如果值為1-3,則記錄0,否則記錄1。結果會位於0(000)與7(111)之間,均勻分佈(因為這三次拋擲互相獨立)。如果得到0則重複拋擲:該過程會終止於均勻分佈的值。

4.有一個資料集包含來自兩個正態分佈的數值。兩個分佈的標準差相同。來自兩個分佈的資料點個數相同。請問如果想要該資料集呈雙峰分佈,兩個分佈的均值應當至少差多少?

  • 多於兩個標準差

5.提供已知正態分佈的樣本值,請問你能如何模擬一個均勻分佈的樣本值?

  • 將值代入同一隨機變數的累計分佈函式

6.一對夫妻告訴你他們有兩個小孩,其中至少有一個是女孩。請問他們擁有兩個女兒的機率是多少?

  • 1/3

產品指標

“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

1.對於一個廣告驅動的消費者產品(比如Buzzfeed,YouTube,Google搜尋等),什麼可以稱為好的成功衡量指標?服務驅動的消費者產品(比如優步,Flickr,Venmo等)呢?

  • 廣告驅動:頁面瀏覽量與每日活躍量,點選率,每次點選成本

  • 服務驅動:購買量,轉化率

2.對於一個效率工具(比如印象筆記,Asana,Google文件等),什麼可以稱為好的成功衡量指標?線上課程平臺(比如edX,Coursera,Udacity等)呢?

  • 效率工具:付費訂閱使用者數

  • 線上課程平臺:付費訂閱使用者數,課程完成率

3.對於一個電商產品(比如Etsy,Groupon,Birchbox等),什麼可以稱為好的成功衡量指標?訂閱產品(比如Netflix,Birchbox,Hulu等)呢?高階付費訂閱(比如OKCupid,領英,Spotify等)呢?

  • 電商產品:購買量,轉化率,時/日/周/月/季/年銷售額,售出產品成本,存貨量,網站流量,淨回頭客量,客服電話量,平均解決問題時長

  • 訂閱產品:流失量,(不知道接下來這幾個都是啥)

  • 高階付費訂閱:(無解答)

4.對於高度依賴於使用者投入與互動的消費者產品(比如Snapchat,Pinterest,Facebook等),什麼可以稱為好的成功衡量指標?通訊產品(比如GroupMe,Hangouts,Snapchat等)呢?

  • 高度依賴於使用者投入與互動的消費者產品:user AU ratios,分型別郵件彙總,分型別推送通知彙總,復活率。

  • 通訊產品:(無解答)

5.對於擁有app內購服務的產品(比如Zynga,憤怒的小鳥以及許多其他遊戲),什麼可以稱為好的成功衡量指標?

  • 使用者/付費使用者平均營收

程式設計(14題)

“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

1.編寫一個函式,計算2n個使用者所有可能分配向量,其中n個使用者為控制組,n個使用者為治療組。

  • 遞迴程式設計

2.提供一個包含推特訊息的列表,求十個最常用的的標籤。

  • 在字典中儲存所有標籤然後求前十值

3.在給定時間內寫出演算法求解揹包問題的最佳近似解。

  • 貪婪演算法

4.在給定時間內寫出演算法求解旅行商問題的最佳近似解。

  • 貪婪演算法

5.你將得到一個大小為n的資料集,但你無法提前知道n具體有多大。寫出一個佔據O(k)的演算法來隨機抽取k個元素。

  • 水塘抽樣

統計推論(15題)

“老司機”劃重點!搞定這120個真實面試問題,殺進資料科學圈

1.AB測試中你如何確認客戶流分組完全隨機?

  • 畫出多個A組與B組變數的分佈,確保他們都擁有一致的形狀。再保險一點,我們可以做一個排列檢驗來看分佈是否相同。

  • MANOVA來比較不同的均值。

2.AA測試(兩組完全一致)的好處有什麼?

  • 檢查抽樣演算法隨機性

3.在AB測試中,允許一組使用者知道另一組是什麼樣子有什麼危害?

  • 使用者可能無法與未知其他選項時行為一致。實際上你是在新增一個關於是否允許使用者窺探其它選項的變數——該變數並不隨機。

4.如果某個部落格報導了你的實驗組會有什麼影響呢?

  • 與前問相同。這一問題可能會在更大範圍內發生。

5.你如何設計一個允許使用者自行選擇是否加入的AB測試。

最後,祝大家求職順利~

github地址:https://github.com/kojino/120-Data-Science-Interview-Questions

相關文章