來自 Glassdoor 的最新數據可以告訴我們各大科技公司最近在招聘面試時最喜歡向候選人提什么問題。首先有一個令人惋惜的結論:根據統計,幾乎所有的公司都有著自己的不同風格。由于 Glassdoor 允許匿名提交內容,很多樂于分享的應聘者向大家提供了 Facebook、谷歌、微軟等大公司的面試題。我們把其中的一部分列出以供大家參考。另外,如果你想轉行成為一名數據科學家,這里也有一份實踐指南(如何轉行成為一名數據科學家?)
通用問題
蘋果
1、如果你有幾百萬用戶,每個用戶都會發生數百筆交易,這些交易存在于數十種產品中。你該如何把這些用戶細分成有意義的幾類?
微軟
1、 描述一個你曾經參與的項目,以及它的優點。
2、如何處理具有高基數(high-cardinality)的類屬特征?
3、如果想要給 Twitter feed 寫 summarize,你要怎么辦?
4、在應用機器學習算法之前糾正和清理數據的步驟是什么?
5、 如何測量數據點之間的距離?
6、請定義一下方差。
7、請描述箱形圖(box plot)和直方圖(histogram)之間的差異,以及它們的用例。
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
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)是什么,以及如何解決它。
1、 在給定 Twitter 用戶數據的情況下,你該如何衡量參與度?
Uber
1、 時間序列預測技術有什么不同?
2、 解釋原理組件分析(Principle Component Analysis,PCA)和 PCA 使用的方程。
3、 如何解決多重共線性(Multicollinearity)?
4、(對分析師)請寫一個方程,優化我們在 Twitter 和 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、 請創建一個函數檢查一個詞是否具有回文結構。
1、 請構建一個冪集(power set)。
2、 請問如何在一個巨大的數據集中找到中值?
Uber
1、(對數據工程師)編寫一個函數用來計算給定數字的平方根(2 個小數點精度)。隨后:避免冗余計算,現在使用緩存機制優化你的功能。
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、(對數據分析師)返回表的行計數有哪些不同的方法?
1、(對數據工程師)如果給定一個原始數據表,如何使用 SQL 執行 ETL(提取,轉換,加載)以獲取所需格式的數據?
2、 如何編寫 SQL 查詢來計算涉及兩個連接的某個屬性的頻率表?如果你想要 ORDER BY 或 GROUP BY 一些屬性,你需要做什么變化?你該怎么解釋 NULL?
領英
1、(對數據工程師)如何改進 ETL(提取,轉換,加載)的吞吐量?
智力游戲
谷歌
1、 假設你有 10 包彈球,每包里面都是 10 個彈球。如果其中一包的重量和其他的不同,但你只能進行一次稱重,你該用什么辦法?
1、 你打算坐飛機去西雅圖,想知道是不是需要帶傘,于是你分別打電話給三位在西雅圖的朋友。每個朋友都有 2/3 的幾率說真話,1/3 的幾率在騙你。如果他們都說‘會下雨’,西雅圖下雨的概率是多少?
2、 假如在一個等邊三角形的三個角上都有一只螞蟻,每只隨機選擇方向然后直走一直到另一個邊緣,三只螞蟻互相不交匯的幾率是多少?如果有 n 只螞蟻在 n 角形中,概率又是多少?
3、 在 100! 的結果里有多少個零?
Uber
1、 想象一下你在一家醫院工作。患者來就診的頻率符合泊松分布,而醫生照顧患者的頻率符合均勻分布。請寫一個函數或一段代碼來輸出患者的平均等待時間和醫生在某日的參與度。
領英
1、 你正在攀爬一個 n 階的樓梯,你可以采取任何數量的 k 個步驟。你到達樓梯頂部有多少不同的方式?(這是樓梯問題的修改版)
選自learndatasci機器之心編譯