蘋果、微軟等巨頭107道機器學習面試題

李文哲發表於2019-05-08

一般性問題

蘋果

假設你面臨著數百萬使用者,每個使用者有數百筆交易,涉及成千上萬種產品。你如何對這些使用者進行有意義的分類?

微軟

1.請描述一個你參與的專案,講講它有什麼獨特之處。

2.如何用高基數(high-cardinality)處理類別特徵(categorical feature)?

3.如何 summarize 一個 Twitter feed?

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

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

6.請定義方差(variance)。

7.請描述箱形圖(box plot)和直方圖(histogram)之間的區別,並舉出用例。

Twitter

你會用哪些 feature 來為使用者構建一個推薦演算法?

Uber

1.選一個你真正喜歡的產品或 app,說說你打算怎麼改進它。

2.如何在分佈(distribution)中找到異常點(anomaly)?

3.如果分佈中的某種特定趨勢是由於一個異常點,你將如何著手調查?

4.你如何評估 Uber 對交通和駕駛狀況的影響?

5.你會用哪些引數來追蹤 Uber 的付費廣告是否真正獲得了新客戶?你會用什麼辦法來算出一個理想的新客戶獲取成本?

LinkedIn

大資料工程師,你能解釋一下什麼是 REST 嗎?


機器學習類問題

谷歌

1.你為什麼要用特徵選擇?

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.你會用什麼 feature 來預測 Uber 司機是否會接受一次乘車請求?你會用什麼有監督學習演算法來解決這一問題?如何比較演算法的結果?

LinkedIn

2.給出並描述三種不同的核函式,及各自的應用條件。

3.描述一種機器學習中使用的方法。

4.如何處理稀疏資料?

IBM

1. 如何防止過擬合?

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

3. 與分類模型相比,如何分析迴歸模型的預測效能?

4. 與簡單的線性迴歸模型相比,如何評估邏輯迴歸模型?

5. 有監督學習和無監督學習的區別是什麼?

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

7. 用於評估預測模型的矩陣(matrix)名稱是什麼?

8. 邏輯迴歸係數和比值比(Odds Ratio)之間的關係是什麼?

9. 主成分分析(Principal Component Analysis,PCA)和線性和二次判別分析(Linear & Quadratic Discriminant Analysis ,LDA & QDA)之間的關係是什麼?

10. 如果你有一個分類變數(categorical dependent variable),以及一個混合分類和連續變數(a mixture of categorical and continuous independent variables),你會用什麼演算法、方法或工具來進行分析?

11. 商業分析:邏輯和線性迴歸的區別是什麼?如何避免區域性極小值(localminima)?

Salesforce

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

2. 請嘗試對非技術人員解釋一種機器學習演算法。

Capital One

1. 如何開發一個預測信用卡詐騙的模型?

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

3. 如何從已有特徵中得出新特徵?

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

5. 假設已有兩年的交易記錄,你會用哪些特徵來預測信用風險?

6. 請設計一個會下三連棋(Tic-tac-toe)的AI 程式。

Zilow

1. 請解釋一下什麼是過擬合,以及如何避免。

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


Hadoop

Twitter

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

2. 資料工程師:給定一個粉絲list,格式為:123, 345234, 678345, 123…其中第一列是粉絲 ID,第二列是被粉者 ID。目標是找到所有互粉組(如上例中的 123,345)。當 list 超出記憶體時,如何使用 Map / Reduce 解決問題?

Capital One

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

Explain a simple Map/Reduce problem.

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

統計和概率問題

谷歌

1. 請向非技術人員解釋交叉驗證(Cross-validation)。

Describe a non-normal probability distribution and how to applyit.

2. 請描述非正態概率分佈(non-normal probability distribution)以及如何應用。

微軟

資料探勘:什麼是異方差(heteroskedasticity),如何解決?

Twitter

已有 Twitter 使用者資料,如何測量參與度(engagement)?

Uber

1. 時間序列(Time Series)預測技術是什麼?

2. 闡釋主成分分析(PCA)及其使用的方程。

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

4. 請寫出推特和Facebook 上優化廣告費用支出的方程。

Facebook

從一副牌中抽取兩張,同一花色的出現概率是多少?

IBM

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

Capital One

1. 資料分析師:假設你有 70 顆紅色彈珠,綠色和紅色彈珠的比例是 2 :7,請問綠色彈珠有多少顆?

2. 紐約市的日常上下班交通資料分佈應該是什麼樣子的?

3. 一個骰子,扔 6 次出現 1 個 6 的機率,與扔 12 次至少出現兩個 6 的機率,以及扔 600 次至少出現 100 次 6 的機率,哪個最大?

PayPal

中心極限定理(Central Limit Theorem)是什麼,如何證明?有何應用?


程式設計和演算法

谷歌

資料分析師:請寫一個判定任意二進位制樹height 的程式。

微軟

請建立一個檢查某個詞是否是迴文的函式。

Twitter

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

How do you find the median of a very large dataset?

2. 如何在一個巨大的資料集中找到中位數?

Uber

資料工程師:編寫一個計算給定數字平方根(精確到百分位)的函式。然後用快取機制優化函式,避免冗餘計算。

Facebook

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

2. 寫一個函式,輸入兩個已排序的 list,在一個排序 list 中輸出其並集。

LinkedIn

1.資料工程師:編寫程式碼,確定一個字串中的括號是否平衡?

2. 如何在一個二進位制搜尋樹中找到第二大element?

3. 寫一個函式,輸入兩個排序的向量,輸出一個排序的向量。

4. 面對一個數字流輸入,如何在執行中找到最頻繁出現的數字?

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

6. 將一個大字串拆分成有效欄位,儲存在字典中。如果字串無法拆分,return “false”。你的解決方案的複雜性是怎樣的?

Salesforce

1. 查詢文件最常用的詞的計算複雜性是什麼?

2. 面對10 TBs 的非結構化客戶資料,如何發現並提取有價值的資訊?

Capital One

1.資料工程師:如何「拆散」兩個數列(就像 SQL 中的 JOIN 一樣,只不過是反過來)?

2. 建立一個可以做新增的函式,數字表示為兩個linked list。

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

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

Paypal

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

2. 寫一個函式,輸入一個數列,可以在O(n) 時間內將其按所有可能性分成兩列陣列,然後列印出這兩個陣列之間可能的最大差值。

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


SQL問題

微軟

1. 資料分析師:定義和解釋聚集索引和非聚集索引之間的不同。

2. 資料分析師:return 表的行計數有哪些不同的方法?

Facebook

1. 資料工程師:給定一個原始資料表,如何用 SQL 執行 ETL(Extract,Transform,Load)以獲取所需格式的資料?

2. 如何編寫一個 SQL 查詢,計算涉及兩個連線的某個確定屬性的頻率表?如果希望 ORDER BY 或 GROUP BY 某些屬性,需要做哪些變化?如何描述 NULL?

LinkedIn

資料工程師:如何提高 ETL(Extract, Transform, Load)的吞吐量(throughput)?


智力和文字遊戲

谷歌

有 10 包彈珠,每包裡有 10 個彈珠。其中一包和其他包重量不同,如果只能進行一次稱重,如何找出這一包?

Facebook

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

2. 假設有一個等邊三角形,三個角上都有一隻螞蟻,每隻隨機選擇方向,沿著三角形的邊走,那麼這些螞蟻不發生碰撞的機率是多少?如果有 n 只螞蟻在一個有 n 個角的多邊形中,概率又是多少?

3. 在 100 階乘(即 100!)裡有多少個零?

Uber

假設你在一家醫院工作。患者就診的頻率符合泊松分佈(Poisson Distribution),而醫生照顧患者的頻率符合均勻分佈(Uniform Distribution)。請寫一個函式或一段程式碼,能夠給出患者的平均等待時間和醫生在任意一天所照顧到的患者總數。

LinkedIn

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

文章:TinyMind


相關文章