谷歌微軟等科技巨頭資料科學麵試107道真題:你能答出多少?

李澤南發表於2017-03-18

來自 Glassdoor 的最新資料可以告訴我們各大科技公司最近在招聘面試時最喜歡向候選人提什麼問題。首先有一個令人惋惜的結論:根據統計,幾乎所有的公司都有著自己的不同風格。由於 Glassdoor 允許匿名提交內容,很多樂於分享的應聘者向大家提供了 Facebook、谷歌、微軟等大公司的面試題。我們把其中的一部分列出以供大家參考。另外,如果你想轉行成為一名資料科學家,這裡也有一份實踐指南(如何轉行成為一名資料科學家?


通用問題


蘋果


1. 如果你有幾百萬使用者,每個使用者都會發生數百筆交易,這些交易存在於數十種產品中。你該如何把這些使用者細分成有意義的幾類?


微軟


1. 描述一個你曾經參與的專案,以及它的優點。

2. 如何處理具有高基數(high-cardinality)的類屬特徵?

3. 如果想要給 Twitter feed 寫 summarize,你要怎麼辦?

4. 在應用機器學習演算法之前糾正和清理資料的步驟是什麼?

5. 如何測量資料點之間的距離?

6. 請定義一下方差。

7. 請描述箱形圖(box plot)和直方圖(histogram)之間的差異,以及它們的用例。


Twitter


1. 你會使用什麼功能來為使用者構建推薦演算法?


Uber


1. 選擇任何一個你真正喜歡的產品或應用程式,並描述如何改善它。

2. 如何在分佈中發現異常?

3. 如何檢查分佈中的某個趨勢是否是由於異常產生的?

4. 如何估算 Uber 對交通和駕駛環境造成的影響?

5. 你會考慮用什麼指標來跟蹤 Uber 付費廣告策略在吸引新使用者上是否有效?然後,你想用什麼辦法估算出理想的客戶購置成本?


領英(LinkedIn)


1.(對大資料工程師)請解釋 REST 是什麼。


機器學習問題


谷歌


1. 為什麼要使用特徵選擇(feature selection)?

2. 如果兩個預測變數高度相關,它們對邏輯迴歸係數的影響是什麼?係數的置信區間是什麼?

3. 高斯混合模型(Gaussian Mixture Model)和 K-Means 之間有什麼區別?

4. 在 K-Means 中如何拾取 k?

5. 你如何知道高斯混合模型是不是適用的?

6. 假設聚類模型的標籤是已知的,你如何評估模型的效能?


微軟


1. 你有哪些引以為豪的機器學習專案?

2. 隨便找一個機器學習演算法,然後描述它。

3. 請解釋 Gradient Boosting 是如何工作的。

4.(對資料探勘工程師)請解釋決策樹模型。

5.(對資料探勘工程師)什麼是神經網路?

6. 請解釋偏差方差權衡(Bias-Variance Tradeoff)。

7. 如何處理不平衡二進位制分類?

8.L1 和 L2 正則化之間有什麼區別?


Uber


1. 你會透過哪種特徵來預測 Uber 司機是否會接受訂單請求?你會使用哪種監督學習演算法來解決這個問題,如何比較演算法的結果?


領英


1. 點出及描述三種不同的核心函式,在哪些情況下使用哪種?

2. 隨意解釋機器學習裡的一種方法。

3. 如何應付稀疏資料?


IBM


1. 如何防止過擬合(overfitting)?

2. 如何處理資料中的離群值?

3. 如何評估邏輯迴歸與簡單線性迴歸模型預測的效能?

4. 監督學習和無監督學習有什麼區別?

5. 什麼是交叉驗證(cross-validation),為什麼要使用它?

6. 用於評估預測模型的矩陣的名稱是什麼?

7. 邏輯迴歸係數和勝算比(Odds Ratio)之間存在什麼關係?

8. 主成分分析(PCA)和線性和二次判別分析(LDA 和 QDA)之間的關係是什麼?

9. 如果你有一個因變數分類,又有一個連續自變數的混合分類,你將使用什麼演算法,方法或工具進行分析?

10.(對行業分析師)邏輯與線性迴歸有什麼區別?如何避免區域性極小值?


Salesforce


1. 你會使用哪些資料和模型來測量損耗/流失?如何測試模型效能?

2. 假設我是一名非技術人員,請向我解釋一種機器學習演算法。


Capital One(一家美國銀行)


1. 如何構建一個模型來預測信用卡詐騙?

2. 如何處理丟失或不良資料?

3. 如何從已存在的特徵中匯出新的特徵?

4. 如果你試圖預測客戶的性別,但只有 100 個資料點,可能會出現什麼問題?

5. 在擁有兩年交易歷史的情況下,哪些特徵可以用來預測信用風險?

6. 請設計一個用來下井字棋的人工智慧程式。


Zillow


1. 請解釋過擬合,以及如何防止過擬合。

2. 為什麼 SVM 需要在支援向量之間最大化邊緣?


Hadoop


Twitter


1. 如何使用 Map/Reduce 將非常大的圖形分割成更小的塊,並根據資料的快速/動態變化平行計算它們的邊緣?

2.(對資料工程師)給定一個列表:123, 345234, 678345, 123…其中第一列是粉絲的 ID,第二列是被粉者的 ID。查詢所有相互後續對(上面的示例中的對是 123,345)。當列表超出記憶體時,如何使用 Map / Reduce 來解決問題?


Captial One


1.(對資料工程師)什麼是 Hadoop 序列化(serialization)?

2. 解釋一個簡單的 Map / Reduce 問題。


Hive


領英


1.(對資料工程師)請編寫返回情感分數的 Hive UDF。例如,假如好=1,壞=-1,平均數=0,那麼對餐廳做評價時因為「食物好,服務差」,你的分數可能為 1 - 1 = 0


Spark


Captial One


1.(對資料工程師)用 Scala 語言,RDD 在 Spark 中是如何工作的?


統計和機率問題


谷歌


1. 假設我是一名非技術人員,請向我解釋一下交叉驗證(Cross-validation)。

2. 請描述一下非正態機率分佈,隨後告訴我們它該如何應用?


微軟


1.(對資料探勘)請解釋異方差(heteroskedasticity)是什麼,以及如何解決它。


Twitter


1. 在給定 Twitter 使用者資料的情況下,你該如何衡量參與度?


Uber


1. 時間序列預測技術有什麼不同?

2. 解釋原理元件分析(Principle Component Analysis,PCA)和 PCA 使用的方程。

3. 如何解決多重共線性(Multicollinearity)?

4.(對分析師)請寫一個方程,最佳化我們在 Twitter 和 Facebook 上的廣告費用支出。


Facebook


1. 在一副牌中抽取兩張,出現同一花色的機率是多少?


IBM


1. 什麼是 p-value 和置信區間?


Capital One


1.(對資料分析師)如果你有 70 個紅色彈珠,綠色和紅色彈珠的比例是 2 比 7,有多少綠色彈珠?

2. 紐約市的通勤資料看起來應該遵從什麼分佈?

3. 一個骰子,在扔 6 次的情況下出現 1 個 6 的機率,與扔 12 次的情況下出現至少兩個 6 的機率,和扔 600 次出現至少 100 次 6 的機率相比哪個大?


Paypal


1. 什麼是中心極限定理(Central Limit Theorem),如何證明它?它的應用方向是什麼?


程式設計和演算法


谷歌


1.(對資料分析師)請寫一個程式可以判定二叉樹的高度。


微軟


1. 請建立一個函式檢查一個詞是否具有迴文結構。


Twitter


1. 請構建一個冪集(power set)。

2. 請問如何在一個巨大的資料集中找到中值?


Uber


1.(對資料工程師)編寫一個函式用來計算給定數字的平方根(2 個小數點精度)。隨後:避免冗餘計算,現在使用快取機制最佳化你的功能。


Facebook


1. 假設給定兩個二進位制字串,寫一個函式將它們新增在一起,而不使用任何內建的字串到 int 轉換或解析工具。例如:如果給函式二進位制字串 100 和 111,它應該返回 1011。你的解決方案的空間和時間複雜性如何?


2. 編寫一個函式,它接受兩個已排序的列表,並在排序列表中返回它們的並集。


領英


1.(對資料工程師)請編寫一些程式碼來確定字串中的左右括號是否是平衡的?

2. 如何找到二叉搜尋樹中第二大的元素?

3. 請編寫一個函式,它接受兩個排序的向量,並返回一個排序的向量。

4. 如果你有一個輸入的數字流,如何在執行過程中找到最頻繁出現的數字?

5. 編寫一個函式,將一個數字增加到另一個數字,就像 pow()函式一樣。

6. 將大字串拆分成有效欄位並將它們儲存在 dictionary 中。如果字串不能拆分,返回 false。你的解決方案的複雜性如何?


Captial One


1.(對資料工程師)如何「拆散」兩個數列(就像 SQL 中的 JOIN 反過來)?

2. 請建立一個用於新增的函式,數字表示為兩個連結串列。

3. 請建立一個計算矩陣的函式。

4. 如何使用 Python 讀取一個非常大的製表符分隔的數字檔案,來計算每個數字出現的頻率?


Paypal


1. 請編寫一個函式,讓它能在 O(n)的時間內取一個句子並逆向列印出來。

2. 請編寫一個函式,從一個陣列中拾取,將它們分成兩個可能的陣列,然後列印兩個陣列之間的最大差值(在 O(n) 時間內)。

3. 請編寫一個執行合併排序的程式。


SQL 問題


微軟


1.(對資料分析師)定義和解釋聚簇索引和非聚簇索引之間的差異。

2.(對資料分析師)返回表的行計數有哪些不同的方法?


Facebook


1.(對資料工程師)如果給定一個原始資料表,如何使用 SQL 執行 ETL(提取,轉換,載入)以獲取所需格式的資料?

2. 如何編寫 SQL 查詢來計算涉及兩個連線的某個屬性的頻率表?如果你想要 ORDER BY 或 GROUP BY 一些屬性,你需要做什麼變化?你該怎麼解釋 NULL?


領英


1.(對資料工程師)如何改進 ETL(提取,轉換,載入)的吞吐量?


智力遊戲


谷歌


1. 假設你有 10 包彈球,每包裡面都是 10 個彈球。如果其中一包的重量和其他的不同,但你只能進行一次稱重,你該用什麼辦法?


Facebook


1. 你打算坐飛機去西雅圖,想知道是不是需要帶傘,於是你分別打電話給三位在西雅圖的朋友。每個朋友都有 2/3 的機率說真話,1/3 的機率在騙你。如果他們都說「會下雨」,西雅圖下雨的機率是多少?


2. 假如在一個等邊三角形的三個角上都有一隻螞蟻,每隻隨機選擇方向然後直走一直到另一個邊緣,三隻螞蟻互相不交匯的機率是多少?如果有 n 只螞蟻在 n 角形中,機率又是多少?


3. 在 100! 的結果裡有多少個零?


Uber


1. 想象一下你在一家醫院工作。患者來就診的頻率符合泊松分佈,而醫生照顧患者的頻率符合均勻分佈。請寫一個函式或一段程式碼來輸出患者的平均等待時間和醫生在某日的參與度。


領英


1. 你正在攀爬一個 n 階的樓梯,你可以採取任何數量的 k 個步驟。你到達樓梯頂部有多少不同的方式?(這是樓梯問題的修改版)  


原文地址:http://www.learndatasci.com/data-science-interview-questions/


相關文章