對於機器學習的初學者來說,面試方面的經驗總結也非常重要。能夠加深對算法和機器學習基本理論的理解。所以,本文網羅了多年來 BAT 的面試真題,能搞懂這些面試題加上多次反覆研習知識,在 BAT 面試初中級算法時就輕鬆多了(前提是企業比較看重面試者算法能力)。
一、算法面試注意細節
算法工程師崗位(機器學習、數據挖掘、數據分析等)面試主要包含兩大塊:
- 首先,基本的 Coding 能力;
- 其次,機器學習算法的理論與應用能力。
基本的 Coding 能力考察,主要是讓你寫一些數據結構與算法設計的常見算法題,比如鏈表類、二叉樹、排序、查找、動態規劃等。這方面個人建議《劍指 Offer》+ LeetCode 結合的方式進行練習。
機器學習算法理論與應用能力不講,單就面試來看,本文就夠了。當然師父領進門,修行在個人,想要在這方面深造,還需要大量實踐和廣泛的學習優秀論文及開源源代碼。
二、算法面試常見問題
1. 模型融合方法有哪些
主要有以下幾個:
- Voting
- Averaging
- Bagging
- Boosting
- Stacking
2. 特徵選擇方法
主要有:
- 去掉取值變化小的特徵;
- 遞歸特徵消除法;
- 基於學習模型的特徵排序;
- 線性模型和正則化。
3. 學習項目的一般步驟
主要包括:
- 問題抽象,模型選擇;
- 數據獲取;
- 特徵工程(數據清洗,預處理、採樣等);
- 模型訓練,調優;
- 模型驗證、誤差分析;
- 模型融合;
- 模型上線。
4. 推導 LR 算法
5. 多參數調參方法
網格化搜索: 對於多個參數,首先根據經驗確定大致的參數範圍。然後選擇較大的步長進行控制變量的方法進行搜索,找到最優解後;然後逐步縮小步長,使用同樣的方法在更小的區間內尋找更精確的最優解。